From e3769bb20b3670e793138049a202020801644255 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Sun, 6 Dec 2020 05:21:35 +0300 Subject: [PATCH] Tube worms, floating block fixes --- .../basis/BlockUnderwaterWallPlant.java | 59 ++++++++++ .../blocks/basis/BlockWallPlant.java | 6 +- .../blocks/complex/ColoredMaterial.java | 9 +- .../java/ru/betterend/registry/EndBlocks.java | 6 +- .../ru/betterend/registry/EndFeatures.java | 1 + .../java/ru/betterend/util/BlocksHelper.java | 4 + .../world/biome/BiomeSulfurSprings.java | 1 + .../world/features/WallPlantFeature.java | 8 +- .../betterend/blockstates/tube_worm.json | 24 ++++ .../betterend/models/block/tube_worm_01.json | 95 +++++++++++++++ .../betterend/models/block/tube_worm_02.json | 95 +++++++++++++++ .../betterend/models/block/tube_worm_03.json | 108 ++++++++++++++++++ .../betterend/models/item/tube_worm.json | 6 + .../betterend/textures/block/tube_worm_1.png | Bin 0 -> 1888 bytes .../betterend/textures/block/tube_worm_2.png | Bin 0 -> 2808 bytes .../betterend/textures/block/tube_worm_3.png | Bin 0 -> 2708 bytes .../betterend/textures/item/tube_worm.png | Bin 0 -> 1799 bytes 17 files changed, 413 insertions(+), 9 deletions(-) create mode 100644 src/main/java/ru/betterend/blocks/basis/BlockUnderwaterWallPlant.java create mode 100644 src/main/resources/assets/betterend/blockstates/tube_worm.json create mode 100644 src/main/resources/assets/betterend/models/block/tube_worm_01.json create mode 100644 src/main/resources/assets/betterend/models/block/tube_worm_02.json create mode 100644 src/main/resources/assets/betterend/models/block/tube_worm_03.json create mode 100644 src/main/resources/assets/betterend/models/item/tube_worm.json create mode 100644 src/main/resources/assets/betterend/textures/block/tube_worm_1.png create mode 100644 src/main/resources/assets/betterend/textures/block/tube_worm_2.png create mode 100644 src/main/resources/assets/betterend/textures/block/tube_worm_3.png create mode 100644 src/main/resources/assets/betterend/textures/item/tube_worm.png 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 0000000000000000000000000000000000000000..3e6c891a7d5505abfbcc24b7e5bdb28f64951dec GIT binary patch literal 1888 zcmcIl%ZnUE9PSVdYn(tp5aY$NqZo-bUHyKL$-2(0&WgRRn}J;~YIRlhOuN%vo$lV9 znLQ1GIlB#ReMLJ1y#Z2D`U&NBwgss)K^ zXux)>s)bz5cphj-wH0J5st%FrAncc7Gz|&_%m+z<`!LDR&lnmkCs~vh5l=wLhy%V|)MTM_5<;BLX_I`KCXq0u zk5fghqB5iz(D#pq#_=4T7t1@s%T(`y#CdCwGG(3Rd^;m-d50y%`I$3H=CZ;_39bJ1x<<-9u;s^+hXCT;PMihU#hdePB+baBv)`?|Umr zUf_hVl}1e#qN-6uy?|ne1=NLsqZ?4O3=0OPr9xdLj_T-v8=7>iOV~F!*)B6!+D|%{ zaw0h9N%Ayi*%Y}hbg3Ca8W=VV2tkm!T436`YMOyHV|y)&#Nxr-ds$0WR4{6WsoEjK zFl0iS?HUGja4AhAYN&^nraPewDDgs`#aOgT6yr8i(xfeef7R4^muEhwBIkP9(1Kk= z(Ts9Yy}@*eTwzzIqizJoedl3PwtGz`Wu2Lbeli^$kiFySoY?m|OpqQ?{0S`QVbQ}G zTWX6;AE&>R!}RBP=VT!zLi3Ft;=N-c=6c+&S1%&KT!VOcOFYGkdr4-Ogrr z?K@i(7C}*{D3Pp46i^{VK|zBECM~{OC2+3iNrDc~2+MMbcEU>$)n^R84~t0n@c8BRv?Ur$-Dmp3)?Yvrt4JXC%H@$tsFeI&h&A7qn42 z43i9)+9R=w%P4oL4`j5!#Vbj>Z=6w;w|R$0St_x(z{)7q>jivQ+D@lHr`gP^R5bK$ zS9ID~i@CbUQ?ZgzKC>zUD1}N;48sK3A(KQffI2nTJVW zazp2kTZRi=VmQzb0t$&?Xa?4(9uPWOUlVjCuYi30pc$B;lA{Qnl#Hl}7>5CO5DbW< zBn~6c^j(fDPHfZ1BeqwQQ1&Bf?_|wYG0Esynqg~!1{n!#s3WP$#ngb*_Njq<$7Y7F zfNi@~(H2QvFd1__?}mO=db43Fv$rv2EI#BNObp1aimlp@X;!eFHJe z!lsREcjWyZ>Pqyhn9wzK45>p5V){1L zu)eQ9wug-W&L1kGRi5mqu$Ux7?jk%%D@u@v4j^&d4k^jYQC*GLa5xtQ4l)6@+j-Bp zF`k4wDq*LULIQY*_71E&U9&9Cd>e8^bjY|7KoVF6)P3X=H_%v=I z2z|$QoP0*Fl; z9sR}s`jgu~Z+-K}=0sDy(wsf}F+cOe#+`59+4}wSVB)i%{E7G8yzQU3dDpL5wrAZzV_+)t8f1Wv^9Jn literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7ba5e2b297061591796dd2d6215f81372c8f9374 GIT binary patch literal 2708 zcmcImTWl0n7@pds3Y5eIja45y3}`SoJ7;b?7g$N%Ew;pkS{AxZOzfF+&a@MD=L|E` z?v@8kKoc}ooA>}4pEV+CVq#*HLHDG8EH7McHI_X3l)) zzkdIJ{+EV!KDBoBL#sKCTRS*V7-si-lk1)?_TPJX0kYewU|=-jxHapNtAl&# zhJ@EMSrN&a!W&jb&H_u(9_JMx8xk-iSrvh7gRHGueCsDLZ6S8;;llQoF7}oaCgM1- zC8<`cWol}MhU1cKS(XG8Nl`?G5Tj{7hIP@8Hnb%aNQ6Q!h&}4_iA3no$v7u4OPelK zgH)^^wZg;#Ce>je$r+Hi)Bs|X;)2Pr(ol|(L@K08{5WD*ImNOl6^ki+NwL*xijLy` zDP~d2w!De}b_P#32NN`=(F9#42*HTg{=o{woQdMvTBwTBd7Omcz(6d=lq2(l%h*=p9-^vyuE z0cb*tj7J#8a4E1R+wzTIiamGwmQajrmxfiyqU=@SIFSN>yrHdFvn?P#rO5651&SsU1|<8N#egYdGSbl5*f3QM z$v{*sqKJm9ArV4L6LrVHCUA5eyRa>7SLm^Ngq6io6RU7yRaVgq#Z^QMT|-oXW{Q@K zG!YpN(tu+cSaSsay52mk(6C4`i@BOqLxYv}fETgsO}FZ6H`(8Ms(5^Zh&Dt?t>grh zqE8&;4oc$4;y1Dg^Z0Lq!S|V#9 zP$XuOWk4*^(E!e7W!(UV)%JcF>vhnk?rmD%3ND&}{y1UnR}yaDAIrp=3oV_|)B>XG zXtL;72|obPkO80zb#gO*Zm6z1?+>E>6bTnGEPx?orw9q7oZyDE%EKV2cnBtRl%{;# zYR)Oa`Iz$8%X!(jVG??an6Ow&Y6Aa1>boWHR@PmXubMlTCn-4~n=L{5XSZm+7n;G` zo}{O7@YqZBg_SaqokTY4mTCX|cb%@OpZ?d5nGmPp_@YUny~M_kK==>CJ(eqVKB{_E54jGaD`2d;K5JYF#)D zbf&!a3$pIh_5AdSt{*>Ib#&`qiQjxz$Ly&Q>HMjm&un~QE;LVb_{iJGm6sjNDffNY y0rInd@|`flbO)ziQrs7%&{7t~KR`u>#ep#el@?u~z zcV@o(o$s9U&6(qq6VDF~?iu7bZYY;cPqFjP;Ml&E{g3>y0oiGXlb!K6?!jHbF~FT( z9_F|Qu2_YlU(6pe5UqtFrX>hEZ>?Gv`)YnPMc7DycD;$ArnfP)>#V)T_{YNME`dIE3zSy7jhgJT z@TpYLm>9qRuw`Rf_YMT2I(tYO`XnJJKmnqxh(Ip@)zDN!QJw}71AsO(&#Zu<5BmdC zY?;k|p!vL!vppZ$h~&}V^uMUs1j8XWmSbDjKxc0Oj9EOV62#tXiFE{ zpQdOos9>#tVK;ZCdOq|XZBW^Ad{I?myw2}rcO#S5qOLYle#s?tYXz*nMjUZ7WjYF zq-d48d5T%hBY~kAJIf+#d8~WQ&MPuaj&xR4i*NbPfGDtgLO?;E2^KoHt-DmOKb>vb zdWA63O`6|^dDQgl&?Vz#R_T8HCEZKE2j@3e-(TYvWwoFCN`sX*%Th6+9aFcKjhNmh1l2V?~RSI`<^)Z@Q+7_ zXA+@ZCr8g;$etMBFW+1|7kcL@#rgQR`n%x9Yd24<-CEhU)EG*B7h3&u{dW1R@OaZY zcJk9}q1)d+2Ciw`%oaQ>jf|WUAHf&-C-+`**4Gb&Qs9fvr?LZ?7dw|D{8>D4pG^py>aPL^~@rtUoH+MuZC8)Z~0#RMNLk>xcj3I(z}yO<}%#*=&yf`y!XkDJxTVVJ6nH$ UZ6&*WJor@QG85?!pM7=lA70=^1poj5 literal 0 HcmV?d00001