From 5c9eda39f2886c7f3767d9ed3a2e161b7226146f Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Tue, 3 Nov 2020 23:19:46 +0300 Subject: [PATCH] Shadow berry --- src/main/java/ru/betterend/BetterEnd.java | 4 +- .../betterend/blocks/BlockBlueVineSeed.java | 2 +- .../ru/betterend/blocks/BlockShadowBerry.java | 58 ++++++++++++++++++ .../blocks/basis/BlockPlantWithAge.java | 4 +- .../ru/betterend/recipe/CraftingRecipes.java | 1 + ...meltigRecipes.java => FurnaceRecipes.java} | 3 +- .../java/ru/betterend/registry/EndBlocks.java | 6 +- .../java/ru/betterend/registry/EndItems.java | 13 ++++ .../world/features/BlueVineFeature.java | 2 +- .../betterend/blockstates/shadow_berry.json | 28 +++++++++ .../assets/betterend/lang/en_us.json | 6 +- .../assets/betterend/lang/ru_ru.json | 6 +- .../models/block/shadow_berry_01.json | 19 ++++++ .../models/block/shadow_berry_02.json | 45 ++++++++++++++ .../models/block/shadow_berry_03.json | 58 ++++++++++++++++++ .../models/block/shadow_berry_04.json | 58 ++++++++++++++++++ .../betterend/models/item/shadow_berry.json | 6 ++ .../models/item/shadow_berry_cooked.json | 6 ++ .../models/item/shadow_berry_raw.json | 6 ++ .../betterend/textures/block/shadow_berry.png | Bin 0 -> 2438 bytes .../textures/block/shadow_berry_leaves.png | Bin 0 -> 1589 bytes .../betterend/textures/item/shadow_berry.png | Bin 0 -> 1723 bytes .../textures/item/shadow_berry_cooked.png | Bin 0 -> 2169 bytes .../textures/item/shadow_berry_seeds.png | Bin 0 -> 1580 bytes 24 files changed, 321 insertions(+), 10 deletions(-) create mode 100644 src/main/java/ru/betterend/blocks/BlockShadowBerry.java rename src/main/java/ru/betterend/recipe/{SmeltigRecipes.java => FurnaceRecipes.java} (74%) create mode 100644 src/main/resources/assets/betterend/blockstates/shadow_berry.json create mode 100644 src/main/resources/assets/betterend/models/block/shadow_berry_01.json create mode 100644 src/main/resources/assets/betterend/models/block/shadow_berry_02.json create mode 100644 src/main/resources/assets/betterend/models/block/shadow_berry_03.json create mode 100644 src/main/resources/assets/betterend/models/block/shadow_berry_04.json create mode 100644 src/main/resources/assets/betterend/models/item/shadow_berry.json create mode 100644 src/main/resources/assets/betterend/models/item/shadow_berry_cooked.json create mode 100644 src/main/resources/assets/betterend/models/item/shadow_berry_raw.json create mode 100644 src/main/resources/assets/betterend/textures/block/shadow_berry.png create mode 100644 src/main/resources/assets/betterend/textures/block/shadow_berry_leaves.png create mode 100644 src/main/resources/assets/betterend/textures/item/shadow_berry.png create mode 100644 src/main/resources/assets/betterend/textures/item/shadow_berry_cooked.png create mode 100644 src/main/resources/assets/betterend/textures/item/shadow_berry_seeds.png diff --git a/src/main/java/ru/betterend/BetterEnd.java b/src/main/java/ru/betterend/BetterEnd.java index a579d455..5cc7ef8c 100644 --- a/src/main/java/ru/betterend/BetterEnd.java +++ b/src/main/java/ru/betterend/BetterEnd.java @@ -9,7 +9,7 @@ import ru.betterend.effects.EndEnchantments; import ru.betterend.effects.EndPotions; import ru.betterend.recipe.AlloyingRecipes; import ru.betterend.recipe.CraftingRecipes; -import ru.betterend.recipe.SmeltigRecipes; +import ru.betterend.recipe.FurnaceRecipes; import ru.betterend.recipe.SmithingRecipes; import ru.betterend.registry.EndBiomes; import ru.betterend.registry.EndBlockEntities; @@ -42,7 +42,7 @@ public class BetterEnd implements ModInitializer { EndEnchantments.register(); EndPotions.register(); CraftingRecipes.register(); - SmeltigRecipes.register(); + FurnaceRecipes.register(); AlloyingRecipes.register(); SmithingRecipes.register(); EndStructures.register(); diff --git a/src/main/java/ru/betterend/blocks/BlockBlueVineSeed.java b/src/main/java/ru/betterend/blocks/BlockBlueVineSeed.java index bb72209d..3c7ae9d2 100644 --- a/src/main/java/ru/betterend/blocks/BlockBlueVineSeed.java +++ b/src/main/java/ru/betterend/blocks/BlockBlueVineSeed.java @@ -15,7 +15,7 @@ import ru.betterend.util.MHelper; public class BlockBlueVineSeed extends BlockPlantWithAge { @Override - public void grow(StructureWorldAccess world, Random random, BlockPos pos) { + public void growAdult(StructureWorldAccess world, Random random, BlockPos pos) { int height = MHelper.randRange(2, 5, random); int h = BlocksHelper.upRay(world, pos, height + 2); if (h < height + 1) { diff --git a/src/main/java/ru/betterend/blocks/BlockShadowBerry.java b/src/main/java/ru/betterend/blocks/BlockShadowBerry.java new file mode 100644 index 00000000..54d2e36a --- /dev/null +++ b/src/main/java/ru/betterend/blocks/BlockShadowBerry.java @@ -0,0 +1,58 @@ +package ru.betterend.blocks; + +import java.util.List; +import java.util.Random; + +import com.google.common.collect.Lists; + +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.ShapeContext; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootContext; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.shape.VoxelShape; +import net.minecraft.world.BlockView; +import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.World; +import ru.betterend.blocks.basis.BlockPlantWithAge; +import ru.betterend.registry.EndItems; +import ru.betterend.util.MHelper; + +public class BlockShadowBerry extends BlockPlantWithAge { + private static final VoxelShape SHAPE = Block.createCuboidShape(1, 0, 1, 15, 8, 15); + + @Override + public void growAdult(StructureWorldAccess world, Random random, BlockPos pos) {} + + @Override + public List getDroppedStacks(BlockState state, LootContext.Builder builder) { + if (state.get(AGE) < 3) { + return Lists.newArrayList(new ItemStack(this)); + } + else { + return Lists.newArrayList(new ItemStack(this), new ItemStack(EndItems.SHADOW_BERRY_RAW, MHelper.randRange(1, 3, MHelper.RANDOM))); + } + } + + @Override + public boolean isFertilizable(BlockView world, BlockPos pos, BlockState state, boolean isClient) { + return state.get(AGE) < 3; + } + + @Override + public boolean canGrow(World world, Random random, BlockPos pos, BlockState state) { + return state.get(AGE) < 3; + } + + @Override + public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext ePos) { + return SHAPE; + } + + @Override + public AbstractBlock.OffsetType getOffsetType() { + return AbstractBlock.OffsetType.NONE; + } +} diff --git a/src/main/java/ru/betterend/blocks/basis/BlockPlantWithAge.java b/src/main/java/ru/betterend/blocks/basis/BlockPlantWithAge.java index 5742be4d..00a347f7 100644 --- a/src/main/java/ru/betterend/blocks/basis/BlockPlantWithAge.java +++ b/src/main/java/ru/betterend/blocks/basis/BlockPlantWithAge.java @@ -31,7 +31,7 @@ public abstract class BlockPlantWithAge extends BlockPlant { stateManager.add(AGE); } - public abstract void grow(StructureWorldAccess world, Random random, BlockPos pos); + public abstract void growAdult(StructureWorldAccess world, Random random, BlockPos pos); @Override public void grow(ServerWorld world, Random random, BlockPos pos, BlockState state) { @@ -41,7 +41,7 @@ public abstract class BlockPlantWithAge extends BlockPlant { world.setBlockState(pos, state.with(AGE, age + 1)); } else { - grow(world, random, pos); + growAdult(world, random, pos); } } } diff --git a/src/main/java/ru/betterend/recipe/CraftingRecipes.java b/src/main/java/ru/betterend/recipe/CraftingRecipes.java index 9bb903e7..c14ed79b 100644 --- a/src/main/java/ru/betterend/recipe/CraftingRecipes.java +++ b/src/main/java/ru/betterend/recipe/CraftingRecipes.java @@ -93,6 +93,7 @@ public class CraftingRecipes { GridRecipe.make("aurora_block", EndBlocks.AURORA_CRYSTAL).setShape("##", "##").addMaterial('#', EndItems.CRYSTAL_SHARDS).build(); GridRecipe.make("lotus_block", EndBlocks.END_LOTUS.log).setShape("##", "##").addMaterial('#', EndBlocks.END_LOTUS_STEM).build(); GridRecipe.make("needlegrass_stick", Items.STICK).setList("#").setOutputCount(2).addMaterial('#', EndBlocks.NEEDLEGRASS).build(); + GridRecipe.make("shadow_berry_seeds", EndBlocks.SHADOW_BERRY).setList("#").setOutputCount(4).addMaterial('#', EndItems.SHADOW_BERRY_RAW).build(); } public static void registerPedestal(String name, Block pedestal, Block slab, Block pillar) { diff --git a/src/main/java/ru/betterend/recipe/SmeltigRecipes.java b/src/main/java/ru/betterend/recipe/FurnaceRecipes.java similarity index 74% rename from src/main/java/ru/betterend/recipe/SmeltigRecipes.java rename to src/main/java/ru/betterend/recipe/FurnaceRecipes.java index 504712dc..f012b118 100644 --- a/src/main/java/ru/betterend/recipe/SmeltigRecipes.java +++ b/src/main/java/ru/betterend/recipe/FurnaceRecipes.java @@ -5,9 +5,10 @@ import ru.betterend.recipe.builders.FurnaceRecipe; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndItems; -public class SmeltigRecipes { +public class FurnaceRecipes { public static void register() { FurnaceRecipe.make("end_lily_leaf_dried", EndItems.END_LILY_LEAF, EndItems.END_LILY_LEAF_DRIED).build(); FurnaceRecipe.make("end_glass", EndBlocks.ENDSTONE_DUST, Blocks.GLASS).build(); + FurnaceRecipe.make("end_glass", EndItems.SHADOW_BERRY_RAW, EndItems.SHADOW_BERRY_COOKED).build(); } } diff --git a/src/main/java/ru/betterend/registry/EndBlocks.java b/src/main/java/ru/betterend/registry/EndBlocks.java index e6cf1df5..89af5d9f 100644 --- a/src/main/java/ru/betterend/registry/EndBlocks.java +++ b/src/main/java/ru/betterend/registry/EndBlocks.java @@ -28,10 +28,11 @@ import ru.betterend.blocks.BlockLacugroveSapling; import ru.betterend.blocks.BlockMossyGlowshroomCap; import ru.betterend.blocks.BlockMossyGlowshroomHymenophore; import ru.betterend.blocks.BlockMossyGlowshroomSapling; -import ru.betterend.blocks.BlockPath; import ru.betterend.blocks.BlockMurkweed; import ru.betterend.blocks.BlockNeedlegrass; +import ru.betterend.blocks.BlockPath; import ru.betterend.blocks.BlockPythadendronSapling; +import ru.betterend.blocks.BlockShadowBerry; import ru.betterend.blocks.BlockShadowGrass; import ru.betterend.blocks.BlockTerrain; import ru.betterend.blocks.BlockTerrainPlant; @@ -131,6 +132,9 @@ public class EndBlocks { public static final Block MURKWEED = registerBlock("murkweed", new BlockMurkweed()); public static final Block NEEDLEGRASS = registerBlock("needlegrass", new BlockNeedlegrass()); + // Crops // + public static final Block SHADOW_BERRY = registerBlock("shadow_berry", new BlockShadowBerry()); + // Vines // public static final Block DENSE_VINE = registerBlock("dense_vine", new BlockVine(15, true)); public static final Block TWISTED_VINE = registerBlock("twisted_vine", new BlockVine()); diff --git a/src/main/java/ru/betterend/registry/EndItems.java b/src/main/java/ru/betterend/registry/EndItems.java index 70dd05d8..99337710 100644 --- a/src/main/java/ru/betterend/registry/EndItems.java +++ b/src/main/java/ru/betterend/registry/EndItems.java @@ -12,6 +12,7 @@ import net.minecraft.entity.EquipmentSlot; import net.minecraft.entity.SpawnReason; import net.minecraft.item.ArmorItem; import net.minecraft.item.BlockItem; +import net.minecraft.item.FoodComponent; import net.minecraft.item.Item; import net.minecraft.item.Item.Settings; import net.minecraft.item.ItemStack; @@ -77,6 +78,10 @@ public class EndItems { public static final ToolItem DIAMOND_HAMMER = registerTool("diamond_hammer", new EndHammer(ToolMaterials.DIAMOND, 5.5F, -3.1F, 0.2D, makeSettings())); public static final ToolItem NETHERITE_HAMMER = registerTool("netherite_hammer", new EndHammer(ToolMaterials.NETHERITE, 5.0F, -3.0F, 0.2D, makeSettings())); + // Food // + public final static Item SHADOW_BERRY_RAW = registerFood("shadow_berry_raw", 4, 0.5F); + public final static Item SHADOW_BERRY_COOKED = registerFood("shadow_berry_cooked", 6, 0.7F); + // Other // public static final Item ETERNAL_CRYSTAL = registerItem("eternal_crystal", new EternalCrystal()); @@ -130,6 +135,14 @@ public class EndItems { DispenserBlock.registerBehavior(item, behavior); return registerItem(name, item); } + + public static Item registerFood(String name, int hunger, float saturation) { + return registerFood(name, new FoodComponent.Builder().hunger(hunger).saturationModifier(saturation).build()); + } + + public static Item registerFood(String name, FoodComponent foodComponent) { + return registerItem(name, new Item(makeSettings().food(foodComponent))); + } public static Settings makeSettings() { return new Item.Settings().group(CreativeTab.END_TAB); diff --git a/src/main/java/ru/betterend/world/features/BlueVineFeature.java b/src/main/java/ru/betterend/world/features/BlueVineFeature.java index a6471c2f..79aa63ca 100644 --- a/src/main/java/ru/betterend/world/features/BlueVineFeature.java +++ b/src/main/java/ru/betterend/world/features/BlueVineFeature.java @@ -30,7 +30,7 @@ public class BlueVineFeature extends ScatterFeature { } else { BlockPlantWithAge seed = ((BlockPlantWithAge) EndBlocks.BLUE_VINE_SEED); - seed.grow(world, random, blockPos); + seed.growAdult(world, random, blockPos); } } } diff --git a/src/main/resources/assets/betterend/blockstates/shadow_berry.json b/src/main/resources/assets/betterend/blockstates/shadow_berry.json new file mode 100644 index 00000000..6b3d2308 --- /dev/null +++ b/src/main/resources/assets/betterend/blockstates/shadow_berry.json @@ -0,0 +1,28 @@ +{ + "variants": { + "age=0": [ + { "model": "betterend:block/shadow_berry_01" }, + { "model": "betterend:block/shadow_berry_01", "y": 90 }, + { "model": "betterend:block/shadow_berry_01", "y": 180 }, + { "model": "betterend:block/shadow_berry_01", "y": 270 } + ], + "age=1": [ + { "model": "betterend:block/shadow_berry_02" }, + { "model": "betterend:block/shadow_berry_02", "y": 90 }, + { "model": "betterend:block/shadow_berry_02", "y": 180 }, + { "model": "betterend:block/shadow_berry_02", "y": 270 } + ], + "age=2": [ + { "model": "betterend:block/shadow_berry_03" }, + { "model": "betterend:block/shadow_berry_03", "y": 90 }, + { "model": "betterend:block/shadow_berry_03", "y": 180 }, + { "model": "betterend:block/shadow_berry_03", "y": 270 } + ], + "age=3": [ + { "model": "betterend:block/shadow_berry_04" }, + { "model": "betterend:block/shadow_berry_04", "y": 90 }, + { "model": "betterend:block/shadow_berry_04", "y": 180 }, + { "model": "betterend:block/shadow_berry_04", "y": 270 } + ] + } +} diff --git a/src/main/resources/assets/betterend/lang/en_us.json b/src/main/resources/assets/betterend/lang/en_us.json index 0da0fad4..39ac986a 100644 --- a/src/main/resources/assets/betterend/lang/en_us.json +++ b/src/main/resources/assets/betterend/lang/en_us.json @@ -269,5 +269,9 @@ "block.betterend.murkweed": "Murkweed", "block.betterend.needlegrass": "Needlegrass", - "block.betterend.twisted_vine": "Twisted Vine" + "block.betterend.twisted_vine": "Twisted Vine", + + "block.betterend.shadow_berry": "Shadow Berry Seeds", + "item.betterend.shadow_berry_cooked": "Shadow Berry Cooked", + "item.betterend.shadow_berry_raw": "Shadow Berry" } \ No newline at end of file diff --git a/src/main/resources/assets/betterend/lang/ru_ru.json b/src/main/resources/assets/betterend/lang/ru_ru.json index 03a1da22..2f450792 100644 --- a/src/main/resources/assets/betterend/lang/ru_ru.json +++ b/src/main/resources/assets/betterend/lang/ru_ru.json @@ -271,5 +271,9 @@ "block.betterend.murkweed": "Мракотрава", "block.betterend.needlegrass": "Иголкоцвет", - "block.betterend.twisted_vine": "Закрученная лоза" + "block.betterend.twisted_vine": "Закрученная лоза", + + "block.betterend.shadow_berry": "Семена теневой ягоды", + "item.betterend.shadow_berry_cooked": "Приготовленная теневая ягода", + "item.betterend.shadow_berry_raw": "Теневая ягода" } \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/shadow_berry_01.json b/src/main/resources/assets/betterend/models/block/shadow_berry_01.json new file mode 100644 index 00000000..d0c273d2 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/shadow_berry_01.json @@ -0,0 +1,19 @@ +{ + "__comment": "Designed by Paulevs with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "betterend:block/shadow_berry", + "texture": "betterend:block/shadow_berry", + "texture1": "betterend:block/shadow_berry_leaves" + }, + "elements": [ + { + "__comment": "PlaneY4", + "from": [ 0, 0.5, 0 ], + "to": [ 16, 0.501, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture1" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture1" } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/shadow_berry_02.json b/src/main/resources/assets/betterend/models/block/shadow_berry_02.json new file mode 100644 index 00000000..459394e2 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/shadow_berry_02.json @@ -0,0 +1,45 @@ +{ + "__comment": "Designed by Paulevs with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "betterend:block/shadow_berry", + "texture": "betterend:block/shadow_berry", + "texture1": "betterend:block/shadow_berry_leaves" + }, + "elements": [ + { + "__comment": "Box1", + "from": [ 3, 0, 3 ], + "to": [ 7, 4, 7 ], + "faces": { + "down": { "uv": [ 10, 10, 14, 14 ], "texture": "#texture" }, + "up": { "uv": [ 8.5, 0.5, 12.5, 4.5 ], "texture": "#texture" }, + "north": { "uv": [ 2, 11, 6, 15 ], "texture": "#texture" }, + "south": { "uv": [ 2, 11, 6, 15 ], "texture": "#texture" }, + "west": { "uv": [ 2, 11, 6, 15 ], "texture": "#texture" }, + "east": { "uv": [ 2, 11, 6, 15 ], "texture": "#texture" } + } + }, + { + "__comment": "Box1", + "from": [ 11.5, 0, 6.5 ], + "to": [ 14.5, 3, 9.5 ], + "faces": { + "down": { "uv": [ 12, 12, 15, 15 ], "texture": "#texture" }, + "up": { "uv": [ 9, 1, 12, 4 ], "texture": "#texture" }, + "north": { "uv": [ 4, 11, 7, 14 ], "texture": "#texture" }, + "south": { "uv": [ 4, 11, 7, 14 ], "texture": "#texture" }, + "west": { "uv": [ 4, 11, 7, 14 ], "texture": "#texture" }, + "east": { "uv": [ 4, 11, 7, 14 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneY4", + "from": [ 0, 0.5, 0 ], + "to": [ 16, 0.501, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture1" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture1" } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/shadow_berry_03.json b/src/main/resources/assets/betterend/models/block/shadow_berry_03.json new file mode 100644 index 00000000..c20ce75d --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/shadow_berry_03.json @@ -0,0 +1,58 @@ +{ + "__comment": "Designed by Paulevs with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "betterend:block/shadow_berry", + "texture": "betterend:block/shadow_berry", + "texture1": "betterend:block/shadow_berry_leaves" + }, + "elements": [ + { + "__comment": "Box1", + "from": [ 2, 0, 2 ], + "to": [ 8, 6, 8 ], + "faces": { + "down": { "uv": [ 9, 9, 15, 15 ], "texture": "#texture" }, + "up": { "uv": [ 1, 1, 7, 7 ], "texture": "#texture" }, + "north": { "uv": [ 1, 10, 7, 16 ], "texture": "#texture" }, + "south": { "uv": [ 1, 10, 7, 16 ], "texture": "#texture" }, + "west": { "uv": [ 1, 10, 7, 16 ], "texture": "#texture" }, + "east": { "uv": [ 1, 10, 7, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Box1", + "from": [ 11, 0, 6 ], + "to": [ 15, 4, 10 ], + "faces": { + "down": { "uv": [ 10, 10, 14, 14 ], "texture": "#texture" }, + "up": { "uv": [ 8.5, 0.5, 12.5, 4.5 ], "texture": "#texture" }, + "north": { "uv": [ 1, 11, 5, 15 ], "texture": "#texture" }, + "south": { "uv": [ 1, 11, 5, 15 ], "texture": "#texture" }, + "west": { "uv": [ 1, 11, 5, 15 ], "texture": "#texture" }, + "east": { "uv": [ 1, 11, 5, 15 ], "texture": "#texture" } + } + }, + { + "__comment": "Box1", + "from": [ 4, 0, 11 ], + "to": [ 7, 3, 14 ], + "faces": { + "down": { "uv": [ 12, 12, 15, 15 ], "texture": "#texture" }, + "up": { "uv": [ 9, 1, 12, 4 ], "texture": "#texture" }, + "north": { "uv": [ 4, 11, 7, 14 ], "texture": "#texture" }, + "south": { "uv": [ 4, 11, 7, 14 ], "texture": "#texture" }, + "west": { "uv": [ 4, 11, 7, 14 ], "texture": "#texture" }, + "east": { "uv": [ 4, 11, 7, 14 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneY4", + "from": [ 0, 0.5, 0 ], + "to": [ 16, 0.501, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture1" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture1" } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/shadow_berry_04.json b/src/main/resources/assets/betterend/models/block/shadow_berry_04.json new file mode 100644 index 00000000..b25f9619 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/shadow_berry_04.json @@ -0,0 +1,58 @@ +{ + "__comment": "Designed by Paulevs with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "betterend:block/shadow_berry", + "texture": "betterend:block/shadow_berry", + "texture1": "betterend:block/shadow_berry_leaves" + }, + "elements": [ + { + "__comment": "Box1", + "from": [ 1, 0, 1 ], + "to": [ 9, 8, 9 ], + "faces": { + "down": { "uv": [ 8, 8, 16, 16 ], "texture": "#texture" }, + "up": { "uv": [ 0, 0, 8, 8 ], "texture": "#texture" }, + "north": { "uv": [ 0, 8, 8, 16 ], "texture": "#texture" }, + "south": { "uv": [ 0, 8, 8, 16 ], "texture": "#texture" }, + "west": { "uv": [ 0, 8, 8, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 8, 8, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Box1", + "from": [ 10, 0, 5 ], + "to": [ 16, 6, 11 ], + "faces": { + "down": { "uv": [ 9, 9, 15, 15 ], "texture": "#texture" }, + "up": { "uv": [ 1, 1, 7, 7 ], "texture": "#texture" }, + "north": { "uv": [ 0, 10, 6, 16 ], "texture": "#texture" }, + "south": { "uv": [ 0, 10, 6, 16 ], "texture": "#texture" }, + "west": { "uv": [ 0, 10, 6, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 10, 6, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Box1", + "from": [ 3, 0, 10 ], + "to": [ 8, 5, 15 ], + "faces": { + "down": { "uv": [ 11, 11, 16, 16 ], "texture": "#texture" }, + "up": { "uv": [ 8, 0, 13, 5 ], "texture": "#texture" }, + "north": { "uv": [ 3, 11, 8, 16 ], "texture": "#texture" }, + "south": { "uv": [ 3, 11, 8, 16 ], "texture": "#texture" }, + "west": { "uv": [ 3, 11, 8, 16 ], "texture": "#texture" }, + "east": { "uv": [ 3, 11, 8, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneY4", + "from": [ 0, 0.5, 0 ], + "to": [ 16, 0.501, 16 ], + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture1" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture1" } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/item/shadow_berry.json b/src/main/resources/assets/betterend/models/item/shadow_berry.json new file mode 100644 index 00000000..90825652 --- /dev/null +++ b/src/main/resources/assets/betterend/models/item/shadow_berry.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "betterend:item/shadow_berry_seeds" + } +} diff --git a/src/main/resources/assets/betterend/models/item/shadow_berry_cooked.json b/src/main/resources/assets/betterend/models/item/shadow_berry_cooked.json new file mode 100644 index 00000000..1ba34c15 --- /dev/null +++ b/src/main/resources/assets/betterend/models/item/shadow_berry_cooked.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "betterend:item/shadow_berry_cooked" + } +} diff --git a/src/main/resources/assets/betterend/models/item/shadow_berry_raw.json b/src/main/resources/assets/betterend/models/item/shadow_berry_raw.json new file mode 100644 index 00000000..7c8a936b --- /dev/null +++ b/src/main/resources/assets/betterend/models/item/shadow_berry_raw.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "betterend:item/shadow_berry" + } +} diff --git a/src/main/resources/assets/betterend/textures/block/shadow_berry.png b/src/main/resources/assets/betterend/textures/block/shadow_berry.png new file mode 100644 index 0000000000000000000000000000000000000000..5a67a3e11db6e3a7e26c1a8ec605834ef5c17758 GIT binary patch literal 2438 zcmb_e2~ZPP7+w%i5Gt*+$!leJ+_n%SHEu1%w6CkK-ch40BRj-MKps?kvxlk-L zWs@{#lT!?50dlvEm(UQDHrUNm^b{b)|{54#F~)(Zgd^Cd|ZVfKt{t-2w8a z=a}i~Q)nFn4;~~-bCVK*4TzM?ZL``1(yfQRyreYtOrx;O3lXR2;dGBfS)nOcmccoI zOeI$%G_E9M8l4&{aDkCslgJK#KS0ETpVro*MllgwIB#taXIEm$qQuY0FHM$tX}5~jRGsM0lO$jSUiB0s$?<+;2qN1 zYyq?&W=@kL^5xbcS}>RK0L=pe=XB5@bDHEa(H|IJ%88s%%Do_u!0SLZJelDDl*l>E z9B1`6D%Z~<%gFFFMl0(-mbEjSOGx%O^4S0bB?3K6U<8KXID#q61VQ2&QiTn`6eNbV zLrszt7)qo%0ux#Z{~VZO*y6JPgfcW)%sFh7R4CR)l>n5tmw3IIOk|c_5GgwivJ84y z3RTXs3`tP9Rz+DDM5Ut@2%}O0gi>mX5rrC4;tZzL0FByjZ{TRBr-^=hMzY6om6`%7 z0#T|}Dg*;c4Wh-=8bm`A#TJ!93jjs=?MFFSX%SJ@*XIc|iOk@voWsO1Qk4}R345hP z8d*W=SD9~7-NzT(oQl)VH_ zX}k6e1LuVF5IAXoT`HABI!D&K^bQCLuF5i`o3)L$d=u9+B)WWe_kkZbH}t7k7h?X> z$jgF9hlGZ2m;~KLmn?bIJK@cKGogc>>O;d*`tIRxR5Yv~6TdNf+1?$^l~;GI`q9RY zJZgL}Y;Bc>yLLHtK>V4cMI}%~;mSC}fr{qNBC%&?%mi%n{)yWYqe?cn*{s|FjE{Y9 z%$NH8T!fhMb%K_(3bt#wKJziY)x63IiqFbtPc}skGMFekHXxmn?~N? z=C>}+wP&^2@l2w6)FG-d?b6n{A?7Na{4|BU9b%le4bc zZv6b&@yAToJ#@(Dzt-OkZn*o_;NzEDx)q!)bz{cL>gyFJW3C+ftwvsSfzpt*)+b%o z9bTT)sz0*o%EkO1XPkYs`099<2>=x{eMM`GweJTvL=+FBN`Ky ztPK6BRlTAA`KG$mdC@mFx6KZk48eWtt+8;QsMNhHk`3y9m1{a}Z7E2OJ{EgROdRt~ z@D{UiX!?@@F?~&^nwF$4sy`okuCl&KKQZ?Bj<8z~pVW3k5+cLmzJl+CEZcOWaqbYu zijc!C_X>9pf3|pwykN$&8f{I^uCSDZ<8zWjTUXAH-Bxp{>C*gOD?Z2~nZna9m2;O6 z9dhFS1VwG?$gW#vuC6x K!`DNL=Kc*}cvBSs literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/shadow_berry_leaves.png b/src/main/resources/assets/betterend/textures/block/shadow_berry_leaves.png new file mode 100644 index 0000000000000000000000000000000000000000..426e5d56c5d9d81c278f31ea85d2902b0c74a742 GIT binary patch literal 1589 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/item/shadow_berry_seeds.png b/src/main/resources/assets/betterend/textures/item/shadow_berry_seeds.png new file mode 100644 index 0000000000000000000000000000000000000000..bc4fda975dc2b727fde8855f9bf52124ae162d87 GIT binary patch literal 1580 zcmbVNU1%Id9G^?tL(@Bnw3gC|kb#G_)l1p~U8RKr^opjS9J!pI~bGvhQV{Ui0 zyPMu!zz>QIks`LB2vW3)eJg6-0=6_zTLTsZi&8`seG@^2;ERfJ_C6MosE@pD0obuK95L|5nLPk(+a$%g zV9q$Gn$%7qi_s!1zSNMdktyxDu`qC(Hlz;U%6UR+c|9VnD;yaFyhiJbZX* zrf4oLn2Ni7SJ*yoV)1NTEZ<;#5HVVC-50oim=Q}h7rMUN^9E@+7G6VF^xL5 z-4yK?n=Te-u}>F06Hgsu5{J5qxm6laze@kXj_5eD##J>BqkwuvN^9Lf6}l{(riFnS z;~qXj9E;ZdeW9Sv9jv1OXL%XQP>>`6ri*e~g(GTOJ^r4v zEmJL1&qmBq#6}e?x=y7f%`nuw;|ItwabC~zOw|-2mI{%KEK|n9up%h}M8k?OhAde? z(x@a`WmwKgxO-ox=3*Gc?tSZj-aq6KRz#?F`#e#QRE^fCXHbiIIUS~OE0xq7@mai@ zouW95k9Jly!nLwTMP``bS>6mIi!HwMncTK#+O+j5W~BcT?l#P)<)Dr{JXv90yp@a+ znf_u}jcrrJzgyWl`%C3^;jA5m%cu{rP1MP-!`hd}`qbL}`5xBezRBy8#j%&o-?z3V zdLMY$L_>$GoM-UfI4jxUm}hCB9rv c^lrq!e);2XPhR*m{4ap~)QtY#