diff --git a/src/main/java/net/montoyo/wd/WebDisplays.java b/src/main/java/net/montoyo/wd/WebDisplays.java index 2246e1e..e77d8cc 100644 --- a/src/main/java/net/montoyo/wd/WebDisplays.java +++ b/src/main/java/net/montoyo/wd/WebDisplays.java @@ -20,6 +20,8 @@ import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraftforge.client.event.ClientChatEvent; @@ -39,6 +41,7 @@ import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.network.PacketDistributor; +import net.montoyo.wd.block.WDBlockContainer; import net.montoyo.wd.client.ClientProxy; import net.montoyo.wd.config.ModConfig; import net.montoyo.wd.core.*; @@ -149,9 +152,12 @@ public class WebDisplays { IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus(); bus.addListener(Messages::registryNetworkPackets); - ItemInit.init(bus); BlockInit.init(bus); + ItemInit.init(bus); + ItemInit.registerUpgrade(); + ItemInit.registerComponents(); TileInit.init(bus); + PROXY.preInit(); MinecraftForge.EVENT_BUS.register(this); diff --git a/src/main/java/net/montoyo/wd/block/BlockKeyboardRight.java b/src/main/java/net/montoyo/wd/block/BlockKeyboardRight.java index 909e173..c06a958 100644 --- a/src/main/java/net/montoyo/wd/block/BlockKeyboardRight.java +++ b/src/main/java/net/montoyo/wd/block/BlockKeyboardRight.java @@ -4,12 +4,16 @@ package net.montoyo.wd.block; +import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.core.Vec3i; +import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.Entity; 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; @@ -18,33 +22,41 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.entity.BlockEntity; 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.level.block.state.properties.IntegerProperty; import net.minecraft.world.level.material.FluidState; import net.minecraft.world.level.material.Material; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; import net.montoyo.wd.core.DefaultPeripheral; import net.montoyo.wd.core.IPeripheral; import net.montoyo.wd.entity.TileEntityKeyboard; +import net.montoyo.wd.init.BlockInit; import net.montoyo.wd.item.ItemLinker; import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.Vector3i; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.lwjgl.system.CallbackI; + +import java.util.List; +import java.util.Objects; public class BlockKeyboardRight extends Block implements IPeripheral { - public static final DirectionProperty facing = DirectionProperty.create("facing", Direction.Plane.HORIZONTAL); + public static final DirectionProperty facing = BlockStateProperties.HORIZONTAL_FACING; public static final VoxelShape KEYBOARD_AABB = Shapes.box(0.0, 0.0, 0.0, 1.0, 1.0 / 16.0, 1.0); public BlockKeyboardRight() { super(Properties.of(Material.STONE) .strength(1.5f, 10.f)); - //("keyboard") + //("keyboard") //fullBlock = false; } @@ -64,13 +76,13 @@ public class BlockKeyboardRight extends Block implements IPeripheral { } private TileEntityKeyboard getTileEntity(Level world, BlockPos pos) { - for(Direction nf: Direction.Plane.HORIZONTAL) { + for (Direction nf : Direction.Plane.HORIZONTAL) { BlockPos np = pos.above(nf.getNormal().getX()); //TODO is X correct? BlockState ns = world.getBlockState(np); - if(ns.getBlock() instanceof BlockPeripheral && ns.getValue(BlockPeripheral.type) == DefaultPeripheral.KEYBOARD) { + if (ns.getBlock() instanceof BlockPeripheral && ns.getValue(BlockPeripheral.type) == DefaultPeripheral.KEYBOARD) { BlockEntity te = world.getBlockEntity(np); - if(te != null && te instanceof TileEntityKeyboard) + if (te != null && te instanceof TileEntityKeyboard) return (TileEntityKeyboard) te; break; @@ -87,16 +99,16 @@ public class BlockKeyboardRight extends Block implements IPeripheral { } public static boolean checkNeighborhood(Level world, BlockPos bp, BlockPos ignore) { - for(Direction neighbor: Direction.Plane.HORIZONTAL) { + for (Direction neighbor : Direction.Plane.HORIZONTAL) { BlockPos np = bp.above(neighbor.getNormal().getX()); //TODO is X correct? - if(ignore == null || !np.equals(ignore)) { + if (ignore == null || !np.equals(ignore)) { BlockState state = world.getBlockState(np); - if(state.getBlock() instanceof BlockPeripheral) { - if(state.getValue(BlockPeripheral.type) == DefaultPeripheral.KEYBOARD) + if (state.getBlock() instanceof BlockPeripheral) { + if (state.getValue(BlockPeripheral.type) == DefaultPeripheral.KEYBOARD) return false; - } else if(state.getBlock() instanceof BlockKeyboardRight) + } else if (state.getBlock() instanceof BlockKeyboardRight) return false; } } @@ -105,11 +117,11 @@ public class BlockKeyboardRight extends Block implements IPeripheral { } public void removeLeftPiece(Level world, BlockPos pos, boolean dropItem) { - for(Direction nf: Direction.Plane.HORIZONTAL) { + for (Direction nf : Direction.Plane.HORIZONTAL) { BlockPos np = pos.above(nf.getNormal().getX()); //TODO is X correct? BlockState ns = world.getBlockState(np); - if(ns.getBlock() instanceof BlockPeripheral && ns.getValue(BlockPeripheral.type) == DefaultPeripheral.KEYBOARD) { + if (ns.getBlock() instanceof BlockPeripheral && ns.getValue(BlockPeripheral.type) == DefaultPeripheral.KEYBOARD) { /* if(dropItem) if(world instanceof ServerLevel serverWorld) { // ns.getBlock().getDrops(ns, serverWorld, np,0); @@ -125,7 +137,7 @@ public class BlockKeyboardRight extends Block implements IPeripheral { if (world.isClientSide()) return; - if(neighbor.getX() == pos.getX() && neighbor.getY() == pos.getY() - 1 && neighbor.getZ() == pos.getZ()) { + if (neighbor.getX() == pos.getX() && neighbor.getY() == pos.getY() - 1 && neighbor.getZ() == pos.getZ()) { removeLeftPiece(world, pos, true); world.setBlock(pos, Blocks.AIR.defaultBlockState(), Block.UPDATE_ALL_IMMEDIATE); } @@ -133,7 +145,7 @@ public class BlockKeyboardRight extends Block implements IPeripheral { @Override public boolean onDestroyedByPlayer(BlockState state, Level world, BlockPos pos, Player ply, boolean willHarvest, FluidState fluid) { - if(!world.isClientSide) + if (!world.isClientSide) removeLeftPiece(world, pos, !ply.isCreative()); return super.onDestroyedByPlayer(state, world, pos, ply, willHarvest, fluid); @@ -143,18 +155,46 @@ public class BlockKeyboardRight extends Block implements IPeripheral { @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { double rpos = (entity.getY() - ((double) pos.getY())) * 16.0; - if(!world.isClientSide && rpos >= 1.0 && rpos <= 2.0 && Math.random() < 0.25) { + if (!world.isClientSide && rpos >= 1.0 && rpos <= 2.0 && Math.random() < 0.25) { TileEntityKeyboard tek = getTileEntity(world, pos); - if(tek != null) + if (tek != null) tek.simulateCat(entity); } } @Override - public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { - if(player.isShiftKeyDown()) - return InteractionResult.PASS; + public boolean canBeReplaced(BlockState state, BlockPlaceContext context) { + if (!context.getItemInHand().isEmpty()) //Keyboard + return false; + + //Special checks for the keyboard + BlockPos pos = context.getClickedPos().offset(context.getHorizontalDirection().getNormal()); + if (context.getLevel().getBlockState(pos.below()) == Blocks.AIR.defaultBlockState() || !BlockKeyboardRight.checkNeighborhood(context.getLevel(), pos, null)) + return true; + + int f = (int) Math.floor(((double) (context.getPlayer().getYRot() * 4.0f / 360.0f)) + 2.5) & 3; + Vec3i dir = Direction.from2DDataValue(f).getNormal(); + BlockPos left = pos.offset(dir); + BlockPos right = pos.subtract(dir); + + if (context.getLevel().getBlockState(right) == Blocks.AIR.defaultBlockState() && !(context.getLevel().getBlockState(right.below()) == Blocks.AIR.defaultBlockState()) && BlockKeyboardRight.checkNeighborhood(context.getLevel(), right, null)) + return false; + else + return !(context.getLevel().getBlockState(left) == Blocks.AIR.defaultBlockState() && !(context.getLevel().getBlockState(left.below()) == Blocks.AIR.defaultBlockState()) && BlockKeyboardRight.checkNeighborhood(context.getLevel(), left, null)); + } + + @Override + public @NotNull InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + if (player.isShiftKeyDown()) { + ItemStack itemStack = player.getItemInHand(hand); + if (canBeReplaced(state, new BlockPlaceContext(player, hand, itemStack, hit))) { + int f = (int) Math.floor(((double) (player.getYRot() * 4.0f / 360.0f)) + 2.5) & 3; + Vec3i dir = Direction.from2DDataValue(f).getNormal(); + level.setBlock(pos.offset(dir), BlockInit.blockKeyBoard.get().defaultBlockState(), UPDATE_ALL_IMMEDIATE); + return InteractionResult.SUCCESS; + } + } if(player.getItemInHand(hand).getItem() instanceof ItemLinker) return InteractionResult.PASS; diff --git a/src/main/java/net/montoyo/wd/block/BlockPeripheral.java b/src/main/java/net/montoyo/wd/block/BlockPeripheral.java index 81cc9cb..7653530 100644 --- a/src/main/java/net/montoyo/wd/block/BlockPeripheral.java +++ b/src/main/java/net/montoyo/wd/block/BlockPeripheral.java @@ -4,15 +4,19 @@ package net.montoyo.wd.block; +import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Vec3i; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.server.players.PlayerList; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.LivingEntity; 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.Explosion; import net.minecraft.world.level.Level; @@ -29,6 +33,7 @@ import net.minecraft.world.level.block.state.properties.Property; import net.minecraft.world.level.material.Material; import net.minecraft.world.level.material.PushReaction; import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; @@ -44,7 +49,10 @@ import net.montoyo.wd.net.Messages; import net.montoyo.wd.net.client.CMessageCloseGui; import org.jetbrains.annotations.Nullable; -public class BlockPeripheral extends Block { +import java.util.List; +import java.util.Objects; + +public class BlockPeripheral extends WDBlockContainer { public static final EnumProperty type = EnumProperty.create("type", DefaultPeripheral.class); public static final DirectionProperty facing = DirectionProperty.create("facing", Direction.NORTH, Direction.EAST, Direction.SOUTH, Direction.WEST); @@ -53,19 +61,15 @@ public class BlockPeripheral extends Block { public BlockPeripheral() { super(BlockBehaviour.Properties.of(Material.STONE).strength(1.5f, 10.f)); // setName("peripheral"); - } -// @Override -// protected BlockItem createItemBlock() { -// return new ItemPeripheral(this); -// } + } @Override protected void createBlockStateDefinition(StateDefinition.Builder builder) { builder.add(properties); } -// @Nullable TODO: Fix + // @Nullable TODO: Fix // @Override // public BlockState getStateForPlacement(BlockPlaceContext context) { // Direction rot = Direction.fromYRot(placer.getYHeadRot()); diff --git a/src/main/java/net/montoyo/wd/block/WDBlockContainer.java b/src/main/java/net/montoyo/wd/block/WDBlockContainer.java index b5832ca..46f1dec 100644 --- a/src/main/java/net/montoyo/wd/block/WDBlockContainer.java +++ b/src/main/java/net/montoyo/wd/block/WDBlockContainer.java @@ -4,33 +4,33 @@ package net.montoyo.wd.block; -import net.minecraft.core.BlockPos; import net.minecraft.world.item.BlockItem; -import net.minecraft.world.level.block.entity.BaseContainerBlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraft.world.level.block.state.BlockState; -import net.montoyo.wd.item.ItemPeripheral; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; +import net.montoyo.wd.WebDisplays; -public abstract class WDBlockContainer extends BaseContainerBlockEntity { +public abstract class WDBlockContainer extends Block { - protected BlockItem itemBlock; + protected static BlockItem itemBlock; - public WDBlockContainer(BlockEntityType type, BlockPos blockPos, BlockState state) { - super(type, blockPos, state); + public WDBlockContainer(Properties arg) { + super(arg); } protected void setName(String name) { // setRegistryName(name); } - protected abstract BlockItem createItemBlock(); + protected static BlockItem createItemBlock(Block block) { + return new BlockItem(block, new Item.Properties().tab(WebDisplays.CREATIVE_TAB)); + } - public void makeItemBlock() { + public static void makeItemBlock(Block block) { if(itemBlock != null) throw new RuntimeException("WDBlockContainer.makeItemBlock() called twice!"); - itemBlock = createItemBlock(); - itemBlock.setRegistryName(getName().getString()); + itemBlock = createItemBlock(block); + // itemBlock.setRegistryName(getName().getString()); } public BlockItem getItem() { diff --git a/src/main/java/net/montoyo/wd/client/gui/GuiKeyboard.java b/src/main/java/net/montoyo/wd/client/gui/GuiKeyboard.java index dc906ee..c2dd9ed 100644 --- a/src/main/java/net/montoyo/wd/client/gui/GuiKeyboard.java +++ b/src/main/java/net/montoyo/wd/client/gui/GuiKeyboard.java @@ -70,7 +70,7 @@ public class GuiKeyboard extends WDScreen { else showWarning = !hasUserReadWarning(); - loadFrom(new ResourceLocation("webdisplays", "gui/keyboard.json")); + loadFrom(new ResourceLocation("webdisplays", "gui/kb_right.json")); if (showWarning) { int maxLabelW = 0; diff --git a/src/main/java/net/montoyo/wd/core/DefaultPeripheral.java b/src/main/java/net/montoyo/wd/core/DefaultPeripheral.java index 0b9585e..c550be5 100644 --- a/src/main/java/net/montoyo/wd/core/DefaultPeripheral.java +++ b/src/main/java/net/montoyo/wd/core/DefaultPeripheral.java @@ -8,28 +8,37 @@ import net.minecraft.util.StringRepresentable; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; -import net.montoyo.wd.entity.*; +import net.montoyo.wd.entity.TileEntityKeyboard; +import net.montoyo.wd.entity.TileEntityRCtrl; +import net.montoyo.wd.entity.TileEntityRedCtrl; +import net.montoyo.wd.entity.TileEntityServer; +import org.jetbrains.annotations.NotNull; -import java.util.function.Consumer; import java.util.function.Supplier; public enum DefaultPeripheral implements StringRepresentable { - KEYBOARD("keyboard", "Keyboard", TileEntityKeyboard::new), //WITH FACING (< 3) + KEYBOARD("keyboard", "Keyboard", TileEntityKeyboard::new, TileEntityKeyboard::getBlockFromTE), //WITH FACING (< 3) // CC_INTERFACE("ccinterface", "ComputerCraft_Interface", TileEntityCCInterface.class), // OC_INTERFACE("cointerface", "OpenComputers_Interface", TileEntityOCInterface.class), - REMOTE_CONTROLLER("remotectrl", "Remote_Controller", TileEntityRCtrl::new), //WITHOUT FACING (>= 3) - REDSTONE_CONTROLLER("redstonectrl", "Redstone_Controller", TileEntityRedCtrl::new), - SERVER("server", "Server", TileEntityServer::new); + REMOTE_CONTROLLER("remotectrl", "Remote_Controller", TileEntityRCtrl::new ,TileEntityRCtrl::getBlockFromTE), //WITHOUT FACING (>= 3) + REDSTONE_CONTROLLER("redstonectrl", "Redstone_Controller", TileEntityRedCtrl::new ,TileEntityRedCtrl::getBlockFromTE), + SERVER("server", "Server", TileEntityServer::new, TileEntityServer::getBlockFromTE); private final String name; private final String wikiName; private final BlockEntityType.BlockEntitySupplier teClass; + private final Supplier bClass; - DefaultPeripheral(String name, String wname, BlockEntityType.BlockEntitySupplier factory) { + DefaultPeripheral(String name, String wname, BlockEntityType.BlockEntitySupplier factory, Supplier supplier) { this.name = name; wikiName = wname; teClass = factory; + bClass = supplier; + } + + public Supplier getBlockClass() { + return bClass; } public static DefaultPeripheral fromMetadata(int meta) { @@ -58,7 +67,7 @@ public enum DefaultPeripheral implements StringRepresentable { } @Override - public String getSerializedName() { + public @NotNull String getSerializedName() { return "default_peripheral_" + name; } } diff --git a/src/main/java/net/montoyo/wd/entity/TileEntityKeyboard.java b/src/main/java/net/montoyo/wd/entity/TileEntityKeyboard.java index e0d512b..b0eeb5e 100644 --- a/src/main/java/net/montoyo/wd/entity/TileEntityKeyboard.java +++ b/src/main/java/net/montoyo/wd/entity/TileEntityKeyboard.java @@ -5,15 +5,21 @@ package net.montoyo.wd.entity; import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.Vec3i; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.animal.Ocelot; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.montoyo.wd.WebDisplays; +import net.montoyo.wd.block.BlockKeyboardRight; import net.montoyo.wd.core.ScreenRights; import net.montoyo.wd.data.KeyboardData; import net.montoyo.wd.init.TileInit; @@ -23,9 +29,21 @@ import net.montoyo.wd.utilities.Util; public class TileEntityKeyboard extends TileEntityPeripheralBase { private static final String RANDOM_CHARS = "AZERTYUIOPQSDFGHJKLMWXCVBNazertyuiopqsdfghjklmwxcvbn0123456789"; //Yes I have an AZERTY keyboard, u care? + private static BlockPos blockPos; + private static BlockState blockState; public TileEntityKeyboard(BlockPos arg2, BlockState arg3) { super(TileInit.KEYBOARD.get(), arg2, arg3); + blockPos = arg2; + blockState = arg3; + } + + public static Block getBlockFromTE() { + if(blockPos != null && blockState != null) { + return new TileEntityKeyboard(blockPos, blockState).getBlockState().getBlock(); + } else { + throw new RuntimeException(); + } } @Override diff --git a/src/main/java/net/montoyo/wd/entity/TileEntityPeripheralBase.java b/src/main/java/net/montoyo/wd/entity/TileEntityPeripheralBase.java index b95ca8f..5144e08 100644 --- a/src/main/java/net/montoyo/wd/entity/TileEntityPeripheralBase.java +++ b/src/main/java/net/montoyo/wd/entity/TileEntityPeripheralBase.java @@ -5,16 +5,20 @@ package net.montoyo.wd.entity; import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.Vec3i; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; 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.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.LevelChunk; +import net.montoyo.wd.block.BlockKeyboardRight; import net.montoyo.wd.core.IPeripheral; import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.Log; diff --git a/src/main/java/net/montoyo/wd/entity/TileEntityRCtrl.java b/src/main/java/net/montoyo/wd/entity/TileEntityRCtrl.java index 545c735..047cc17 100644 --- a/src/main/java/net/montoyo/wd/entity/TileEntityRCtrl.java +++ b/src/main/java/net/montoyo/wd/entity/TileEntityRCtrl.java @@ -9,6 +9,7 @@ import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.montoyo.wd.core.ScreenRights; @@ -18,9 +19,21 @@ import net.montoyo.wd.utilities.BlockSide; import net.montoyo.wd.utilities.Util; public class TileEntityRCtrl extends TileEntityPeripheralBase { + private static BlockPos blockPos; + private static BlockState blockState; public TileEntityRCtrl(BlockPos arg2, BlockState arg3) { super(TileInit.REMOTE_CONTROLLER.get(), arg2, arg3); + blockPos = arg2; + blockState = arg3; + } + + public static Block getBlockFromTE() { + if(blockPos != null && blockState != null) { + return new TileEntityKeyboard(blockPos, blockState).getBlockState().getBlock(); + } else { + throw new RuntimeException(); + } } @Override diff --git a/src/main/java/net/montoyo/wd/entity/TileEntityRedCtrl.java b/src/main/java/net/montoyo/wd/entity/TileEntityRedCtrl.java index 7a711ac..80dc32a 100644 --- a/src/main/java/net/montoyo/wd/entity/TileEntityRedCtrl.java +++ b/src/main/java/net/montoyo/wd/entity/TileEntityRedCtrl.java @@ -27,9 +27,21 @@ public class TileEntityRedCtrl extends TileEntityPeripheralBase { private String risingEdgeURL = ""; private String fallingEdgeURL = ""; private boolean state = false; + private static BlockState blockState; + private static BlockPos blockPos; public TileEntityRedCtrl(BlockPos arg2, BlockState arg3) { super(TileInit.REDSTONE_CONTROLLER.get(), arg2, arg3); + blockPos = arg2; + blockState = arg3; + } + + public static Block getBlockFromTE() { + if(blockPos != null && blockState != null) { + return new TileEntityKeyboard(blockPos, blockState).getBlockState().getBlock(); + } else { + throw new RuntimeException(); + } } @Override @@ -110,5 +122,4 @@ public class TileEntityRedCtrl extends TileEntityPeripheralBase { tes.setScreenURL(screenSide, url); } } - } diff --git a/src/main/java/net/montoyo/wd/entity/TileEntityServer.java b/src/main/java/net/montoyo/wd/entity/TileEntityServer.java index fc6ea29..c786b0e 100644 --- a/src/main/java/net/montoyo/wd/entity/TileEntityServer.java +++ b/src/main/java/net/montoyo/wd/entity/TileEntityServer.java @@ -8,6 +8,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; @@ -22,9 +23,21 @@ import javax.annotation.Nonnull; public class TileEntityServer extends BlockEntity { private NameUUIDPair owner; + private static BlockPos blockPos; + private static BlockState blockState; public TileEntityServer(BlockPos arg2, BlockState arg3) { super(TileInit.SERVER.get(), arg2, arg3); + blockPos = arg2; + blockState = arg3; + } + + public static Block getBlockFromTE() { + if(blockPos != null && blockState != null) { + return new TileEntityKeyboard(blockPos, blockState).getBlockState().getBlock(); + } else { + throw new RuntimeException(); + } } @Override diff --git a/src/main/java/net/montoyo/wd/init/BlockInit.java b/src/main/java/net/montoyo/wd/init/BlockInit.java index cafa43b..4990495 100644 --- a/src/main/java/net/montoyo/wd/init/BlockInit.java +++ b/src/main/java/net/montoyo/wd/init/BlockInit.java @@ -1,7 +1,5 @@ package net.montoyo.wd.init; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.material.Material; @@ -12,10 +10,6 @@ import net.minecraftforge.registries.RegistryObject; import net.montoyo.wd.block.BlockKeyboardRight; import net.montoyo.wd.block.BlockPeripheral; import net.montoyo.wd.block.BlockScreen; -import net.montoyo.wd.core.WDCreativeTab; - -import java.util.function.Function; -import java.util.function.Supplier; public class BlockInit { @@ -25,9 +19,15 @@ public class BlockInit { public static DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, "webdisplays"); - public static final RegistryObject blockScreen = BLOCKS.register("screen_block", () -> new BlockScreen(BlockBehaviour.Properties.of(Material.STONE))); + public static final RegistryObject blockScreen = BLOCKS.register("screen", () -> new BlockScreen(BlockBehaviour.Properties.of(Material.STONE))); - public static final RegistryObject blockPeripheral = BLOCKS.register("peripheral_block", BlockPeripheral::new); + public static final RegistryObject blockKeyBoard = BlockInit.BLOCKS.register("kb_left", BlockPeripheral::new); - public static final RegistryObject blockKbRight = BLOCKS.register("kb_right_block", BlockKeyboardRight::new); + public static final RegistryObject blockRedControl = BlockInit.BLOCKS.register("redctrl", BlockPeripheral::new); + + public static final RegistryObject blockRControl = BlockInit.BLOCKS.register("rctrl", BlockPeripheral::new); + + public static final RegistryObject blockServer = BlockInit.BLOCKS.register("server", BlockPeripheral::new); + + public static final RegistryObject blockKbRight = BLOCKS.register("kb_right", BlockKeyboardRight::new); } diff --git a/src/main/java/net/montoyo/wd/init/ItemInit.java b/src/main/java/net/montoyo/wd/init/ItemInit.java index 4c51dcb..58b8856 100644 --- a/src/main/java/net/montoyo/wd/init/ItemInit.java +++ b/src/main/java/net/montoyo/wd/init/ItemInit.java @@ -1,15 +1,20 @@ package net.montoyo.wd.init; +import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.Item; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.RegistryObject; +import net.montoyo.wd.WebDisplays; +import net.montoyo.wd.block.WDBlockContainer; +import net.montoyo.wd.core.CraftComponent; +import net.montoyo.wd.core.DefaultUpgrade; import net.montoyo.wd.item.*; -import java.util.function.Supplier; +import java.util.Locale; -public class ItemInit { +public class ItemInit{ public static void init(IEventBus bus) { ITEMS.register(bus); @@ -17,12 +22,32 @@ public class ItemInit { public static DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, "webdisplays"); - public static final RegistryObject itemScreenCfg = ITEMS.register("screen_config", () -> new ItemScreenConfigurator(new Item.Properties())); - public static final RegistryObject itemOwnerThief = ITEMS.register("owner_thief", () -> new ItemOwnershipThief(new Item.Properties())); + public static RegistryObject itemUpgrade = null; + public static RegistryObject itemCraftComp = null; + + public static final RegistryObject itemScreenCfg = ITEMS.register("screencfg", () -> new ItemScreenConfigurator(new Item.Properties())); + public static final RegistryObject itemOwnerThief = ITEMS.register("ownerthief", () -> new ItemOwnershipThief(new Item.Properties())); public static final RegistryObject itemLinker = ITEMS.register("linker", () -> new ItemLinker(new Item.Properties())); - public static final RegistryObject itemMinePad = ITEMS.register("mine_pad", () -> new ItemMinePad2(new Item.Properties())); - public static final RegistryObject itemUpgrade = ITEMS.register("upgrade", ItemUpgrade::new); - public static final RegistryObject itemCraftComp = ITEMS.register("craftcomp", () -> new ItemCraftComponent(new Item.Properties())); + public static final RegistryObject itemMinePad = ITEMS.register("minepad", () -> new ItemMinePad2(new Item.Properties())); public static final RegistryObject itemLaserPointer = ITEMS.register("laserpointer", () -> new ItemLaserPointer(new Item.Properties())); + public static void registerUpgrade() { + for (DefaultUpgrade du : DefaultUpgrade.values()) { + itemUpgrade = ITEMS.register("upgrade_" + du.name().toLowerCase(Locale.ROOT), ItemUpgrade::new); + } + } + + public static void registerComponents() { + for (CraftComponent cc : CraftComponent.values()) { + itemCraftComp = ITEMS.register("craftcomp_" + cc.name().toLowerCase(Locale.ROOT), () -> new ItemCraftComponent(new Item.Properties())); + } + } + + public static final RegistryObject screen = ITEMS.register("screen", () -> new BlockItem(BlockInit.blockScreen.get(), new Item.Properties().tab(WebDisplays.CREATIVE_TAB))); + + public static final RegistryObject keyboard = ITEMS.register("keyboard", () -> new BlockItem(BlockInit.blockKbRight.get(), new Item.Properties().tab(WebDisplays.CREATIVE_TAB))); + public static final RegistryObject redctrl = ITEMS.register("redctrl", () -> new BlockItem(BlockInit.blockRedControl.get(), new Item.Properties().tab(WebDisplays.CREATIVE_TAB))); + public static final RegistryObject rctrl = ITEMS.register("rctrl", () -> new BlockItem(BlockInit.blockRControl.get(), new Item.Properties().tab(WebDisplays.CREATIVE_TAB))); + public static final RegistryObject server = ITEMS.register("server", () -> new BlockItem(BlockInit.blockServer.get(), new Item.Properties().tab(WebDisplays.CREATIVE_TAB))); + } diff --git a/src/main/java/net/montoyo/wd/init/TileInit.java b/src/main/java/net/montoyo/wd/init/TileInit.java index d869ed0..f1e1b56 100644 --- a/src/main/java/net/montoyo/wd/init/TileInit.java +++ b/src/main/java/net/montoyo/wd/init/TileInit.java @@ -1,5 +1,6 @@ package net.montoyo.wd.init; +import net.minecraft.world.level.ClipContext; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.registries.DeferredRegister; @@ -20,17 +21,17 @@ public class TileInit { .register("screen", () -> BlockEntityType.Builder .of(TileEntityScreen::new, BlockInit.blockScreen.get()).build(null)); - public static final RegistryObject> KEYBOARD = TILE_TYPES.register("keyboard", () -> BlockEntityType.Builder - .of(TileEntityKeyboard::new, BlockInit.blockPeripheral.get()).build(null)); + public static final RegistryObject> KEYBOARD = TILE_TYPES.register("kb_left", () -> BlockEntityType.Builder + .of(TileEntityKeyboard::new, BlockInit.blockKeyBoard.get()).build(null)); - public static final RegistryObject> REMOTE_CONTROLLER = TILE_TYPES.register("remotectrl", - () -> BlockEntityType.Builder.of(TileEntityRCtrl::new, BlockInit.blockPeripheral.get()).build(null)); //WITHOUT FACING (>= 3) + public static final RegistryObject> REMOTE_CONTROLLER = TILE_TYPES.register("rctrl", + () -> BlockEntityType.Builder.of(TileEntityRCtrl::new, BlockInit.blockRControl.get()).build(null)); //WITHOUT FACING (>= 3) - public static final RegistryObject> REDSTONE_CONTROLLER = TILE_TYPES.register("redstonectrl", - () -> BlockEntityType.Builder.of(TileEntityRedCtrl::new, BlockInit.blockPeripheral.get()).build(null)); + public static final RegistryObject> REDSTONE_CONTROLLER = TILE_TYPES.register("redctrl", + () -> BlockEntityType.Builder.of(TileEntityRedCtrl::new, BlockInit.blockRedControl.get()).build(null)); public static final RegistryObject> SERVER = TILE_TYPES.register("server" , - () -> BlockEntityType.Builder.of(TileEntityServer::new, BlockInit.blockPeripheral.get()).build(null)); + () -> BlockEntityType.Builder.of(TileEntityServer::new, BlockInit.blockServer.get()).build(null)); public static void init(IEventBus bus) { TILE_TYPES.register(bus); diff --git a/src/main/java/net/montoyo/wd/item/ItemPeripheral.java b/src/main/java/net/montoyo/wd/item/ItemPeripheral.java deleted file mode 100644 index 3b39aac..0000000 --- a/src/main/java/net/montoyo/wd/item/ItemPeripheral.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2019 BARBOTIN Nicolas - */ - -package net.montoyo.wd.item; - -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.montoyo.wd.core.WDCreativeTab; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; - -public class ItemPeripheral extends Item implements WDItem { - - public ItemPeripheral() { - super(new Properties().tab(WDCreativeTab.TAB_REDSTONE)); - } - - //TODO what was this! - /*@Override - public boolean canPlaceBlock(Level world, @Nonnull BlockPos pos_, @Nonnull EnumFacing side, EntityPlayer player, ItemStack stack) { - if(stack.getMetadata() != 0) //Keyboard - return true; - - //Special checks for the keyboard - BlockPos pos = pos_.add(side.getDirectionVec()); - if(world.isAirBlock(pos.down()) || !BlockKeyboardRight.checkNeighborhood(world, pos, null)) - return false; - - int f = MathHelper.floor(((double) (player.rotationYaw * 4.0f / 360.0f)) + 2.5) & 3; - Vec3i dir = EnumFacing.getHorizontal(f).rotateY().getDirectionVec(); - BlockPos left = pos.add(dir); - BlockPos right = pos.subtract(dir); - - if(world.isAirBlock(right) && !world.isAirBlock(right.down()) && BlockKeyboardRight.checkNeighborhood(world, right, null)) - return true; - else - return world.isAirBlock(left) && !world.isAirBlock(left.down()) && BlockKeyboardRight.checkNeighborhood(world, left, null); - } */ - - @Nullable - @Override - public String getWikiName(@Nonnull ItemStack is) { - return is.getItem().getName(is).getString(); - } - -} diff --git a/src/main/java/net/montoyo/wd/net/server/SMessageScreenCtrl.java b/src/main/java/net/montoyo/wd/net/server/SMessageScreenCtrl.java index a8e9da9..6052027 100644 --- a/src/main/java/net/montoyo/wd/net/server/SMessageScreenCtrl.java +++ b/src/main/java/net/montoyo/wd/net/server/SMessageScreenCtrl.java @@ -21,6 +21,7 @@ import net.montoyo.wd.core.MissingPermissionException; import net.montoyo.wd.core.ScreenRights; import net.montoyo.wd.entity.TileEntityScreen; import net.montoyo.wd.init.BlockInit; +import net.montoyo.wd.init.ItemInit; import net.montoyo.wd.utilities.*; import java.util.function.Supplier; @@ -291,7 +292,9 @@ public class SMessageScreenCtrl implements Runnable { return; //Out of range (player reach distance) BlockState bs = world.getBlockState(blockPos); - if(bs.getBlock() != BlockInit.blockPeripheral.get() || bs.getValue(BlockPeripheral.type) != DefaultPeripheral.REMOTE_CONTROLLER) + if(bs.getBlock() != BlockInit.blockServer.get() || bs.getBlock() != BlockInit.blockRControl.get() || + bs.getBlock() != BlockInit.blockKeyBoard.get() || bs.getBlock() != BlockInit.blockRedControl.get() + || bs.getValue(BlockPeripheral.type) != DefaultPeripheral.REMOTE_CONTROLLER) return; //I call it hax... } else if(player.shouldRenderAtSqrDistance(player.distanceToSqr(bp.getX(), bp.getY(), bp.getZ()))) return; //Out of range (range problem) diff --git a/src/main/resources/assets/webdisplays/blockstates/kb_left.json b/src/main/resources/assets/webdisplays/blockstates/kb_left.json new file mode 100644 index 0000000..278ac00 --- /dev/null +++ b/src/main/resources/assets/webdisplays/blockstates/kb_left.json @@ -0,0 +1,10 @@ +{ + "forge_marker": 1, + "uvlock": false, + "variants": { + "facing=north,type=default_peripheral_keyboard": { "model": "webdisplays:block/kb_left" }, + "facing=east,type=default_peripheral_keyboard": { "model": "webdisplays:block/kb_left", "y": 90.0 }, + "facing=south,type=default_peripheral_keyboard": { "model": "webdisplays:block/kb_left", "y": 180.0 }, + "facing=west,type=default_peripheral_keyboard": { "model": "webdisplays:block/kb_left", "y": 270.0 } + } +} diff --git a/src/main/resources/assets/webdisplays/blockstates/kb_right.json b/src/main/resources/assets/webdisplays/blockstates/kb_right.json new file mode 100644 index 0000000..63a2f4e --- /dev/null +++ b/src/main/resources/assets/webdisplays/blockstates/kb_right.json @@ -0,0 +1,10 @@ +{ + "forge_marker": 1, + "uvlock": false, + "variants": { + "facing=north": { "model": "webdisplays:block/kb_right" }, + "facing=east": { "model": "webdisplays:block/kb_right", "y": 90.0 }, + "facing=south": { "model": "webdisplays:block/kb_right", "y": 180.0 }, + "facing=west": { "model": "webdisplays:block/kb_right", "y": 270.0 } + } +} diff --git a/src/main/resources/assets/webdisplays/blockstates/keyboard.json b/src/main/resources/assets/webdisplays/blockstates/keyboard.json deleted file mode 100644 index 1b4cea5..0000000 --- a/src/main/resources/assets/webdisplays/blockstates/keyboard.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "variants": { - "facing=0": { "model": "webdisplays:kb_right" }, - "facing=1": { "model": "webdisplays:kb_right", "y": 90.0 }, - "facing=2": { "model": "webdisplays:kb_right", "y": 180.0 }, - "facing=3": { "model": "webdisplays:kb_right", "y": 270.0 } - } -} diff --git a/src/main/resources/assets/webdisplays/blockstates/peripheral.json b/src/main/resources/assets/webdisplays/blockstates/peripheral.json deleted file mode 100644 index 0118006..0000000 --- a/src/main/resources/assets/webdisplays/blockstates/peripheral.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "variants": { - "facing=0,type=keyboard": { "model": "webdisplays:kb_left" }, - "facing=1,type=keyboard": { "model": "webdisplays:kb_left", "y": 90.0 }, - "facing=2,type=keyboard": { "model": "webdisplays:kb_left", "y": 180.0 }, - "facing=3,type=keyboard": { "model": "webdisplays:kb_left", "y": 270.0 }, - - "facing=0,type=ccinterface": { "model": "webdisplays:ccinterface", "y": 180.0 }, - "facing=1,type=ccinterface": { "model": "webdisplays:ccinterface", "y": 270.0 }, - "facing=2,type=ccinterface": { "model": "webdisplays:ccinterface" }, - "facing=3,type=ccinterface": { "model": "webdisplays:ccinterface", "y": 90.0 }, - - "facing=0,type=cointerface": { "model": "webdisplays:ocinterface", "y": 180.0 }, - "facing=1,type=cointerface": { "model": "webdisplays:ocinterface", "y": 270.0 }, - "facing=2,type=cointerface": { "model": "webdisplays:ocinterface" }, - "facing=3,type=cointerface": { "model": "webdisplays:ocinterface", "y": 90.0 }, - - "facing=0,type=remotectrl": { "model": "webdisplays:rctrl" }, - "facing=1,type=remotectrl": { "model": "webdisplays:rctrl" }, - "facing=2,type=remotectrl": { "model": "webdisplays:rctrl" }, - "facing=3,type=remotectrl": { "model": "webdisplays:rctrl" }, - - "facing=0,type=redstonectrl": { "model": "webdisplays:redctrl" }, - "facing=1,type=redstonectrl": { "model": "webdisplays:redctrl" }, - "facing=2,type=redstonectrl": { "model": "webdisplays:redctrl" }, - "facing=3,type=redstonectrl": { "model": "webdisplays:redctrl" }, - - "facing=0,type=server": { "model": "webdisplays:server" }, - "facing=1,type=server": { "model": "webdisplays:server" }, - "facing=2,type=server": { "model": "webdisplays:server" }, - "facing=3,type=server": { "model": "webdisplays:server" } - } -} diff --git a/src/main/resources/assets/webdisplays/blockstates/rctrl.json b/src/main/resources/assets/webdisplays/blockstates/rctrl.json new file mode 100644 index 0000000..b5de174 --- /dev/null +++ b/src/main/resources/assets/webdisplays/blockstates/rctrl.json @@ -0,0 +1,10 @@ +{ + "forge_marker": 1, + "uvlock": false, + "variants": { + "facing=north,type=default_peripheral_remotectrl": { "model": "webdisplays:block/rctrl" }, + "facing=east,type=default_peripheral_remotectrl": { "model": "webdisplays:block/rctrl" }, + "facing=south,type=default_peripheral_remotectrl": { "model": "webdisplays:block/rctrl" }, + "facing=west,type=default_peripheral_remotectrl": { "model": "webdisplays:block/rctrl" } + } +} diff --git a/src/main/resources/assets/webdisplays/blockstates/redctrl.json b/src/main/resources/assets/webdisplays/blockstates/redctrl.json new file mode 100644 index 0000000..0d55475 --- /dev/null +++ b/src/main/resources/assets/webdisplays/blockstates/redctrl.json @@ -0,0 +1,10 @@ +{ + "forge_marker": 1, + "uvlock": false, + "variants": { + "facing=north,type=default_peripheral_redstonectrl": { "model": "webdisplays:block/redctrl" }, + "facing=east,type=default_peripheral_redstonectrl": { "model": "webdisplays:block/redctrl" }, + "facing=south,type=default_peripheral_redstonectrl": { "model": "webdisplays:block/redctrl" }, + "facing=west,type=default_peripheral_redstonectrl": { "model": "webdisplays:block/redctrl" } + } +} diff --git a/src/main/resources/assets/webdisplays/blockstates/screen.json b/src/main/resources/assets/webdisplays/blockstates/screen.json index 4f8d897..329bff6 100644 --- a/src/main/resources/assets/webdisplays/blockstates/screen.json +++ b/src/main/resources/assets/webdisplays/blockstates/screen.json @@ -1,6 +1,8 @@ { + "forge_marker": 1, + "uvlock": false, "variants": { - "normal": { "model": "webdisplays:screen" }, - "inventory": { "model": "webdisplays:screen_item" } + "normal": { "model": "webdisplays:block/screen" }, + "inventory": { "model": "webdisplays:block/screen_item" } } } diff --git a/src/main/resources/assets/webdisplays/blockstates/server.json b/src/main/resources/assets/webdisplays/blockstates/server.json new file mode 100644 index 0000000..e6d9dae --- /dev/null +++ b/src/main/resources/assets/webdisplays/blockstates/server.json @@ -0,0 +1,10 @@ +{ + "forge_marker": 1, + "uvlock": false, + "variants": { + "facing=north,type=default_peripheral_server": { "model": "webdisplays:block/server" }, + "facing=east,type=default_peripheral_server": { "model": "webdisplays:block/server" }, + "facing=south,type=default_peripheral_server": { "model": "webdisplays:block/server" }, + "facing=west,type=default_peripheral_server": { "model": "webdisplays:block/server" } + } +} diff --git a/src/main/resources/assets/webdisplays/models/block/screen.json b/src/main/resources/assets/webdisplays/models/block/screen.json new file mode 100644 index 0000000..f8e03ca --- /dev/null +++ b/src/main/resources/assets/webdisplays/models/block/screen.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "webdisplays:blocks/screen15" + } +} diff --git a/src/main/resources/assets/webdisplays/models/item/ccinterface.json b/src/main/resources/assets/webdisplays/models/item/ccinterface.json new file mode 100644 index 0000000..643ca5b --- /dev/null +++ b/src/main/resources/assets/webdisplays/models/item/ccinterface.json @@ -0,0 +1,8 @@ +{ + "parent": "block/orientable", + "textures": { + "top": "webdisplays:blocks/cci_topbot", + "front": "webdisplays:blocks/cci_front", + "side": "webdisplays:blocks/cci_side" + } +} diff --git a/src/main/resources/assets/webdisplays/models/item/craftcomp_badextcard.json b/src/main/resources/assets/webdisplays/models/item/craftcomp_bad_extension_card.json similarity index 100% rename from src/main/resources/assets/webdisplays/models/item/craftcomp_badextcard.json rename to src/main/resources/assets/webdisplays/models/item/craftcomp_bad_extension_card.json diff --git a/src/main/resources/assets/webdisplays/models/item/craftcomp_batcell.json b/src/main/resources/assets/webdisplays/models/item/craftcomp_battery_cell.json similarity index 100% rename from src/main/resources/assets/webdisplays/models/item/craftcomp_batcell.json rename to src/main/resources/assets/webdisplays/models/item/craftcomp_battery_cell.json diff --git a/src/main/resources/assets/webdisplays/models/item/craftcomp_batpack.json b/src/main/resources/assets/webdisplays/models/item/craftcomp_battery_pack.json similarity index 100% rename from src/main/resources/assets/webdisplays/models/item/craftcomp_batpack.json rename to src/main/resources/assets/webdisplays/models/item/craftcomp_battery_pack.json diff --git a/src/main/resources/assets/webdisplays/models/item/craftcomp_upgrade.json b/src/main/resources/assets/webdisplays/models/item/craftcomp_blank_upgrade.json similarity index 100% rename from src/main/resources/assets/webdisplays/models/item/craftcomp_upgrade.json rename to src/main/resources/assets/webdisplays/models/item/craftcomp_blank_upgrade.json diff --git a/src/main/resources/assets/webdisplays/models/item/craftcomp_extcard.json b/src/main/resources/assets/webdisplays/models/item/craftcomp_extension_card.json similarity index 100% rename from src/main/resources/assets/webdisplays/models/item/craftcomp_extcard.json rename to src/main/resources/assets/webdisplays/models/item/craftcomp_extension_card.json diff --git a/src/main/resources/assets/webdisplays/models/item/craftcomp_laserdiode.json b/src/main/resources/assets/webdisplays/models/item/craftcomp_laser_diode.json similarity index 100% rename from src/main/resources/assets/webdisplays/models/item/craftcomp_laserdiode.json rename to src/main/resources/assets/webdisplays/models/item/craftcomp_laser_diode.json diff --git a/src/main/resources/assets/webdisplays/models/item/craftcomp_peripheral.json b/src/main/resources/assets/webdisplays/models/item/craftcomp_peripheral_base.json similarity index 100% rename from src/main/resources/assets/webdisplays/models/item/craftcomp_peripheral.json rename to src/main/resources/assets/webdisplays/models/item/craftcomp_peripheral_base.json diff --git a/src/main/resources/assets/webdisplays/models/item/craftcomp_stonekey.json b/src/main/resources/assets/webdisplays/models/item/craftcomp_stone_key.json similarity index 100% rename from src/main/resources/assets/webdisplays/models/item/craftcomp_stonekey.json rename to src/main/resources/assets/webdisplays/models/item/craftcomp_stone_key.json diff --git a/src/main/resources/assets/webdisplays/models/item/kb_left.json b/src/main/resources/assets/webdisplays/models/item/kb_left.json new file mode 100644 index 0000000..331a9c2 --- /dev/null +++ b/src/main/resources/assets/webdisplays/models/item/kb_left.json @@ -0,0 +1,503 @@ +{ + "__comment": "Model absolutely not generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)", + "textures": { + "particle": "webdisplays:blocks/kb_key", + "0": "webdisplays:blocks/kb_base", + "1": "webdisplays:blocks/kb_key" + }, + "elements": [ + { + "name": "Base", + "from": [ 0.0, 0.0, 3.0 ], + "to": [ 16.0, 1.0, 16.0 ], + "faces": { + "north": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "east": { "texture": "#0", "uv": [ 0.0, 0.0, 13.0, 1.0 ] }, + "south": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "west": { "texture": "#0", "uv": [ 0.0, 0.0, 13.0, 1.0 ] }, + "up": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 13.0 ] }, + "down": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 13.0 ], "cullface": "down" } + } + }, + { + "name": "Key1", + "from": [ 1.0, 1.0, 4.0 ], + "to": [ 2.0, 2.0, 5.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key2", + "from": [ 4.0, 1.0, 4.0 ], + "to": [ 5.0, 2.0, 5.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key3", + "from": [ 6.0, 1.0, 4.0 ], + "to": [ 7.0, 2.0, 5.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key4", + "from": [ 8.0, 1.0, 4.0 ], + "to": [ 9.0, 2.0, 5.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key5", + "from": [ 10.0, 1.0, 4.0 ], + "to": [ 11.0, 2.0, 5.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key6", + "from": [ 13.0, 1.0, 4.0 ], + "to": [ 14.0, 2.0, 5.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key7", + "from": [ 15.0, 1.0, 4.0 ], + "to": [ 16.0, 2.0, 5.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key8", + "from": [ 1.0, 1.0, 6.0 ], + "to": [ 2.0, 2.0, 7.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key9", + "from": [ 3.0, 1.0, 6.0 ], + "to": [ 4.0, 2.0, 7.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key10", + "from": [ 5.0, 1.0, 6.0 ], + "to": [ 6.0, 2.0, 7.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key11", + "from": [ 7.0, 1.0, 6.0 ], + "to": [ 8.0, 2.0, 7.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key12", + "from": [ 9.0, 1.0, 6.0 ], + "to": [ 10.0, 2.0, 7.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key13", + "from": [ 11.0, 1.0, 6.0 ], + "to": [ 12.0, 2.0, 7.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key14", + "from": [ 13.0, 1.0, 6.0 ], + "to": [ 14.0, 2.0, 7.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key15", + "from": [ 15.0, 1.0, 6.0 ], + "to": [ 16.0, 2.0, 7.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key16", + "from": [ 1.0, 1.0, 8.0 ], + "to": [ 3.0, 2.0, 9.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] } + } + }, + { + "name": "Key17", + "from": [ 4.0, 1.0, 8.0 ], + "to": [ 5.0, 2.0, 9.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key18", + "from": [ 6.0, 1.0, 8.0 ], + "to": [ 7.0, 2.0, 9.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key19", + "from": [ 8.0, 1.0, 8.0 ], + "to": [ 9.0, 2.0, 9.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key20", + "from": [ 10.0, 1.0, 8.0 ], + "to": [ 11.0, 2.0, 9.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key21", + "from": [ 12.0, 1.0, 8.0 ], + "to": [ 13.0, 2.0, 9.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key22", + "from": [ 14.0, 1.0, 8.0 ], + "to": [ 15.0, 2.0, 9.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key23", + "from": [ 1.0, 1.0, 10.0 ], + "to": [ 4.0, 2.0, 11.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 3.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 3.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 3.0, 1.0 ] } + } + }, + { + "name": "Key24", + "from": [ 5.0, 1.0, 10.0 ], + "to": [ 6.0, 2.0, 11.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key25", + "from": [ 7.0, 1.0, 10.0 ], + "to": [ 8.0, 2.0, 11.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key26", + "from": [ 9.0, 1.0, 10.0 ], + "to": [ 10.0, 2.0, 11.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key27", + "from": [ 11.0, 1.0, 10.0 ], + "to": [ 12.0, 2.0, 11.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key28", + "from": [ 13.0, 1.0, 10.0 ], + "to": [ 14.0, 2.0, 11.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key29", + "from": [ 15.0, 1.0, 10.0 ], + "to": [ 16.0, 2.0, 11.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key30", + "from": [ 1.0, 1.0, 12.0 ], + "to": [ 3.0, 2.0, 13.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] } + } + }, + { + "name": "Key31", + "from": [ 4.0, 1.0, 12.0 ], + "to": [ 5.0, 2.0, 13.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key32", + "from": [ 6.0, 1.0, 12.0 ], + "to": [ 7.0, 2.0, 13.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key33", + "from": [ 8.0, 1.0, 12.0 ], + "to": [ 9.0, 2.0, 13.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key34", + "from": [ 10.0, 1.0, 12.0 ], + "to": [ 11.0, 2.0, 13.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key35", + "from": [ 12.0, 1.0, 12.0 ], + "to": [ 13.0, 2.0, 13.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key36", + "from": [ 14.0, 1.0, 12.0 ], + "to": [ 15.0, 2.0, 13.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key37", + "from": [ 1.0, 1.0, 14.0 ], + "to": [ 3.0, 2.0, 15.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] } + } + }, + { + "name": "Key38", + "from": [ 4.0, 1.0, 14.0 ], + "to": [ 6.0, 2.0, 15.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] } + } + }, + { + "name": "Key39", + "from": [ 7.0, 1.0, 14.0 ], + "to": [ 9.0, 2.0, 15.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] } + } + }, + { + "name": "Key40", + "from": [ 10.0, 1.0, 14.0 ], + "to": [ 16.0, 2.0, 15.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 6.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 6.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 6.0, 1.0 ] } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/webdisplays/models/item/kb_right.json b/src/main/resources/assets/webdisplays/models/item/kb_right.json new file mode 100644 index 0000000..eeaba91 --- /dev/null +++ b/src/main/resources/assets/webdisplays/models/item/kb_right.json @@ -0,0 +1,477 @@ +{ + "__comment": "Model absolutely not generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)", + "textures": { + "particle": "webdisplays:blocks/kb_key", + "0": "webdisplays:blocks/kb_base", + "1": "webdisplays:blocks/kb_key" + }, + "elements": [ + { + "name": "Base", + "from": [ 0.0, 0.0, 3.0 ], + "to": [ 16.0, 1.0, 16.0 ], + "faces": { + "north": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "east": { "texture": "#0", "uv": [ 0.0, 0.0, 13.0, 1.0 ] }, + "south": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 1.0 ] }, + "west": { "texture": "#0", "uv": [ 0.0, 0.0, 13.0, 1.0 ] }, + "up": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 13.0 ] }, + "down": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 13.0 ], "cullface": "down" } + } + }, + { + "name": "Key1", + "from": [ 1.0, 1.0, 4.0 ], + "to": [ 2.0, 2.0, 5.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key2", + "from": [ 3.0, 1.0, 4.0 ], + "to": [ 4.0, 2.0, 5.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key3", + "from": [ 6.0, 1.0, 4.0 ], + "to": [ 7.0, 2.0, 5.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key4", + "from": [ 8.0, 1.0, 4.0 ], + "to": [ 9.0, 2.0, 5.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key5", + "from": [ 10.0, 1.0, 4.0 ], + "to": [ 11.0, 2.0, 5.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key6", + "from": [ 12.0, 1.0, 4.0 ], + "to": [ 13.0, 2.0, 5.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key7", + "from": [ 1.0, 1.0, 6.0 ], + "to": [ 2.0, 2.0, 7.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key8", + "from": [ 3.0, 1.0, 6.0 ], + "to": [ 4.0, 2.0, 7.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key9", + "from": [ 5.0, 1.0, 6.0 ], + "to": [ 6.0, 2.0, 7.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key10", + "from": [ 7.0, 1.0, 6.0 ], + "to": [ 8.0, 2.0, 7.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key11", + "from": [ 9.0, 1.0, 6.0 ], + "to": [ 11.0, 2.0, 7.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] } + } + }, + { + "name": "Key12", + "from": [ 12.0, 1.0, 6.0 ], + "to": [ 13.0, 2.0, 7.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key13", + "from": [ 14.0, 1.0, 6.0 ], + "to": [ 15.0, 2.0, 7.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key14", + "from": [ 0.0, 1.0, 8.0 ], + "to": [ 1.0, 2.0, 9.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key15", + "from": [ 2.0, 1.0, 8.0 ], + "to": [ 3.0, 2.0, 9.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key16", + "from": [ 4.0, 1.0, 8.0 ], + "to": [ 5.0, 2.0, 9.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key17", + "from": [ 6.0, 1.0, 8.0 ], + "to": [ 7.0, 2.0, 9.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key18", + "from": [ 8.0, 1.0, 8.0 ], + "to": [ 11.0, 2.0, 9.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 3.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 3.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 3.0, 1.0 ] } + } + }, + { + "name": "Key19", + "from": [ 12.0, 1.0, 8.0 ], + "to": [ 13.0, 2.0, 9.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key20", + "from": [ 14.0, 1.0, 8.0 ], + "to": [ 15.0, 2.0, 9.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key21", + "from": [ 1.0, 1.0, 10.0 ], + "to": [ 2.0, 2.0, 11.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key22", + "from": [ 3.0, 1.0, 10.0 ], + "to": [ 4.0, 2.0, 11.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key23", + "from": [ 5.0, 1.0, 10.0 ], + "to": [ 6.0, 2.0, 11.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key24", + "from": [ 7.0, 1.0, 10.0 ], + "to": [ 8.0, 2.0, 11.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key25", + "from": [ 9.0, 1.0, 9.0 ], + "to": [ 11.0, 2.0, 11.0 ], + "faces": { + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 0.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 2.0 ] } + } + }, + { + "name": "Key26", + "from": [ 12.0, 1.0, 10.0 ], + "to": [ 13.0, 2.0, 11.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key27", + "from": [ 14.0, 1.0, 10.0 ], + "to": [ 15.0, 2.0, 11.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key29", + "from": [ 0.0, 1.0, 12.0 ], + "to": [ 1.0, 2.0, 13.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key30", + "from": [ 2.0, 1.0, 12.0 ], + "to": [ 3.0, 2.0, 13.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key31", + "from": [ 4.0, 1.0, 12.0 ], + "to": [ 5.0, 2.0, 13.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key32", + "from": [ 6.0, 1.0, 12.0 ], + "to": [ 7.0, 2.0, 13.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key33", + "from": [ 8.0, 1.0, 12.0 ], + "to": [ 11.0, 2.0, 13.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 3.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 3.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 3.0, 1.0 ] } + } + }, + { + "name": "Key34", + "from": [ 13.0, 1.0, 13.0 ], + "to": [ 14.0, 2.0, 14.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } + } + }, + { + "name": "Key35", + "from": [ 0.0, 1.0, 14.0 ], + "to": [ 2.0, 2.0, 15.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] } + } + }, + { + "name": "Key36", + "from": [ 3.0, 1.0, 14.0 ], + "to": [ 5.0, 2.0, 15.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] } + } + }, + { + "name": "Key37", + "from": [ 6.0, 1.0, 14.0 ], + "to": [ 8.0, 2.0, 15.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] } + } + }, + { + "name": "Key38", + "from": [ 9.0, 1.0, 14.0 ], + "to": [ 11.0, 2.0, 15.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 2.0, 1.0 ] } + } + }, + { + "name": "Key39", + "from": [ 12.0, 1.0, 14.0 ], + "to": [ 15.0, 2.0, 15.0 ], + "faces": { + "north": { "texture": "#1", "uv": [ 0.0, 0.0, 3.0, 1.0 ] }, + "east": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "south": { "texture": "#1", "uv": [ 0.0, 0.0, 3.0, 1.0 ] }, + "west": { "texture": "#1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, + "up": { "texture": "#1", "uv": [ 0.0, 0.0, 3.0, 1.0 ] } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/webdisplays/models/item/kb_inv.json b/src/main/resources/assets/webdisplays/models/item/keyboard.json similarity index 100% rename from src/main/resources/assets/webdisplays/models/item/kb_inv.json rename to src/main/resources/assets/webdisplays/models/item/keyboard.json diff --git a/src/main/resources/assets/webdisplays/models/item/ocinterface.json b/src/main/resources/assets/webdisplays/models/item/ocinterface.json new file mode 100644 index 0000000..0cdb319 --- /dev/null +++ b/src/main/resources/assets/webdisplays/models/item/ocinterface.json @@ -0,0 +1,8 @@ +{ + "parent": "block/orientable", + "textures": { + "top": "webdisplays:blocks/oci_topbot", + "front": "webdisplays:blocks/oci_front", + "side": "webdisplays:blocks/oci_side" + } +} diff --git a/src/main/resources/assets/webdisplays/models/item/rctrl.json b/src/main/resources/assets/webdisplays/models/item/rctrl.json new file mode 100644 index 0000000..2401660 --- /dev/null +++ b/src/main/resources/assets/webdisplays/models/item/rctrl.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "webdisplays:blocks/rctrl" + } +} diff --git a/src/main/resources/assets/webdisplays/models/item/redctrl.json b/src/main/resources/assets/webdisplays/models/item/redctrl.json new file mode 100644 index 0000000..bf34100 --- /dev/null +++ b/src/main/resources/assets/webdisplays/models/item/redctrl.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "webdisplays:blocks/redctrl" + } +} diff --git a/src/main/resources/assets/webdisplays/models/item/screen.json b/src/main/resources/assets/webdisplays/models/item/screen.json new file mode 100644 index 0000000..f8e03ca --- /dev/null +++ b/src/main/resources/assets/webdisplays/models/item/screen.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "webdisplays:blocks/screen15" + } +} diff --git a/src/main/resources/assets/webdisplays/models/item/server.json b/src/main/resources/assets/webdisplays/models/item/server.json new file mode 100644 index 0000000..b08e2f4 --- /dev/null +++ b/src/main/resources/assets/webdisplays/models/item/server.json @@ -0,0 +1,12 @@ +{ + "parent": "block/cube", + "textures": { + "particle": "webdisplays:blocks/server", + "down": "webdisplays:blocks/server2", + "up": "webdisplays:blocks/server2", + "north": "webdisplays:blocks/server", + "east": "webdisplays:blocks/server", + "south": "webdisplays:blocks/server", + "west": "webdisplays:blocks/server" + } +} diff --git a/src/main/resources/assets/webdisplays/models/item/upgrade_lasermouse.json b/src/main/resources/assets/webdisplays/models/item/upgrade_laser_mouse.json similarity index 100% rename from src/main/resources/assets/webdisplays/models/item/upgrade_lasermouse.json rename to src/main/resources/assets/webdisplays/models/item/upgrade_laser_mouse.json diff --git a/src/main/resources/assets/webdisplays/models/item/upgrade_redinput.json b/src/main/resources/assets/webdisplays/models/item/upgrade_redstone_input.json similarity index 100% rename from src/main/resources/assets/webdisplays/models/item/upgrade_redinput.json rename to src/main/resources/assets/webdisplays/models/item/upgrade_redstone_input.json diff --git a/src/main/resources/assets/webdisplays/models/item/upgrade_redoutput.json b/src/main/resources/assets/webdisplays/models/item/upgrade_redstone_output.json similarity index 100% rename from src/main/resources/assets/webdisplays/models/item/upgrade_redoutput.json rename to src/main/resources/assets/webdisplays/models/item/upgrade_redstone_output.json