diff --git a/src/main/java/ru/betterend/blocks/BlockSmallJellyshroom.java b/src/main/java/ru/betterend/blocks/BlockSmallJellyshroom.java new file mode 100644 index 00000000..a28878bd --- /dev/null +++ b/src/main/java/ru/betterend/blocks/BlockSmallJellyshroom.java @@ -0,0 +1,70 @@ +package ru.betterend.blocks; + +import java.util.EnumMap; +import java.util.List; + +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; + +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.Material; +import net.minecraft.block.ShapeContext; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.enchantment.Enchantments; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootContext; +import net.minecraft.loot.context.LootContextParameters; +import net.minecraft.sound.BlockSoundGroup; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.util.shape.VoxelShape; +import net.minecraft.util.shape.VoxelShapes; +import net.minecraft.world.BlockView; +import ru.betterend.blocks.basis.BlockAttached; +import ru.betterend.client.render.ERenderLayer; +import ru.betterend.interfaces.IRenderTypeable; + +public class BlockSmallJellyshroom extends BlockAttached implements IRenderTypeable { + private static final EnumMap BOUNDING_SHAPES = Maps.newEnumMap(Direction.class); + + public BlockSmallJellyshroom() { + super(FabricBlockSettings.of(Material.PLANT) + .breakByTool(FabricToolTags.SHEARS) + .sounds(BlockSoundGroup.NETHER_WART) + .breakByHand(true) + .noCollision()); + } + + @Override + public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext ePos) { + return BOUNDING_SHAPES.get(state.get(FACING)); + } + + @Override + public List getDroppedStacks(BlockState state, LootContext.Builder builder) { + ItemStack tool = builder.get(LootContextParameters.TOOL); + if (tool != null && tool.getItem().isIn(FabricToolTags.SHEARS) || EnchantmentHelper.getLevel(Enchantments.SILK_TOUCH, tool) > 0) { + return Lists.newArrayList(new ItemStack(this)); + } + else { + return Lists.newArrayList(); + } + } + + @Override + public ERenderLayer getRenderLayer() { + return ERenderLayer.CUTOUT; + } + + static { + BOUNDING_SHAPES.put(Direction.UP, Block.createCuboidShape(3, 0, 3, 13, 16, 13)); + BOUNDING_SHAPES.put(Direction.DOWN, VoxelShapes.cuboid(0.0, 0.5, 0.0, 1.0, 1.0, 1.0)); + BOUNDING_SHAPES.put(Direction.NORTH, VoxelShapes.cuboid(0.0, 0.0, 0.5, 1.0, 1.0, 1.0)); + BOUNDING_SHAPES.put(Direction.SOUTH, VoxelShapes.cuboid(0.0, 0.0, 0.0, 1.0, 1.0, 0.5)); + BOUNDING_SHAPES.put(Direction.WEST, VoxelShapes.cuboid(0.5, 0.0, 0.0, 1.0, 1.0, 1.0)); + BOUNDING_SHAPES.put(Direction.EAST, VoxelShapes.cuboid(0.0, 0.0, 0.0, 0.5, 1.0, 1.0)); + } +} diff --git a/src/main/java/ru/betterend/registry/EndBlocks.java b/src/main/java/ru/betterend/registry/EndBlocks.java index 1c7f1cf6..e389d095 100644 --- a/src/main/java/ru/betterend/registry/EndBlocks.java +++ b/src/main/java/ru/betterend/registry/EndBlocks.java @@ -58,6 +58,7 @@ import ru.betterend.blocks.BlockRespawnObelisk; import ru.betterend.blocks.BlockShadowBerry; import ru.betterend.blocks.BlockShadowGrass; import ru.betterend.blocks.BlockSilkMothNest; +import ru.betterend.blocks.BlockSmallJellyshroom; import ru.betterend.blocks.BlockSulphurCrystal; import ru.betterend.blocks.BlockTenaneaFlowers; import ru.betterend.blocks.BlockTenaneaSapling; @@ -209,6 +210,9 @@ public class EndBlocks { public static final Block GLOWING_PILLAR_LUMINOPHOR = registerBlock("glowing_pillar_luminophor", new BlockGlowingPillarLuminophor()); public static final Block GLOWING_PILLAR_LEAVES = registerBlock("glowing_pillar_leaves", new BlockFur(GLOWING_PILLAR_SEED, 15, 3)); + public static final Block SMALL_JELLYSHROOM = registerBlock("small_jellyshroom", new BlockSmallJellyshroom()); + + // Water plants public static final Block BUBBLE_CORAL = registerBlock("bubble_coral", new BlockBubbleCoral()); public static final Block MENGER_SPONGE = registerBlock("menger_sponge", new BlockMengerSponge()); public static final Block MENGER_SPONGE_WET = registerBlock("menger_sponge_wet", new BlockMengerSpongeWet()); diff --git a/src/main/resources/assets/betterend/blockstates/small_jellyshroom.json b/src/main/resources/assets/betterend/blockstates/small_jellyshroom.json new file mode 100644 index 00000000..210a9636 --- /dev/null +++ b/src/main/resources/assets/betterend/blockstates/small_jellyshroom.json @@ -0,0 +1,27 @@ +{ + "variants": { + "facing=north": [ + { "model": "betterend:block/small_jellyshroom_wall_1", "y": 180 }, + { "model": "betterend:block/small_jellyshroom_wall_2", "y": 180 } + ], + "facing=south": [ + { "model": "betterend:block/small_jellyshroom_wall_1" }, + { "model": "betterend:block/small_jellyshroom_wall_2" } + ], + "facing=east": [ + { "model": "betterend:block/small_jellyshroom_wall_1", "y": 270 }, + { "model": "betterend:block/small_jellyshroom_wall_2", "y": 270 } + ], + "facing=west": [ + { "model": "betterend:block/small_jellyshroom_wall_1", "y": 90 }, + { "model": "betterend:block/small_jellyshroom_wall_2", "y": 90 } + ], + "facing=up": [ + { "model": "betterend:block/small_jellyshroom_floor" }, + { "model": "betterend:block/small_jellyshroom_floor", "y": 90 }, + { "model": "betterend:block/small_jellyshroom_floor", "y": 180 }, + { "model": "betterend:block/small_jellyshroom_floor", "y": 270 } + ], + "facing=down": { "model": "betterend:block/glowing_pillar_leaves_up", "x": 180 } + } +} diff --git a/src/main/resources/assets/betterend/lang/en_us.json b/src/main/resources/assets/betterend/lang/en_us.json index 90eaae35..745046de 100644 --- a/src/main/resources/assets/betterend/lang/en_us.json +++ b/src/main/resources/assets/betterend/lang/en_us.json @@ -511,5 +511,15 @@ "block.betterend.umbrella_tree_stripped_bark": "Stripped Umbrella Tree Bark", "block.betterend.umbrella_tree_stripped_log": "Stripped Umbrella Tree Log", "block.betterend.umbrella_tree_trapdoor": "Umbrella Tree Trapdoor", - "block.betterend.umbrella_tree_membrane": "Umbrella Tree Membrane" + "block.betterend.umbrella_tree_membrane": "Umbrella Tree Membrane", + + "biome.betterend.umbrella_jungle": "Umbrella Jungle", + "block.betterend.jungle_grass": "Jungle Grass", + "block.betterend.jungle_moss": "Jungle Moss", + "block.betterend.jungle_moss_path": "Jungle Moss Path", + "block.betterend.small_jellyshroom": "Small Jellyshroom", + "block.betterend.twisted_umbrella_moss": "Twisted Umbrella Moss", + "block.betterend.twisted_umbrella_moss_tall": "Twisted Umbrella Moss Tall", + "block.betterend.umbrella_tree_cluster": "Umbrella Tree Cluster", + "block.betterend.umbrella_tree_cluster_empty": "Empty Umbrella Tree Cluster" } diff --git a/src/main/resources/assets/betterend/lang/ru_ru.json b/src/main/resources/assets/betterend/lang/ru_ru.json index 8d96aefc..d56eb055 100644 --- a/src/main/resources/assets/betterend/lang/ru_ru.json +++ b/src/main/resources/assets/betterend/lang/ru_ru.json @@ -513,5 +513,15 @@ "block.betterend.umbrella_tree_stripped_bark": "Обтёсанная кора зонтичного дерева", "block.betterend.umbrella_tree_stripped_log": "Обтёсанное бревно зонтичного дерева", "block.betterend.umbrella_tree_trapdoor": "Люк из зонтичного дерева", - "block.betterend.umbrella_tree_membrane": "Мембрана зонтичного дерева" + "block.betterend.umbrella_tree_membrane": "Мембрана зонтичного дерева", + + "biome.betterend.umbrella_jungle": "Зонтичные джунгли", + "block.betterend.jungle_grass": "Трава джунглей", + "block.betterend.jungle_moss": "Мох джунглей", + "block.betterend.jungle_moss_path": "Тропа из мха джунглей", + "block.betterend.small_jellyshroom": "Маленький слизнегриб", + "block.betterend.twisted_umbrella_moss": "Закрученный зонтичный мох", + "block.betterend.twisted_umbrella_moss_tall": "Высокий закрученный зонтичный мох", + "block.betterend.umbrella_tree_cluster": "Кластер зонтичного дерева", + "block.betterend.umbrella_tree_cluster_empty": "Пустой кластер хонтичного дерева" } \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/small_jellyshroom_floor.json b/src/main/resources/assets/betterend/models/block/small_jellyshroom_floor.json new file mode 100644 index 00000000..81135b41 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/small_jellyshroom_floor.json @@ -0,0 +1,149 @@ +{ + "__comment": "Designed by Paulevs with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "betterend:block/small_jellyshroom_stem", + "texture": "betterend:block/small_jellyshroom_stem", + "cap": "betterend:block/jellyshroom_cap" + }, + "elements": [ + { + "__comment": "PlaneX1", + "from": [ 2.375, 0, 2.375 ], + "to": [ 2.376, 16, 18.375 ], + "rotation": { "origin": [ 2.375, 0, 2.375 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX1", + "from": [ 13.75, 0, 2.25 ], + "to": [ 13.751, 16, 18.25 ], + "rotation": { "origin": [ 13.75, 0, 2.25 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Box3", + "from": [ 5.5, 11, 5.5 ], + "to": [ 10.5, 14, 10.5 ], + "faces": { + "down": { "uv": [ 5, 0, 10, 5 ], "texture": "#cap" }, + "up": { "uv": [ 0, 0, 5, 5 ], "texture": "#cap" }, + "north": { "uv": [ 10, 0, 15, 3 ], "texture": "#cap" }, + "south": { "uv": [ 10, 0, 15, 3 ], "texture": "#cap" }, + "west": { "uv": [ 10, 0, 15, 3 ], "texture": "#cap" }, + "east": { "uv": [ 10, 0, 15, 3 ], "texture": "#cap" } + } + }, + { + "__comment": "Box3", + "from": [ 2.5, 5, 9.5 ], + "to": [ 6.5, 8, 13.5 ], + "faces": { + "down": { "uv": [ 4, 5, 8, 9 ], "texture": "#cap" }, + "up": { "uv": [ 0, 5, 4, 9 ], "texture": "#cap" }, + "north": { "uv": [ 8, 5, 12, 8 ], "texture": "#cap" }, + "south": { "uv": [ 8, 5, 12, 8 ], "texture": "#cap" }, + "west": { "uv": [ 8, 5, 12, 8 ], "texture": "#cap" }, + "east": { "uv": [ 8, 5, 12, 8 ], "texture": "#cap" } + } + }, + { + "__comment": "Box3", + "from": [ 3, 4, 3 ], + "to": [ 6, 6, 6 ], + "faces": { + "down": { "uv": [ 3, 9, 6, 12 ], "texture": "#cap" }, + "up": { "uv": [ 0, 9, 3, 12 ], "texture": "#cap" }, + "north": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" }, + "south": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" }, + "west": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" }, + "east": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" } + } + }, + { + "__comment": "Box3", + "from": [ 9.5, 10, 9.5 ], + "to": [ 12.5, 12, 12.5 ], + "faces": { + "down": { "uv": [ 3, 9, 6, 12 ], "texture": "#cap" }, + "up": { "uv": [ 0, 9, 3, 12 ], "texture": "#cap" }, + "north": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" }, + "south": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" }, + "west": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" }, + "east": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" } + } + }, + { + "__comment": "Box3", + "from": [ 3.5, 10.5, 3.5 ], + "to": [ 6.5, 12.5, 6.5 ], + "faces": { + "down": { "uv": [ 3, 9, 6, 12 ], "texture": "#cap" }, + "up": { "uv": [ 0, 9, 3, 12 ], "texture": "#cap" }, + "north": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" }, + "south": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" }, + "west": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" }, + "east": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" } + } + }, + { + "__comment": "Box3", + "from": [ 10.5, 11, 4 ], + "to": [ 12.5, 12, 6 ], + "faces": { + "down": { "uv": [ 2, 12, 4, 14 ], "texture": "#cap" }, + "up": { "uv": [ 0, 12, 2, 14 ], "texture": "#cap" }, + "north": { "uv": [ 4, 12, 6, 13 ], "texture": "#cap" }, + "south": { "uv": [ 4, 12, 6, 13 ], "texture": "#cap" }, + "west": { "uv": [ 4, 12, 6, 13 ], "texture": "#cap" }, + "east": { "uv": [ 4, 12, 6, 13 ], "texture": "#cap" } + } + }, + { + "__comment": "Box3", + "from": [ 10, 5, 2.5 ], + "to": [ 14, 7, 6.5 ], + "faces": { + "down": { "uv": [ 4, 5, 8, 9 ], "texture": "#cap" }, + "up": { "uv": [ 0, 5, 4, 9 ], "texture": "#cap" }, + "north": { "uv": [ 8, 5, 12, 7 ], "texture": "#cap" }, + "south": { "uv": [ 8, 5, 12, 7 ], "texture": "#cap" }, + "west": { "uv": [ 8, 5, 12, 7 ], "texture": "#cap" }, + "east": { "uv": [ 8, 5, 12, 7 ], "texture": "#cap" } + } + }, + { + "__comment": "Box3", + "from": [ 4, 10, 10 ], + "to": [ 6, 11, 12 ], + "faces": { + "down": { "uv": [ 2, 12, 4, 14 ], "texture": "#cap" }, + "up": { "uv": [ 0, 12, 2, 14 ], "texture": "#cap" }, + "north": { "uv": [ 4, 12, 6, 13 ], "texture": "#cap" }, + "south": { "uv": [ 4, 12, 6, 13 ], "texture": "#cap" }, + "west": { "uv": [ 4, 12, 6, 13 ], "texture": "#cap" }, + "east": { "uv": [ 4, 12, 6, 13 ], "texture": "#cap" } + } + }, + { + "__comment": "Box3", + "from": [ 10, 4, 10 ], + "to": [ 13, 6, 13 ], + "faces": { + "down": { "uv": [ 3, 9, 6, 12 ], "texture": "#cap" }, + "up": { "uv": [ 0, 9, 3, 12 ], "texture": "#cap" }, + "north": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" }, + "south": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" }, + "west": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" }, + "east": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/small_jellyshroom_wall_1.json b/src/main/resources/assets/betterend/models/block/small_jellyshroom_wall_1.json new file mode 100644 index 00000000..53b6893a --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/small_jellyshroom_wall_1.json @@ -0,0 +1,96 @@ +{ + "__comment": "Designed by Paulevs with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "betterend:block/jellyshroom_wall_stem_1", + "branch_1": "betterend:block/jellyshroom_wall_stem_1", + "branch_2": "betterend:block/jellyshroom_wall_stem_2", + "branch_3": "betterend:block/jellyshroom_wall_stem_3", + "cap": "betterend:block/jellyshroom_cap" + }, + "elements": [ + { + "__comment": "PlaneX1", + "from": [ 8, 0, 0 ], + "to": [ 8.001, 16, 16 ], + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#branch_1" }, + "east": { "uv": [ 16, 0, 0, 16 ], "texture": "#branch_1" } + } + }, + { + "__comment": "PlaneX1", + "from": [ 11, 0, 0 ], + "to": [ 11.001, 16, 16 ], + "rotation": { "origin": [ 11, 0, 0 ], "axis": "y", "angle": 22.5 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#branch_3" }, + "east": { "uv": [ 16, 0, 0, 16 ], "texture": "#branch_3" } + } + }, + { + "__comment": "PlaneX1", + "from": [ 5, 0, 0 ], + "to": [ 5.001, 16, 16 ], + "rotation": { "origin": [ 5, 0, 0 ], "axis": "y", "angle": -22.5 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#branch_3" }, + "east": { "uv": [ 16, 0, 0, 16 ], "texture": "#branch_3" } + } + }, + { + "__comment": "Box4", + "from": [ 5.5, 10, 5.5 ], + "to": [ 10.5, 13, 10.5 ], + "faces": { + "down": { "uv": [ 5, 0, 10, 5 ], "texture": "#cap" }, + "up": { "uv": [ 0, 0, 5, 5 ], "texture": "#cap" }, + "north": { "uv": [ 10, 0, 15, 3 ], "texture": "#cap" }, + "south": { "uv": [ 10, 0, 15, 3 ], "texture": "#cap" }, + "west": { "uv": [ 10, 0, 15, 3 ], "texture": "#cap" }, + "east": { "uv": [ 10, 0, 15, 3 ], "texture": "#cap" } + } + }, + { + "__comment": "Box4", + "from": [ 11.5, 7, 4 ], + "to": [ 15.5, 10, 8 ], + "faces": { + "down": { "uv": [ 4, 5, 8, 9 ], "texture": "#cap" }, + "up": { "uv": [ 0, 5, 4, 9 ], "texture": "#cap" }, + "north": { "uv": [ 8, 5, 12, 8 ], "texture": "#cap" }, + "south": { "uv": [ 8, 5, 12, 8 ], "texture": "#cap" }, + "west": { "uv": [ 8, 5, 12, 8 ], "texture": "#cap" }, + "east": { "uv": [ 8, 5, 12, 8 ], "texture": "#cap" } + } + }, + { + "__comment": "Box4", + "from": [ 1, 7, 4.5 ], + "to": [ 4, 9, 7.5 ], + "faces": { + "down": { "uv": [ 3, 9, 6, 12 ], "texture": "#cap" }, + "up": { "uv": [ 0, 9, 3, 12 ], "texture": "#cap" }, + "north": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" }, + "south": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" }, + "west": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" }, + "east": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" } + } + }, + { + "__comment": "Box4", + "from": [ 6.5, 9, 2 ], + "to": [ 9.5, 11, 5 ], + "faces": { + "down": { "uv": [ 3, 9, 6, 12 ], "texture": "#cap" }, + "up": { "uv": [ 0, 9, 3, 12 ], "texture": "#cap" }, + "north": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" }, + "south": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" }, + "west": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" }, + "east": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/small_jellyshroom_wall_2.json b/src/main/resources/assets/betterend/models/block/small_jellyshroom_wall_2.json new file mode 100644 index 00000000..2bdc5649 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/small_jellyshroom_wall_2.json @@ -0,0 +1,109 @@ +{ + "__comment": "Designed by Paulevs with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "betterend:block/jellyshroom_wall_stem_1", + "branch_1": "betterend:block/jellyshroom_wall_stem_1", + "branch_2": "betterend:block/jellyshroom_wall_stem_2", + "branch_3": "betterend:block/jellyshroom_wall_stem_3", + "cap": "betterend:block/jellyshroom_cap" + }, + "elements": [ + { + "__comment": "PlaneX1", + "from": [ 8, 0, 0 ], + "to": [ 8.001, 16, 16 ], + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#branch_3" }, + "east": { "uv": [ 16, 0, 0, 16 ], "texture": "#branch_3" } + } + }, + { + "__comment": "PlaneX1", + "from": [ 11, 0, 0 ], + "to": [ 11.001, 16, 16 ], + "rotation": { "origin": [ 11, 0, 0 ], "axis": "y", "angle": 22.5 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#branch_1" }, + "east": { "uv": [ 16, 0, 0, 16 ], "texture": "#branch_1" } + } + }, + { + "__comment": "PlaneX1", + "from": [ 5, 0, 0 ], + "to": [ 5.001, 16, 16 ], + "rotation": { "origin": [ 5, 0, 0 ], "axis": "y", "angle": -22.5 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#branch_2" }, + "east": { "uv": [ 16, 0, 0, 16 ], "texture": "#branch_2" } + } + }, + { + "__comment": "Box4", + "from": [ 11, 10, 5 ], + "to": [ 16, 13, 10 ], + "faces": { + "down": { "uv": [ 5, 0, 10, 5 ], "texture": "#cap" }, + "up": { "uv": [ 0, 0, 5, 5 ], "texture": "#cap" }, + "north": { "uv": [ 10, 0, 15, 3 ], "texture": "#cap" }, + "south": { "uv": [ 10, 0, 15, 3 ], "texture": "#cap" }, + "west": { "uv": [ 10, 0, 15, 3 ], "texture": "#cap" }, + "east": { "uv": [ 10, 0, 15, 3 ], "texture": "#cap" } + } + }, + { + "__comment": "Box4", + "from": [ 10, 9, 1.5 ], + "to": [ 14, 12, 5.5 ], + "faces": { + "down": { "uv": [ 4, 5, 8, 9 ], "texture": "#cap" }, + "up": { "uv": [ 0, 5, 4, 9 ], "texture": "#cap" }, + "north": { "uv": [ 8, 5, 12, 8 ], "texture": "#cap" }, + "south": { "uv": [ 8, 5, 12, 8 ], "texture": "#cap" }, + "west": { "uv": [ 8, 5, 12, 8 ], "texture": "#cap" }, + "east": { "uv": [ 8, 5, 12, 8 ], "texture": "#cap" } + } + }, + { + "__comment": "Box4", + "from": [ 0.5, 8, 6.5 ], + "to": [ 3.5, 10, 9.5 ], + "faces": { + "down": { "uv": [ 3, 9, 6, 12 ], "texture": "#cap" }, + "up": { "uv": [ 0, 9, 3, 12 ], "texture": "#cap" }, + "north": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" }, + "south": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" }, + "west": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" }, + "east": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" } + } + }, + { + "__comment": "Box4", + "from": [ 1.5, 10, 2.5 ], + "to": [ 5.5, 13, 6.5 ], + "faces": { + "down": { "uv": [ 4, 5, 8, 9 ], "texture": "#cap" }, + "up": { "uv": [ 0, 5, 4, 9 ], "texture": "#cap" }, + "north": { "uv": [ 8, 5, 12, 8 ], "texture": "#cap" }, + "south": { "uv": [ 8, 5, 12, 8 ], "texture": "#cap" }, + "west": { "uv": [ 8, 5, 12, 8 ], "texture": "#cap" }, + "east": { "uv": [ 8, 5, 12, 8 ], "texture": "#cap" } + } + }, + { + "__comment": "Box4", + "from": [ 6.5, 8, 5 ], + "to": [ 9.5, 10, 8 ], + "faces": { + "down": { "uv": [ 3, 9, 6, 12 ], "texture": "#cap" }, + "up": { "uv": [ 0, 9, 3, 12 ], "texture": "#cap" }, + "north": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" }, + "south": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" }, + "west": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" }, + "east": { "uv": [ 6, 9, 9, 11 ], "texture": "#cap" } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/textures/block/jellyshroom_cap.png b/src/main/resources/assets/betterend/textures/block/jellyshroom_cap.png new file mode 100644 index 00000000..2799ee63 Binary files /dev/null and b/src/main/resources/assets/betterend/textures/block/jellyshroom_cap.png differ diff --git a/src/main/resources/assets/betterend/textures/block/jellyshroom_wall_stem_1.png b/src/main/resources/assets/betterend/textures/block/jellyshroom_wall_stem_1.png new file mode 100644 index 00000000..ea4576e2 Binary files /dev/null and b/src/main/resources/assets/betterend/textures/block/jellyshroom_wall_stem_1.png differ diff --git a/src/main/resources/assets/betterend/textures/block/jellyshroom_wall_stem_2.png b/src/main/resources/assets/betterend/textures/block/jellyshroom_wall_stem_2.png new file mode 100644 index 00000000..1003883b Binary files /dev/null and b/src/main/resources/assets/betterend/textures/block/jellyshroom_wall_stem_2.png differ diff --git a/src/main/resources/assets/betterend/textures/block/jellyshroom_wall_stem_3.png b/src/main/resources/assets/betterend/textures/block/jellyshroom_wall_stem_3.png new file mode 100644 index 00000000..264636bd Binary files /dev/null and b/src/main/resources/assets/betterend/textures/block/jellyshroom_wall_stem_3.png differ diff --git a/src/main/resources/assets/betterend/textures/block/small_jellyshroom_stem.png b/src/main/resources/assets/betterend/textures/block/small_jellyshroom_stem.png new file mode 100644 index 00000000..fe3df53b Binary files /dev/null and b/src/main/resources/assets/betterend/textures/block/small_jellyshroom_stem.png differ