diff --git a/src/main/java/ru/betterend/blocks/basis/BlockUnderwaterWallPlant.java b/src/main/java/ru/betterend/blocks/basis/BlockUnderwaterWallPlant.java new file mode 100644 index 00000000..2ea2bb31 --- /dev/null +++ b/src/main/java/ru/betterend/blocks/basis/BlockUnderwaterWallPlant.java @@ -0,0 +1,59 @@ +package ru.betterend.blocks.basis; + +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags; +import net.minecraft.block.BlockState; +import net.minecraft.block.FluidFillable; +import net.minecraft.block.Material; +import net.minecraft.fluid.Fluid; +import net.minecraft.fluid.FluidState; +import net.minecraft.fluid.Fluids; +import net.minecraft.sound.BlockSoundGroup; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.BlockView; +import net.minecraft.world.WorldAccess; +import net.minecraft.world.WorldView; + +public class BlockUnderwaterWallPlant extends BlockWallPlant implements FluidFillable { + + public BlockUnderwaterWallPlant() { + super(FabricBlockSettings.of(Material.UNDERWATER_PLANT) + .breakByTool(FabricToolTags.SHEARS) + .sounds(BlockSoundGroup.WET_GRASS) + .breakByHand(true) + .noCollision()); + } + + public BlockUnderwaterWallPlant(int light) { + super(FabricBlockSettings.of(Material.UNDERWATER_PLANT) + .breakByTool(FabricToolTags.SHEARS) + .sounds(BlockSoundGroup.WET_GRASS) + .luminance(light) + .breakByHand(true) + .noCollision()); + } + + public BlockUnderwaterWallPlant(Settings settings) { + super(settings); + } + + @Override + public boolean canFillWithFluid(BlockView world, BlockPos pos, BlockState state, Fluid fluid) { + return false; + } + + @Override + public boolean tryFillWithFluid(WorldAccess world, BlockPos pos, BlockState state, FluidState fluidState) { + return false; + } + + @Override + public FluidState getFluidState(BlockState state) { + return Fluids.WATER.getStill(false); + } + + @Override + public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) { + return world.getFluidState(pos).getFluid() == Fluids.WATER && super.canPlaceAt(state, world, pos); + } +} diff --git a/src/main/java/ru/betterend/blocks/basis/BlockWallPlant.java b/src/main/java/ru/betterend/blocks/basis/BlockWallPlant.java index 3aeda1b4..f2e1d94a 100644 --- a/src/main/java/ru/betterend/blocks/basis/BlockWallPlant.java +++ b/src/main/java/ru/betterend/blocks/basis/BlockWallPlant.java @@ -37,7 +37,11 @@ public class BlockWallPlant extends BlockPlant { public static final DirectionProperty FACING = HorizontalFacingBlock.FACING; public BlockWallPlant() { - this(0); + this(FabricBlockSettings.of(Material.PLANT) + .breakByTool(FabricToolTags.SHEARS) + .sounds(BlockSoundGroup.GRASS) + .breakByHand(true) + .noCollision()); } public BlockWallPlant(int light) { diff --git a/src/main/java/ru/betterend/blocks/complex/ColoredMaterial.java b/src/main/java/ru/betterend/blocks/complex/ColoredMaterial.java index b18f23e9..33955b27 100644 --- a/src/main/java/ru/betterend/blocks/complex/ColoredMaterial.java +++ b/src/main/java/ru/betterend/blocks/complex/ColoredMaterial.java @@ -16,13 +16,18 @@ import ru.betterend.registry.EndBlocks; public class ColoredMaterial { private final Map colors = Maps.newEnumMap(DyeColor.class); - public ColoredMaterial(Function constructor, Block source) { + public ColoredMaterial(Function constructor, Block source, boolean craftEight) { String id = Registry.BLOCK.getId(source).getPath(); for (DyeColor color: DyeColor.values()) { Block block = constructor.apply(FabricBlockSettings.copyOf(source).materialColor(color)); String blockName = id + "_" + color.getName(); EndBlocks.registerBlock(blockName, block); - GridRecipe.make(blockName, block).setList("#D").addMaterial('#', source).addMaterial('D', DyeItem.byColor(color)).build(); + if (craftEight) { + GridRecipe.make(blockName, block).setOutputCount(8).setShape("###", "#D#", "###").addMaterial('#', source).addMaterial('D', DyeItem.byColor(color)).build(); + } + else { + GridRecipe.make(blockName, block).setList("#D").addMaterial('#', source).addMaterial('D', DyeItem.byColor(color)).build(); + } colors.put(color, block); } } diff --git a/src/main/java/ru/betterend/registry/EndBlocks.java b/src/main/java/ru/betterend/registry/EndBlocks.java index 444bd59d..aadb758b 100644 --- a/src/main/java/ru/betterend/registry/EndBlocks.java +++ b/src/main/java/ru/betterend/registry/EndBlocks.java @@ -65,6 +65,7 @@ import ru.betterend.blocks.basis.BlockLeaves; import ru.betterend.blocks.basis.BlockOre; import ru.betterend.blocks.basis.BlockSimpleLeaves; import ru.betterend.blocks.basis.BlockStoneLantern; +import ru.betterend.blocks.basis.BlockUnderwaterWallPlant; import ru.betterend.blocks.basis.BlockVine; import ru.betterend.blocks.basis.BlockWallMushroom; import ru.betterend.blocks.basis.BlockWallPlant; @@ -169,7 +170,7 @@ public class EndBlocks { public static final Block HYDRALUX_SAPLING = registerBlock("hydralux_sapling", new BlockHydraluxSapling()); public static final Block HYDRALUX = registerBlockNI("hydralux", new BlockHydralux()); public static final Block HYDRALUX_PETAL_BLOCK = registerBlock("hydralux_petal_block", new BlockHydraluxPetal()); - public static final ColoredMaterial HYDRALUX_PETAL_BLOCK_COLORED = new ColoredMaterial(BlockHydraluxPetalColored::new, HYDRALUX_PETAL_BLOCK); + public static final ColoredMaterial HYDRALUX_PETAL_BLOCK_COLORED = new ColoredMaterial(BlockHydraluxPetalColored::new, HYDRALUX_PETAL_BLOCK, true); public static final Block CAVE_BUSH = registerBlock("cave_bush", new BlockSimpleLeaves(MaterialColor.MAGENTA)); @@ -181,6 +182,7 @@ public class EndBlocks { public static final Block TAIL_MOSS = registerBlock("tail_moss", new BlockWallPlant()); public static final Block CYAN_MOSS = registerBlock("cyan_moss", new BlockWallPlant()); public static final Block TWISTED_MOSS = registerBlock("twisted_moss", new BlockWallPlant()); + public static final Block TUBE_WORM = registerBlock("tube_worm", new BlockUnderwaterWallPlant()); // Crops // public static final Block SHADOW_BERRY = registerBlock("shadow_berry", new BlockShadowBerry()); @@ -212,7 +214,7 @@ public class EndBlocks { public static final Block BLACKSTONE_LANTERN = registerBlock("blackstone_lantern", new BlockStoneLantern(Blocks.BLACKSTONE)); public static final Block BULB_LANTERN = registerBlock("bulb_lantern", new BlockBulbVineLantern()); - public static final ColoredMaterial BULB_LANTERN_COLORED = new ColoredMaterial(BlockBulbVineLanternColored::new, BULB_LANTERN); + public static final ColoredMaterial BULB_LANTERN_COLORED = new ColoredMaterial(BlockBulbVineLanternColored::new, BULB_LANTERN, false); // Blocks With Entity // public static final Block END_STONE_SMELTER = registerBlock("end_stone_smelter", new EndStoneSmelter()); diff --git a/src/main/java/ru/betterend/registry/EndFeatures.java b/src/main/java/ru/betterend/registry/EndFeatures.java index 87d88e83..d5cf65e6 100644 --- a/src/main/java/ru/betterend/registry/EndFeatures.java +++ b/src/main/java/ru/betterend/registry/EndFeatures.java @@ -89,6 +89,7 @@ public class EndFeatures { public static final EndFeature END_LOTUS = new EndFeature("end_lotus", new EndLotusFeature(7), 5); public static final EndFeature END_LOTUS_LEAF = new EndFeature("end_lotus_leaf", new EndLotusLeafFeature(20), 25); public static final EndFeature HYDRALUX = new EndFeature("hydralux", new HydraluxFeature(5), 5); + public static final EndFeature TUBE_WORM = new EndFeature("tube_worm", new WallPlantFeature(EndBlocks.TUBE_WORM, 6), 15); // Terrain // public static final EndFeature END_LAKE = EndFeature.makeLakeFeature("end_lake", new EndLakeFeature(), 4); diff --git a/src/main/java/ru/betterend/util/BlocksHelper.java b/src/main/java/ru/betterend/util/BlocksHelper.java index d12d4896..a9281e95 100644 --- a/src/main/java/ru/betterend/util/BlocksHelper.java +++ b/src/main/java/ru/betterend/util/BlocksHelper.java @@ -43,6 +43,7 @@ public class BlocksHelper { private static final Mutable POS = new Mutable(); protected static final BlockState AIR = Blocks.AIR.getDefaultState(); + protected static final BlockState WATER = Blocks.WATER.getDefaultState(); private static final Vec3i[] OFFSETS = new Vec3i[] { new Vec3i(-1, -1, -1), new Vec3i(-1, -1, 0), new Vec3i(-1, -1, 1), @@ -159,6 +160,9 @@ public class BlocksHelper { } // Liquids else if (!state.getFluidState().isEmpty()) { + if (!state.canPlaceAt(world, POS)) { + setWithoutUpdate(world, POS, WATER); + } POS.setY(y - 1); if (world.isAir(POS)) { POS.setY(y); diff --git a/src/main/java/ru/betterend/world/biome/BiomeSulfurSprings.java b/src/main/java/ru/betterend/world/biome/BiomeSulfurSprings.java index 776409df..a794bdd9 100644 --- a/src/main/java/ru/betterend/world/biome/BiomeSulfurSprings.java +++ b/src/main/java/ru/betterend/world/biome/BiomeSulfurSprings.java @@ -19,6 +19,7 @@ public class BiomeSulfurSprings extends EndBiome { .addFeature(EndFeatures.SULPHURIC_LAKE) .addFeature(EndFeatures.SULPHURIC_CAVE) .addFeature(EndFeatures.HYDRALUX) + .addFeature(EndFeatures.TUBE_WORM) .addMobSpawn(EntityType.ENDERMAN, 50, 1, 4)); } } diff --git a/src/main/java/ru/betterend/world/features/WallPlantFeature.java b/src/main/java/ru/betterend/world/features/WallPlantFeature.java index 1891d1e8..5c42152e 100644 --- a/src/main/java/ru/betterend/world/features/WallPlantFeature.java +++ b/src/main/java/ru/betterend/world/features/WallPlantFeature.java @@ -20,13 +20,13 @@ public class WallPlantFeature extends WallScatterFeature { @Override public boolean canGenerate(StructureWorldAccess world, Random random, BlockPos pos, Direction dir) { - BlockPos blockPos = pos.offset(dir.getOpposite()); - BlockState blockState = world.getBlockState(blockPos); - return ((BlockWallPlant) block).isSupport(world, blockPos, blockState, dir); + BlockState state = block.getDefaultState().with(BlockWallPlant.FACING, dir); + return block.canPlaceAt(state, world, pos); } @Override public void generate(StructureWorldAccess world, Random random, BlockPos pos, Direction dir) { - BlocksHelper.setWithoutUpdate(world, pos, block.getDefaultState().with(BlockWallPlant.FACING, dir)); + BlockState state = block.getDefaultState().with(BlockWallPlant.FACING, dir); + BlocksHelper.setWithoutUpdate(world, pos, state); } } diff --git a/src/main/resources/assets/betterend/blockstates/tube_worm.json b/src/main/resources/assets/betterend/blockstates/tube_worm.json new file mode 100644 index 00000000..25fb18b1 --- /dev/null +++ b/src/main/resources/assets/betterend/blockstates/tube_worm.json @@ -0,0 +1,24 @@ +{ + "variants": { + "facing=north": [ + { "model": "betterend:block/tube_worm_01", "y": 180 }, + { "model": "betterend:block/tube_worm_02", "y": 180 }, + { "model": "betterend:block/tube_worm_03", "y": 180 } + ], + "facing=south": [ + { "model": "betterend:block/tube_worm_01" }, + { "model": "betterend:block/tube_worm_02" }, + { "model": "betterend:block/tube_worm_03" } + ], + "facing=east": [ + { "model": "betterend:block/tube_worm_01", "y": 270 }, + { "model": "betterend:block/tube_worm_02", "y": 270 }, + { "model": "betterend:block/tube_worm_03", "y": 270 } + ], + "facing=west": [ + { "model": "betterend:block/tube_worm_01", "y": 90 }, + { "model": "betterend:block/tube_worm_02", "y": 90 }, + { "model": "betterend:block/tube_worm_03", "y": 90 } + ] + } +} diff --git a/src/main/resources/assets/betterend/models/block/tube_worm_01.json b/src/main/resources/assets/betterend/models/block/tube_worm_01.json new file mode 100644 index 00000000..ae2acdf5 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/tube_worm_01.json @@ -0,0 +1,95 @@ +{ + "__comment": "Designed by Paulevs with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "betterend:block/tube_worm_3", + "worm3": "betterend:block/tube_worm_3", + "worm2": "betterend:block/tube_worm_2", + "worm1": "betterend:block/tube_worm_1" + }, + "elements": [ + { + "__comment": "PlaneX1", + "from": [ 8, 0, 0 ], + "to": [ 8.001, 9, 16 ], + "shade": false, + "faces": { + "west": { "uv": [ 16, 7, 0, 16 ], "texture": "#worm3" }, + "east": { "uv": [ 0, 7, 16, 16 ], "texture": "#worm3" } + } + }, + { + "__comment": "PlaneX1", + "from": [ 11, 0, 0 ], + "to": [ 11.001, 9, 16 ], + "rotation": { "origin": [ 11, 0, 0 ], "axis": "y", "angle": 22.5 }, + "shade": false, + "faces": { + "west": { "uv": [ 16, 7, 0, 16 ], "texture": "#worm1" }, + "east": { "uv": [ 0, 7, 16, 16 ], "texture": "#worm1" } + } + }, + { + "__comment": "PlaneX1", + "from": [ 5, 0, 0 ], + "to": [ 5.001, 9, 16 ], + "rotation": { "origin": [ 5, 0, 0 ], "axis": "y", "angle": -22.5 }, + "shade": false, + "faces": { + "west": { "uv": [ 16, 7, 0, 16 ], "texture": "#worm2" }, + "east": { "uv": [ 0, 7, 16, 16 ], "texture": "#worm2" } + } + }, + { + "__comment": "Box4", + "from": [ 11, 6, 3 ], + "to": [ 14, 11, 6 ], + "faces": { + "down": { "uv": [ 10, 0, 13, 3 ], "texture": "#worm3" }, + "up": { "uv": [ 10, 0, 13, 3 ], "texture": "#worm3" }, + "north": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "south": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "west": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "east": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" } + } + }, + { + "__comment": "Box4", + "from": [ 2, 6, 5 ], + "to": [ 5, 11, 8 ], + "faces": { + "down": { "uv": [ 10, 0, 13, 3 ], "texture": "#worm3" }, + "up": { "uv": [ 10, 0, 13, 3 ], "texture": "#worm3" }, + "north": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "south": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "west": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "east": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" } + } + }, + { + "__comment": "Box4", + "from": [ 6.5, 7, 9 ], + "to": [ 9.5, 12, 12 ], + "faces": { + "down": { "uv": [ 10, 0, 13, 3 ], "texture": "#worm3" }, + "up": { "uv": [ 10, 0, 13, 3 ], "texture": "#worm3" }, + "north": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "south": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "west": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "east": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" } + } + }, + { + "__comment": "Box4", + "from": [ 6.5, 9, 3 ], + "to": [ 9.5, 14, 6 ], + "faces": { + "down": { "uv": [ 10, 0, 13, 3 ], "texture": "#worm3" }, + "up": { "uv": [ 10, 0, 13, 3 ], "texture": "#worm3" }, + "north": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "south": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "west": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "east": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/tube_worm_02.json b/src/main/resources/assets/betterend/models/block/tube_worm_02.json new file mode 100644 index 00000000..dad765bf --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/tube_worm_02.json @@ -0,0 +1,95 @@ +{ + "__comment": "Designed by Paulevs with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "betterend:block/tube_worm_3", + "worm3": "betterend:block/tube_worm_3", + "worm2": "betterend:block/tube_worm_2", + "worm1": "betterend:block/tube_worm_1" + }, + "elements": [ + { + "__comment": "PlaneX1", + "from": [ 8, 0, 0 ], + "to": [ 8.001, 9, 16 ], + "shade": false, + "faces": { + "west": { "uv": [ 16, 7, 0, 16 ], "texture": "#worm2" }, + "east": { "uv": [ 0, 7, 16, 16 ], "texture": "#worm2" } + } + }, + { + "__comment": "PlaneX1", + "from": [ 11, 0, 0 ], + "to": [ 11.001, 9, 16 ], + "rotation": { "origin": [ 11, 0, 0 ], "axis": "y", "angle": 22.5 }, + "shade": false, + "faces": { + "west": { "uv": [ 16, 7, 0, 16 ], "texture": "#worm3" }, + "east": { "uv": [ 0, 7, 16, 16 ], "texture": "#worm3" } + } + }, + { + "__comment": "PlaneX1", + "from": [ 5, 0, 0 ], + "to": [ 5.001, 9, 16 ], + "rotation": { "origin": [ 5, 0, 0 ], "axis": "y", "angle": -22.5 }, + "shade": false, + "faces": { + "west": { "uv": [ 16, 7, 0, 16 ], "texture": "#worm2" }, + "east": { "uv": [ 0, 7, 16, 16 ], "texture": "#worm2" } + } + }, + { + "__comment": "Box4", + "from": [ 6.5, 6, 5.5 ], + "to": [ 9.5, 11, 8.5 ], + "faces": { + "down": { "uv": [ 10, 0, 13, 3 ], "texture": "#worm3" }, + "up": { "uv": [ 10, 0, 13, 3 ], "texture": "#worm3" }, + "north": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "south": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "west": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "east": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" } + } + }, + { + "__comment": "Box4", + "from": [ 1, 6, 5 ], + "to": [ 4, 11, 8 ], + "faces": { + "down": { "uv": [ 10, 0, 13, 3 ], "texture": "#worm3" }, + "up": { "uv": [ 10, 0, 13, 3 ], "texture": "#worm3" }, + "north": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "south": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "west": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "east": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" } + } + }, + { + "__comment": "Box4", + "from": [ 13.5, 7, 9 ], + "to": [ 16.5, 12, 12 ], + "faces": { + "down": { "uv": [ 10, 0, 13, 3 ], "texture": "#worm3" }, + "up": { "uv": [ 10, 0, 13, 3 ], "texture": "#worm3" }, + "north": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "south": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "west": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "east": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" } + } + }, + { + "__comment": "Box4", + "from": [ 11.5, 9, 3 ], + "to": [ 14.5, 14, 6 ], + "faces": { + "down": { "uv": [ 10, 0, 13, 3 ], "texture": "#worm3" }, + "up": { "uv": [ 10, 0, 13, 3 ], "texture": "#worm3" }, + "north": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "south": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "west": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "east": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/tube_worm_03.json b/src/main/resources/assets/betterend/models/block/tube_worm_03.json new file mode 100644 index 00000000..90a0db4a --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/tube_worm_03.json @@ -0,0 +1,108 @@ +{ + "__comment": "Designed by Paulevs with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "betterend:block/tube_worm_3", + "worm3": "betterend:block/tube_worm_3", + "worm2": "betterend:block/tube_worm_2", + "worm1": "betterend:block/tube_worm_1" + }, + "elements": [ + { + "__comment": "PlaneX1", + "from": [ 8, 0, 0 ], + "to": [ 8.001, 9, 16 ], + "shade": false, + "faces": { + "west": { "uv": [ 16, 7, 0, 16 ], "texture": "#worm2" }, + "east": { "uv": [ 0, 7, 16, 16 ], "texture": "#worm2" } + } + }, + { + "__comment": "PlaneX1", + "from": [ 11, 0, 0 ], + "to": [ 11.001, 9, 16 ], + "rotation": { "origin": [ 11, 0, 0 ], "axis": "y", "angle": 22.5 }, + "shade": false, + "faces": { + "west": { "uv": [ 16, 7, 0, 16 ], "texture": "#worm3" }, + "east": { "uv": [ 0, 7, 16, 16 ], "texture": "#worm3" } + } + }, + { + "__comment": "PlaneX1", + "from": [ 5, 0, 0 ], + "to": [ 5.001, 9, 16 ], + "rotation": { "origin": [ 5, 0, 0 ], "axis": "y", "angle": -22.5 }, + "shade": false, + "faces": { + "west": { "uv": [ 16, 7, 0, 16 ], "texture": "#worm3" }, + "east": { "uv": [ 0, 7, 16, 16 ], "texture": "#worm3" } + } + }, + { + "__comment": "Box4", + "from": [ 6.5, 6, 5.5 ], + "to": [ 9.5, 11, 8.5 ], + "faces": { + "down": { "uv": [ 10, 0, 13, 3 ], "texture": "#worm3" }, + "up": { "uv": [ 10, 0, 13, 3 ], "texture": "#worm3" }, + "north": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "south": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "west": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "east": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" } + } + }, + { + "__comment": "Box4", + "from": [ 14, 7, 9 ], + "to": [ 17, 12, 12 ], + "faces": { + "down": { "uv": [ 10, 0, 13, 3 ], "texture": "#worm3" }, + "up": { "uv": [ 10, 0, 13, 3 ], "texture": "#worm3" }, + "north": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "south": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "west": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "east": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" } + } + }, + { + "__comment": "Box4", + "from": [ 11.5, 9, 3 ], + "to": [ 14.5, 14, 6 ], + "faces": { + "down": { "uv": [ 10, 0, 13, 3 ], "texture": "#worm3" }, + "up": { "uv": [ 10, 0, 13, 3 ], "texture": "#worm3" }, + "north": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "south": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "west": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "east": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" } + } + }, + { + "__comment": "Box4", + "from": [ 1.5, 9, 3 ], + "to": [ 4.5, 14, 6 ], + "faces": { + "down": { "uv": [ 10, 0, 13, 3 ], "texture": "#worm3" }, + "up": { "uv": [ 10, 0, 13, 3 ], "texture": "#worm3" }, + "north": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "south": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "west": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "east": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" } + } + }, + { + "__comment": "Box4", + "from": [ -1, 7, 9 ], + "to": [ 2, 12, 12 ], + "faces": { + "down": { "uv": [ 10, 0, 13, 3 ], "texture": "#worm3" }, + "up": { "uv": [ 10, 0, 13, 3 ], "texture": "#worm3" }, + "north": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "south": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "west": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" }, + "east": { "uv": [ 13, 0, 16, 5 ], "texture": "#worm3" } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/item/tube_worm.json b/src/main/resources/assets/betterend/models/item/tube_worm.json new file mode 100644 index 00000000..b3f291b7 --- /dev/null +++ b/src/main/resources/assets/betterend/models/item/tube_worm.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "betterend:item/tube_worm" + } +} diff --git a/src/main/resources/assets/betterend/textures/block/tube_worm_1.png b/src/main/resources/assets/betterend/textures/block/tube_worm_1.png new file mode 100644 index 00000000..3e6c891a Binary files /dev/null and b/src/main/resources/assets/betterend/textures/block/tube_worm_1.png differ diff --git a/src/main/resources/assets/betterend/textures/block/tube_worm_2.png b/src/main/resources/assets/betterend/textures/block/tube_worm_2.png new file mode 100644 index 00000000..08dbb62d Binary files /dev/null and b/src/main/resources/assets/betterend/textures/block/tube_worm_2.png differ diff --git a/src/main/resources/assets/betterend/textures/block/tube_worm_3.png b/src/main/resources/assets/betterend/textures/block/tube_worm_3.png new file mode 100644 index 00000000..7ba5e2b2 Binary files /dev/null and b/src/main/resources/assets/betterend/textures/block/tube_worm_3.png differ diff --git a/src/main/resources/assets/betterend/textures/item/tube_worm.png b/src/main/resources/assets/betterend/textures/item/tube_worm.png new file mode 100644 index 00000000..dcae6be3 Binary files /dev/null and b/src/main/resources/assets/betterend/textures/item/tube_worm.png differ