diff --git a/src/main/java/systems/alexander/bellsandwhistles/block/ModBlocks.java b/src/main/java/systems/alexander/bellsandwhistles/block/ModBlocks.java index 5f34803..04978c6 100644 --- a/src/main/java/systems/alexander/bellsandwhistles/block/ModBlocks.java +++ b/src/main/java/systems/alexander/bellsandwhistles/block/ModBlocks.java @@ -1,5 +1,8 @@ package systems.alexander.bellsandwhistles.block; +import com.simibubi.create.content.decoration.TrainTrapdoorBlock; +import com.simibubi.create.content.decoration.encasing.CasingBlock; +import com.simibubi.create.content.decoration.slidingDoor.SlidingDoorBlock; import com.tterrag.registrate.builders.BlockBuilder; import net.minecraft.world.item.CreativeModeTab; import systems.alexander.bellsandwhistles.BellsAndWhistles; @@ -29,7 +32,6 @@ public static NonNullFunction, BlockBuil } public static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, BellsAndWhistles.MOD_ID); - public static final RegistryObject STATION_PLATFORM = registerBlock("station_platform", () -> new PlatformBlock(BlockBehaviour.Properties.copy(Blocks.SMOOTH_STONE).sound(SoundType.STONE).noOcclusion())); public static final RegistryObject ANDESITE_GRAB_RAILS = registerBlock("andesite_grab_rails", @@ -46,6 +48,24 @@ public static NonNullFunction, BlockBuil public static final RegistryObject COPPER_BOGIE_STEPS = registerBlock("copper_bogie_steps", () -> new MetalBogieStepsBlock(BlockBehaviour.Properties.copy(Blocks.LADDER).sound(SoundType.METAL).noOcclusion())); + public static final RegistryObject METRO_CASING = registerBlock("metro_casing", + () -> new CasingBlock(BlockBehaviour.Properties.copy(Blocks.MOSSY_COBBLESTONE).sound(SoundType.METAL), true)); + + public static final RegistryObject CORRUGATED_METRO_CASING = registerBlock("corrugated_metro_casing", + () -> new CasingBlock(BlockBehaviour.Properties.copy(Blocks.MOSSY_COBBLESTONE).sound(SoundType.METAL), true)); + public static final RegistryObject METRO_DOOR = registerBlock("metro_door", + () -> new SlidingDoorBlock(BlockBehaviour.Properties.copy(Blocks.MOSSY_COBBLESTONE).sound(SoundType.METAL).noOcclusion(), true)); + + public static final RegistryObject METRO_TRAPDOOR = registerBlock("metro_trapdoor", + () -> new TrainTrapdoorBlock(BlockBehaviour.Properties.copy(Blocks.MOSSY_COBBLESTONE).sound(SoundType.METAL).noOcclusion())); + + public static final RegistryObject METRO_PANEL = registerBlock("metro_panel", + () -> new TrainTrapdoorBlock(BlockBehaviour.Properties.copy(Blocks.MOSSY_COBBLESTONE).sound(SoundType.METAL).noOcclusion())); + + public static final RegistryObject CORRUGATED_METRO_PANEL = registerBlock("corrugated_metro_panel", + () -> new TrainTrapdoorBlock(BlockBehaviour.Properties.copy(Blocks.MOSSY_COBBLESTONE).sound(SoundType.METAL).noOcclusion())); + + public static final RegistryObject METAL_PILOT = registerBlock("metal_pilot", () -> new PilotBlock(BlockBehaviour.Properties.copy(Blocks.IRON_BLOCK).noOcclusion())); public static final RegistryObject ANDESITE_PILOT = registerBlock("andesite_pilot", diff --git a/src/main/java/systems/alexander/bellsandwhistles/block/custom/PanelBlock.java b/src/main/java/systems/alexander/bellsandwhistles/block/custom/PanelBlock.java new file mode 100644 index 0000000..acb5699 --- /dev/null +++ b/src/main/java/systems/alexander/bellsandwhistles/block/custom/PanelBlock.java @@ -0,0 +1,137 @@ +package systems.alexander.bellsandwhistles.block.custom; + +import com.simibubi.create.AllBlocks; +import com.simibubi.create.content.decoration.copycat.CopycatBlockEntity; +import com.simibubi.create.content.decoration.copycat.CopycatPanelBlock; +import com.simibubi.create.content.decoration.copycat.CopycatSpecialCases; +import com.simibubi.create.foundation.placement.IPlacementHelper; +import com.simibubi.create.foundation.placement.PlacementHelpers; +import com.simibubi.create.foundation.placement.PlacementOffset; +import net.minecraft.MethodsReturnNonnullByDefault; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.Mirror; +import net.minecraft.world.level.block.Rotation; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.DirectionProperty; +import net.minecraft.world.phys.BlockHitResult; + +import java.util.List; +import java.util.function.Predicate; + +public class PanelBlock extends Block { + public static final DirectionProperty FACING = BlockStateProperties.FACING; + + private static final int placementHelperId = PlacementHelpers.register(new PlacementHelper()); + + public PanelBlock(Properties pProperties) { + super(pProperties); + registerDefaultState(defaultBlockState().setValue(FACING, Direction.UP)); + } + public static BlockState getMaterial(BlockGetter reader, BlockPos targetPos) { + return Blocks.STONE.defaultBlockState(); + } + public boolean canFaceBeOccluded(BlockState state, Direction face) { + return state.getValue(FACING) + .getOpposite() == face; + } + public boolean shouldFaceAlwaysRender(BlockState state, Direction face) { + return canFaceBeOccluded(state, face.getOpposite()); + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext pContext) { + BlockState stateForPlacement = super.getStateForPlacement(pContext); + return stateForPlacement.setValue(FACING, pContext.getNearestLookingDirection() + .getOpposite()); + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder pBuilder) { + super.createBlockStateDefinition(pBuilder.add(FACING)); + } + + @Override + public boolean supportsExternalFaceHiding(BlockState state) { + return true; + } + + @Override + public boolean hidesNeighborFace(BlockGetter level, BlockPos pos, BlockState state, BlockState neighborState, + Direction dir) { + if (state.is(this) == neighborState.is(this)) { + if (CopycatSpecialCases.isBarsMaterial(getMaterial(level, pos)) + && CopycatSpecialCases.isBarsMaterial(getMaterial(level, pos.relative(dir)))) + return state.getValue(FACING) == neighborState.getValue(FACING); + if (getMaterial(level, pos).skipRendering(getMaterial(level, pos.relative(dir)), dir.getOpposite())) + return isOccluded(state, neighborState, dir.getOpposite()); + } + + return state.getValue(FACING) == dir.getOpposite() + && getMaterial(level, pos).skipRendering(neighborState, dir.getOpposite()); + } + + + public static boolean isOccluded(BlockState state, BlockState other, Direction pDirection) { + Direction facing = state.getValue(FACING); + if (facing.getOpposite() == other.getValue(FACING) && pDirection == facing) + return true; + if (other.getValue(FACING) != facing) + return false; + return pDirection.getAxis() != facing.getAxis(); + } + + @Override + public BlockState rotate(BlockState state, Rotation rot) { + return state.setValue(FACING, rot.rotate(state.getValue(FACING))); + } + + @Override + @SuppressWarnings("deprecation") + public BlockState mirror(BlockState state, Mirror mirrorIn) { + return state.rotate(mirrorIn.getRotation(state.getValue(FACING))); + } + + + @MethodsReturnNonnullByDefault + private static class PlacementHelper implements IPlacementHelper { + @Override + public Predicate getItemPredicate() { + return AllBlocks.COPYCAT_PANEL::isIn; + } + + @Override + public Predicate getStatePredicate() { + return AllBlocks.COPYCAT_PANEL::has; + } + + @Override + public PlacementOffset getOffset(Player player, Level world, BlockState state, BlockPos pos, + BlockHitResult ray) { + List directions = IPlacementHelper.orderedByDistanceExceptAxis(pos, ray.getLocation(), + state.getValue(FACING) + .getAxis(), + dir -> world.getBlockState(pos.relative(dir)) + .getMaterial() + .isReplaceable()); + + if (directions.isEmpty()) + return PlacementOffset.fail(); + else { + return PlacementOffset.success(pos.relative(directions.get(0)), + s -> s.setValue(FACING, state.getValue(FACING))); + } + } + } + + +} diff --git a/src/main/resources/assets/bellsandwhistles/blockstates/folding_metro_door.json b/src/main/resources/assets/bellsandwhistles/blockstates/folding_metro_door.json new file mode 100644 index 0000000..6fec985 --- /dev/null +++ b/src/main/resources/assets/bellsandwhistles/blockstates/folding_metro_door.json @@ -0,0 +1,244 @@ +{ + "variants": { + "facing=east,half=lower,hinge=left,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom" + }, + "facing=east,half=lower,hinge=left,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom" + }, + "facing=east,half=lower,hinge=left,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom", + "y": 90 + }, + "facing=east,half=lower,hinge=left,open=trues,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom", + "y": 90 + }, + "facing=east,half=lower,hinge=right,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom" + }, + "facing=east,half=lower,hinge=right,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom" + }, + "facing=east,half=lower,hinge=right,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom", + "y": 270 + }, + "facing=east,half=lower,hinge=right,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom", + "y": 270 + }, + "facing=east,half=upper,hinge=left,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top" + }, + "facing=east,half=upper,hinge=left,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top" + }, + "facing=east,half=upper,hinge=left,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top", + "y": 90 + }, + "facing=east,half=upper,hinge=left,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top", + "y": 90 + }, + "facing=east,half=upper,hinge=right,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top" + }, + "facing=east,half=upper,hinge=right,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top" + }, + "facing=east,half=upper,hinge=right,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top", + "y": 270 + }, + "facing=east,half=upper,hinge=right,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom" + }, + "facing=north,half=lower,hinge=left,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom" + }, + "facing=north,half=lower,hinge=right,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom", + "y": 180 + }, + "facing=north,half=lower,hinge=right,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom", + "y": 180 + }, + "facing=north,half=upper,hinge=left,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top" + }, + "facing=north,half=upper,hinge=left,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top" + }, + "facing=north,half=upper,hinge=right,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top", + "y": 180 + }, + "facing=north,half=upper,hinge=right,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom", + "y": 180 + }, + "facing=south,half=lower,hinge=right,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom" + }, + "facing=south,half=lower,hinge=right,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom" + }, + "facing=south,half=upper,hinge=left,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top", + "y": 180 + }, + "facing=south,half=upper,hinge=left,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top", + "y": 180 + }, + "facing=south,half=upper,hinge=right,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top" + }, + "facing=south,half=upper,hinge=right,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top" + }, + "facing=west,half=lower,hinge=left,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom", + "y": 270 + }, + "facing=west,half=lower,hinge=left,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom", + "y": 270 + }, + "facing=west,half=lower,hinge=right,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom", + "y": 90 + }, + "facing=west,half=lower,hinge=right,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_bottom", + "y": 90 + }, + "facing=west,half=upper,hinge=left,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top", + "y": 270 + }, + "facing=west,half=upper,hinge=left,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top", + "y": 270 + }, + "facing=west,half=upper,hinge=right,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top", + "y": 90 + }, + "facing=west,half=upper,hinge=right,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/folding_metro_door_top", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/bellsandwhistles/blockstates/metro_trapdoor.json b/src/main/resources/assets/bellsandwhistles/blockstates/metro_trapdoor.json new file mode 100644 index 0000000..a2b9a81 --- /dev/null +++ b/src/main/resources/assets/bellsandwhistles/blockstates/metro_trapdoor.json @@ -0,0 +1,66 @@ +{ + "variants": { + "facing=east,half=bottom,open=false": { + "model": "bellsandwhistles:block/metro/trapdoor/block_bottom", + "uvlock": true + }, + "facing=east,half=bottom,open=true": { + "model": "bellsandwhistles:block/metro/trapdoor/block_open", + "y": 90 + }, + "facing=east,half=top,open=false": { + "model": "bellsandwhistles:block/metro/trapdoor/block_top", + "uvlock": true + }, + "facing=east,half=top,open=true": { + "model": "bellsandwhistles:block/metro/trapdoor/block_open", + "y": 90 + }, + "facing=north,half=bottom,open=false": { + "model": "bellsandwhistles:block/metro/trapdoor/block_bottom", + "uvlock": true + }, + "facing=north,half=bottom,open=true": { + "model": "bellsandwhistles:block/metro/trapdoor/block_open" + }, + "facing=north,half=top,open=false": { + "model": "bellsandwhistles:block/metro/trapdoor/block_top", + "uvlock": true + }, + "facing=north,half=top,open=true": { + "model": "bellsandwhistles:block/metro/trapdoor/block_open" + }, + "facing=south,half=bottom,open=false": { + "model": "bellsandwhistles:block/metro/trapdoor/block_bottom", + "uvlock": true + }, + "facing=south,half=bottom,open=true": { + "model": "bellsandwhistles:block/metro/trapdoor/block_open", + "y": 180 + }, + "facing=south,half=top,open=false": { + "model": "bellsandwhistles:block/metro/trapdoor/block_top", + "uvlock": true + }, + "facing=south,half=top,open=true": { + "model": "bellsandwhistles:block/metro/trapdoor/block_open", + "y": 180 + }, + "facing=west,half=bottom,open=false": { + "model": "bellsandwhistles:block/metro/trapdoor/block_bottom", + "uvlock": true + }, + "facing=west,half=bottom,open=true": { + "model": "bellsandwhistles:block/metro/trapdoor/block_open", + "y": 270 + }, + "facing=west,half=top,open=false": { + "model": "bellsandwhistles:block/metro/trapdoor/block_top", + "uvlock": true + }, + "facing=west,half=top,open=true": { + "model": "bellsandwhistles:block/metro/trapdoor/block_open", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/bellsandwhistles/blockstates/sliding_metro_door.json b/src/main/resources/assets/bellsandwhistles/blockstates/sliding_metro_door.json new file mode 100644 index 0000000..e006b7b --- /dev/null +++ b/src/main/resources/assets/bellsandwhistles/blockstates/sliding_metro_door.json @@ -0,0 +1,244 @@ +{ + "variants": { + "facing=east,half=lower,hinge=left,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom" + }, + "facing=east,half=lower,hinge=left,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom" + }, + "facing=east,half=lower,hinge=left,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom", + "y": 90 + }, + "facing=east,half=lower,hinge=left,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom", + "y": 90 + }, + "facing=east,half=lower,hinge=right,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom" + }, + "facing=east,half=lower,hinge=right,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom" + }, + "facing=east,half=lower,hinge=right,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom", + "y": 270 + }, + "facing=east,half=lower,hinge=right,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom", + "y": 270 + }, + "facing=east,half=upper,hinge=left,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top" + }, + "facing=east,half=upper,hinge=left,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top" + }, + "facing=east,half=upper,hinge=left,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top", + "y": 90 + }, + "facing=east,half=upper,hinge=left,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top", + "y": 90 + }, + "facing=east,half=upper,hinge=right,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top" + }, + "facing=east,half=upper,hinge=right,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top" + }, + "facing=east,half=upper,hinge=right,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top", + "y": 270 + }, + "facing=east,half=upper,hinge=right,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom" + }, + "facing=north,half=lower,hinge=left,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom" + }, + "facing=north,half=lower,hinge=right,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom", + "y": 180 + }, + "facing=north,half=lower,hinge=right,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom", + "y": 180 + }, + "facing=north,half=upper,hinge=left,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top" + }, + "facing=north,half=upper,hinge=left,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top" + }, + "facing=north,half=upper,hinge=right,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top", + "y": 180 + }, + "facing=north,half=upper,hinge=right,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom", + "y": 180 + }, + "facing=south,half=lower,hinge=right,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom" + }, + "facing=south,half=lower,hinge=right,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom" + }, + "facing=south,half=upper,hinge=left,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top", + "y": 180 + }, + "facing=south,half=upper,hinge=left,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top", + "y": 180 + }, + "facing=south,half=upper,hinge=right,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top" + }, + "facing=south,half=upper,hinge=right,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top" + }, + "facing=west,half=lower,hinge=left,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom", + "y": 270 + }, + "facing=west,half=lower,hinge=left,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom", + "y": 270 + }, + "facing=west,half=lower,hinge=right,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom", + "y": 90 + }, + "facing=west,half=lower,hinge=right,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_bottom", + "y": 90 + }, + "facing=west,half=upper,hinge=left,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top", + "y": 270 + }, + "facing=west,half=upper,hinge=left,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top", + "y": 270 + }, + "facing=west,half=upper,hinge=right,open=false,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=false,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=true,visible=false": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top", + "y": 90 + }, + "facing=west,half=upper,hinge=right,open=true,visible=true": { + "model": "bellsandwhistles:block/metro/door/sliding_metro_door_top", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/bellsandwhistles/models/block/metro/corrugated_metro_casing.json b/src/main/resources/assets/bellsandwhistles/models/block/metro/corrugated_metro_casing.json new file mode 100644 index 0000000..fcf502d --- /dev/null +++ b/src/main/resources/assets/bellsandwhistles/models/block/metro/corrugated_metro_casing.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "bellsandwhistles:metro/corrugated_metro" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/bellsandwhistles/models/block/metro/door/fold_left.json b/src/main/resources/assets/bellsandwhistles/models/block/metro/door/fold_left.json new file mode 100644 index 0000000..9f8156f --- /dev/null +++ b/src/main/resources/assets/bellsandwhistles/models/block/metro/door/fold_left.json @@ -0,0 +1,34 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "bellsandwhistles:block/metro/metro_door_side", + "2": "bellsandwhistles:block/metro/folding_metro_door_top", + "3": "bellsandwhistles:block/metro/folding_metro_door_bottom", + "particle": "bellsandwhistles:block/metro/metro" + }, + "elements": [ + { + "from": [0, 16, 0], + "to": [3, 32, 8], + "faces": { + "north": {"uv": [0, 4, 16, 7], "rotation": 90, "texture": "#0"}, + "east": {"uv": [8, 0, 16, 16], "texture": "#2"}, + "south": {"uv": [0, 4, 16, 7], "rotation": 90, "texture": "#0"}, + "west": {"uv": [0, 0, 8, 16], "texture": "#2"}, + "up": {"uv": [0, 0, 8, 3], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [0, 0, 0], + "to": [3, 16, 8], + "faces": { + "north": {"uv": [16, 4, 0, 7], "rotation": 90, "texture": "#0"}, + "east": {"uv": [8, 0, 16, 16], "texture": "#3"}, + "south": {"uv": [16, 4, 0, 7], "rotation": 90, "texture": "#0"}, + "west": {"uv": [0, 0, 8, 16], "texture": "#3"}, + "down": {"uv": [0, 8, 8, 11], "rotation": 270, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/bellsandwhistles/models/block/metro/door/fold_right.json b/src/main/resources/assets/bellsandwhistles/models/block/metro/door/fold_right.json new file mode 100644 index 0000000..0d9f7e1 --- /dev/null +++ b/src/main/resources/assets/bellsandwhistles/models/block/metro/door/fold_right.json @@ -0,0 +1,34 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "bellsandwhistles:block/metro/metro_door_side", + "2": "bellsandwhistles:block/metro/folding_metro_door_top", + "3": "bellsandwhistles:block/metro/folding_metro_door_bottom", + "particle": "bellsandwhistles:block/metro/metro" + }, + "elements": [ + { + "from": [0, 16, 0], + "to": [3, 32, 8], + "faces": { + "north": {"uv": [0, 4, 16, 7], "rotation": 90, "texture": "#0"}, + "east": {"uv": [0, 0, 8, 16], "texture": "#2"}, + "south": {"uv": [0, 4, 16, 7], "rotation": 90, "texture": "#0"}, + "west": {"uv": [8, 0, 16, 16], "texture": "#2"}, + "up": {"uv": [8, 0, 16, 3], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [0, 0, 0], + "to": [3, 16, 8], + "faces": { + "north": {"uv": [16, 4, 0, 7], "rotation": 90, "texture": "#0"}, + "east": {"uv": [0, 0, 8, 16], "texture": "#3"}, + "south": {"uv": [16, 4, 0, 7], "rotation": 90, "texture": "#0"}, + "west": {"uv": [8, 0, 16, 16], "texture": "#3"}, + "down": {"uv": [8, 8, 16, 11], "rotation": 270, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/bellsandwhistles/models/block/metro/door/folding_metro_door_bottom.json b/src/main/resources/assets/bellsandwhistles/models/block/metro/door/folding_metro_door_bottom.json new file mode 100644 index 0000000..8c44d6c --- /dev/null +++ b/src/main/resources/assets/bellsandwhistles/models/block/metro/door/folding_metro_door_bottom.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "bellsandwhistles:block/metro/metro_door_side", + "2": "bellsandwhistles:block/metro/folding_metro_door_bottom", + "particle": "bellsandwhistles:block/metro/metro" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [3, 16, 16], + "faces": { + "north": {"uv": [0, 12, 16, 15], "rotation": 270, "texture": "#0"}, + "east": {"uv": [0, 0, 16, 16], "texture": "#2"}, + "south": {"uv": [0, 12, 16, 15], "rotation": 270, "texture": "#0"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#2"}, + "down": {"uv": [0, 8, 16, 11], "rotation": 90, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/bellsandwhistles/models/block/metro/door/folding_metro_door_top.json b/src/main/resources/assets/bellsandwhistles/models/block/metro/door/folding_metro_door_top.json new file mode 100644 index 0000000..4b0a199 --- /dev/null +++ b/src/main/resources/assets/bellsandwhistles/models/block/metro/door/folding_metro_door_top.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "bellsandwhistles:block/metro/metro_door_side", + "2": "bellsandwhistles:block/metro/folding_metro_door_top", + "particle": "bellsandwhistles:block/metro/metro" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [3, 16, 16], + "faces": { + "north": {"uv": [0, 4, 16, 7], "rotation": 90, "texture": "#0"}, + "east": {"uv": [0, 0, 16, 16], "texture": "#2"}, + "south": {"uv": [0, 4, 16, 7], "rotation": 90, "texture": "#0"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#2"}, + "up": {"uv": [0, 0, 16, 3], "rotation": 90, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/bellsandwhistles/models/block/metro/door/sliding_metro_door_bottom.json b/src/main/resources/assets/bellsandwhistles/models/block/metro/door/sliding_metro_door_bottom.json new file mode 100644 index 0000000..22c8c8e --- /dev/null +++ b/src/main/resources/assets/bellsandwhistles/models/block/metro/door/sliding_metro_door_bottom.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "bellsandwhistles:block/metro/metro_door_side", + "2": "bellsandwhistles:block/metro/sliding_metro_door_bottom", + "particle": "bellsandwhistles:block/metro/metro" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [3, 16, 16], + "faces": { + "north": {"uv": [0, 12, 16, 15], "rotation": 270, "texture": "#0"}, + "east": {"uv": [0, 0, 16, 16], "texture": "#2"}, + "south": {"uv": [0, 12, 16, 15], "rotation": 270, "texture": "#0"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#2"}, + "down": {"uv": [0, 8, 16, 11], "rotation": 90, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/bellsandwhistles/models/block/metro/door/sliding_metro_door_top.json b/src/main/resources/assets/bellsandwhistles/models/block/metro/door/sliding_metro_door_top.json new file mode 100644 index 0000000..ea95538 --- /dev/null +++ b/src/main/resources/assets/bellsandwhistles/models/block/metro/door/sliding_metro_door_top.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "bellsandwhistles:block/metro/metro_door_side", + "2": "bellsandwhistles:block/metro/sliding_metro_door_top", + "particle": "bellsandwhistles:block/metro/metro" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [3, 16, 16], + "faces": { + "north": {"uv": [0, 4, 16, 7], "rotation": 90, "texture": "#0"}, + "east": {"uv": [0, 0, 16, 16], "texture": "#2"}, + "south": {"uv": [0, 4, 16, 7], "rotation": 90, "texture": "#0"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#2"}, + "up": {"uv": [0, 0, 16, 3], "rotation": 90, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/bellsandwhistles/models/block/metro/metro_casing.json b/src/main/resources/assets/bellsandwhistles/models/block/metro/metro_casing.json new file mode 100644 index 0000000..188e41d --- /dev/null +++ b/src/main/resources/assets/bellsandwhistles/models/block/metro/metro_casing.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "bellsandwhistles:metro/metro" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/bellsandwhistles/models/block/metro/trapdoor/block_bottom.json b/src/main/resources/assets/bellsandwhistles/models/block/metro/trapdoor/block_bottom.json new file mode 100644 index 0000000..06a7dc4 --- /dev/null +++ b/src/main/resources/assets/bellsandwhistles/models/block/metro/trapdoor/block_bottom.json @@ -0,0 +1,23 @@ +{ + "parent": "block/block", + "credit": "Made with Blockbench", + "textures": { + "0": "bellsandwhistles:block/metro/metro_door_side", + "1": "bellsandwhistles:block/metro/metro_trapdoor", + "particle": "bellsandwhistles:block/metro/metro_trapdoor" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [16, 3, 16], + "faces": { + "north": {"uv": [0, 0, 16, 3], "texture": "#0"}, + "east": {"uv": [0, 0, 16, 3], "texture": "#0"}, + "south": {"uv": [0, 0, 16, 3], "texture": "#0"}, + "west": {"uv": [0, 0, 16, 3], "texture": "#0"}, + "up": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#1"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#1"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/bellsandwhistles/models/block/metro/trapdoor/block_open.json b/src/main/resources/assets/bellsandwhistles/models/block/metro/trapdoor/block_open.json new file mode 100644 index 0000000..e3fd056 --- /dev/null +++ b/src/main/resources/assets/bellsandwhistles/models/block/metro/trapdoor/block_open.json @@ -0,0 +1,23 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "bellsandwhistles:block/metro/metro_door_side", + "1": "bellsandwhistles:block/metro/metro_trapdoor", + "particle": "bellsandwhistles:block/metro/metro_trapdoor" + }, + "elements": [ + { + "from": [0, 0, 13], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#1"}, + "east": {"uv": [0, 0, 16, 3], "rotation": 90, "texture": "#0"}, + "south": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#1"}, + "west": {"uv": [0, 0, 16, 3], "rotation": 270, "texture": "#0"}, + "up": {"uv": [0, 0, 16, 3], "texture": "#0"}, + "down": {"uv": [0, 0, 16, 3], "rotation": 180, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/bellsandwhistles/models/block/metro/trapdoor/block_top.json b/src/main/resources/assets/bellsandwhistles/models/block/metro/trapdoor/block_top.json new file mode 100644 index 0000000..2512bfa --- /dev/null +++ b/src/main/resources/assets/bellsandwhistles/models/block/metro/trapdoor/block_top.json @@ -0,0 +1,23 @@ +{ + "parent": "block/block", + "credit": "Made with Blockbench", + "textures": { + "0": "bellsandwhistles:block/metro/metro_door_side", + "1": "bellsandwhistles:block/metro/metro_trapdoor", + "particle": "bellsandwhistles:block/metro/metro_trapdoor" + }, + "elements": [ + { + "from": [0, 13, 0], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [0, 0, 16, 3], "texture": "#0"}, + "east": {"uv": [0, 0, 16, 3], "texture": "#0"}, + "south": {"uv": [0, 0, 16, 3], "texture": "#0"}, + "west": {"uv": [0, 0, 16, 3], "texture": "#0"}, + "up": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#1"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#1"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/bellsandwhistles/textures/block/metro/corrugated_metro.png b/src/main/resources/assets/bellsandwhistles/textures/block/metro/corrugated_metro.png new file mode 100644 index 0000000..433cfdb Binary files /dev/null and b/src/main/resources/assets/bellsandwhistles/textures/block/metro/corrugated_metro.png differ diff --git a/src/main/resources/assets/bellsandwhistles/textures/block/metro/door/folding_metro_door_all.png b/src/main/resources/assets/bellsandwhistles/textures/block/metro/door/folding_metro_door_all.png new file mode 100644 index 0000000..a42481f Binary files /dev/null and b/src/main/resources/assets/bellsandwhistles/textures/block/metro/door/folding_metro_door_all.png differ diff --git a/src/main/resources/assets/bellsandwhistles/textures/block/metro/door/folding_metro_door_bottom.png b/src/main/resources/assets/bellsandwhistles/textures/block/metro/door/folding_metro_door_bottom.png new file mode 100644 index 0000000..76e1eeb Binary files /dev/null and b/src/main/resources/assets/bellsandwhistles/textures/block/metro/door/folding_metro_door_bottom.png differ diff --git a/src/main/resources/assets/bellsandwhistles/textures/block/metro/door/folding_metro_door_top.png b/src/main/resources/assets/bellsandwhistles/textures/block/metro/door/folding_metro_door_top.png new file mode 100644 index 0000000..45fd37b Binary files /dev/null and b/src/main/resources/assets/bellsandwhistles/textures/block/metro/door/folding_metro_door_top.png differ diff --git a/src/main/resources/assets/bellsandwhistles/textures/block/metro/door/metro_door_side.png b/src/main/resources/assets/bellsandwhistles/textures/block/metro/door/metro_door_side.png new file mode 100644 index 0000000..f1b6a6b Binary files /dev/null and b/src/main/resources/assets/bellsandwhistles/textures/block/metro/door/metro_door_side.png differ diff --git a/src/main/resources/assets/bellsandwhistles/textures/block/metro/door/sliding_metro_door_all.png b/src/main/resources/assets/bellsandwhistles/textures/block/metro/door/sliding_metro_door_all.png new file mode 100644 index 0000000..c71cb21 Binary files /dev/null and b/src/main/resources/assets/bellsandwhistles/textures/block/metro/door/sliding_metro_door_all.png differ diff --git a/src/main/resources/assets/bellsandwhistles/textures/block/metro/door/sliding_metro_door_bottom.png b/src/main/resources/assets/bellsandwhistles/textures/block/metro/door/sliding_metro_door_bottom.png new file mode 100644 index 0000000..9290246 Binary files /dev/null and b/src/main/resources/assets/bellsandwhistles/textures/block/metro/door/sliding_metro_door_bottom.png differ diff --git a/src/main/resources/assets/bellsandwhistles/textures/block/metro/door/sliding_metro_door_top.png b/src/main/resources/assets/bellsandwhistles/textures/block/metro/door/sliding_metro_door_top.png new file mode 100644 index 0000000..1d451eb Binary files /dev/null and b/src/main/resources/assets/bellsandwhistles/textures/block/metro/door/sliding_metro_door_top.png differ diff --git a/src/main/resources/assets/bellsandwhistles/textures/block/metro/metro.png b/src/main/resources/assets/bellsandwhistles/textures/block/metro/metro.png new file mode 100644 index 0000000..7ac7b0e Binary files /dev/null and b/src/main/resources/assets/bellsandwhistles/textures/block/metro/metro.png differ diff --git a/src/main/resources/assets/bellsandwhistles/textures/block/metro/metro_trapdoor.png b/src/main/resources/assets/bellsandwhistles/textures/block/metro/metro_trapdoor.png new file mode 100644 index 0000000..535b53d Binary files /dev/null and b/src/main/resources/assets/bellsandwhistles/textures/block/metro/metro_trapdoor.png differ