Tube worms, floating block fixes

This commit is contained in:
paulevsGitch 2020-12-06 05:21:35 +03:00
parent 08e31b8743
commit e3769bb20b
17 changed files with 413 additions and 9 deletions

View file

@ -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);
}
}

View file

@ -37,7 +37,11 @@ public class BlockWallPlant extends BlockPlant {
public static final DirectionProperty FACING = HorizontalFacingBlock.FACING; public static final DirectionProperty FACING = HorizontalFacingBlock.FACING;
public BlockWallPlant() { public BlockWallPlant() {
this(0); this(FabricBlockSettings.of(Material.PLANT)
.breakByTool(FabricToolTags.SHEARS)
.sounds(BlockSoundGroup.GRASS)
.breakByHand(true)
.noCollision());
} }
public BlockWallPlant(int light) { public BlockWallPlant(int light) {

View file

@ -16,13 +16,18 @@ import ru.betterend.registry.EndBlocks;
public class ColoredMaterial { public class ColoredMaterial {
private final Map<DyeColor, Block> colors = Maps.newEnumMap(DyeColor.class); private final Map<DyeColor, Block> colors = Maps.newEnumMap(DyeColor.class);
public ColoredMaterial(Function<FabricBlockSettings, Block> constructor, Block source) { public ColoredMaterial(Function<FabricBlockSettings, Block> constructor, Block source, boolean craftEight) {
String id = Registry.BLOCK.getId(source).getPath(); String id = Registry.BLOCK.getId(source).getPath();
for (DyeColor color: DyeColor.values()) { for (DyeColor color: DyeColor.values()) {
Block block = constructor.apply(FabricBlockSettings.copyOf(source).materialColor(color)); Block block = constructor.apply(FabricBlockSettings.copyOf(source).materialColor(color));
String blockName = id + "_" + color.getName(); String blockName = id + "_" + color.getName();
EndBlocks.registerBlock(blockName, block); EndBlocks.registerBlock(blockName, block);
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(); GridRecipe.make(blockName, block).setList("#D").addMaterial('#', source).addMaterial('D', DyeItem.byColor(color)).build();
}
colors.put(color, block); colors.put(color, block);
} }
} }

View file

@ -65,6 +65,7 @@ import ru.betterend.blocks.basis.BlockLeaves;
import ru.betterend.blocks.basis.BlockOre; import ru.betterend.blocks.basis.BlockOre;
import ru.betterend.blocks.basis.BlockSimpleLeaves; import ru.betterend.blocks.basis.BlockSimpleLeaves;
import ru.betterend.blocks.basis.BlockStoneLantern; import ru.betterend.blocks.basis.BlockStoneLantern;
import ru.betterend.blocks.basis.BlockUnderwaterWallPlant;
import ru.betterend.blocks.basis.BlockVine; import ru.betterend.blocks.basis.BlockVine;
import ru.betterend.blocks.basis.BlockWallMushroom; import ru.betterend.blocks.basis.BlockWallMushroom;
import ru.betterend.blocks.basis.BlockWallPlant; 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_SAPLING = registerBlock("hydralux_sapling", new BlockHydraluxSapling());
public static final Block HYDRALUX = registerBlockNI("hydralux", new BlockHydralux()); 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 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)); 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 TAIL_MOSS = registerBlock("tail_moss", new BlockWallPlant());
public static final Block CYAN_MOSS = registerBlock("cyan_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 TWISTED_MOSS = registerBlock("twisted_moss", new BlockWallPlant());
public static final Block TUBE_WORM = registerBlock("tube_worm", new BlockUnderwaterWallPlant());
// Crops // // Crops //
public static final Block SHADOW_BERRY = registerBlock("shadow_berry", new BlockShadowBerry()); 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 BLACKSTONE_LANTERN = registerBlock("blackstone_lantern", new BlockStoneLantern(Blocks.BLACKSTONE));
public static final Block BULB_LANTERN = registerBlock("bulb_lantern", new BlockBulbVineLantern()); 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 // // Blocks With Entity //
public static final Block END_STONE_SMELTER = registerBlock("end_stone_smelter", new EndStoneSmelter()); public static final Block END_STONE_SMELTER = registerBlock("end_stone_smelter", new EndStoneSmelter());

View file

@ -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 = 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 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 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 // // Terrain //
public static final EndFeature END_LAKE = EndFeature.makeLakeFeature("end_lake", new EndLakeFeature(), 4); public static final EndFeature END_LAKE = EndFeature.makeLakeFeature("end_lake", new EndLakeFeature(), 4);

View file

@ -43,6 +43,7 @@ public class BlocksHelper {
private static final Mutable POS = new Mutable(); private static final Mutable POS = new Mutable();
protected static final BlockState AIR = Blocks.AIR.getDefaultState(); protected static final BlockState AIR = Blocks.AIR.getDefaultState();
protected static final BlockState WATER = Blocks.WATER.getDefaultState();
private static final Vec3i[] OFFSETS = new Vec3i[] { private static final Vec3i[] OFFSETS = new Vec3i[] {
new Vec3i(-1, -1, -1), new Vec3i(-1, -1, 0), new Vec3i(-1, -1, 1), new Vec3i(-1, -1, -1), new Vec3i(-1, -1, 0), new Vec3i(-1, -1, 1),
@ -159,6 +160,9 @@ public class BlocksHelper {
} }
// Liquids // Liquids
else if (!state.getFluidState().isEmpty()) { else if (!state.getFluidState().isEmpty()) {
if (!state.canPlaceAt(world, POS)) {
setWithoutUpdate(world, POS, WATER);
}
POS.setY(y - 1); POS.setY(y - 1);
if (world.isAir(POS)) { if (world.isAir(POS)) {
POS.setY(y); POS.setY(y);

View file

@ -19,6 +19,7 @@ public class BiomeSulfurSprings extends EndBiome {
.addFeature(EndFeatures.SULPHURIC_LAKE) .addFeature(EndFeatures.SULPHURIC_LAKE)
.addFeature(EndFeatures.SULPHURIC_CAVE) .addFeature(EndFeatures.SULPHURIC_CAVE)
.addFeature(EndFeatures.HYDRALUX) .addFeature(EndFeatures.HYDRALUX)
.addFeature(EndFeatures.TUBE_WORM)
.addMobSpawn(EntityType.ENDERMAN, 50, 1, 4)); .addMobSpawn(EntityType.ENDERMAN, 50, 1, 4));
} }
} }

View file

@ -20,13 +20,13 @@ public class WallPlantFeature extends WallScatterFeature {
@Override @Override
public boolean canGenerate(StructureWorldAccess world, Random random, BlockPos pos, Direction dir) { public boolean canGenerate(StructureWorldAccess world, Random random, BlockPos pos, Direction dir) {
BlockPos blockPos = pos.offset(dir.getOpposite()); BlockState state = block.getDefaultState().with(BlockWallPlant.FACING, dir);
BlockState blockState = world.getBlockState(blockPos); return block.canPlaceAt(state, world, pos);
return ((BlockWallPlant) block).isSupport(world, blockPos, blockState, dir);
} }
@Override @Override
public void generate(StructureWorldAccess world, Random random, BlockPos pos, Direction dir) { 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);
} }
} }

View file

@ -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 }
]
}
}

View file

@ -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" }
}
}
]
}

View file

@ -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" }
}
}
]
}

View file

@ -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" }
}
}
]
}

View file

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "betterend:item/tube_worm"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB