From 52f7695c1cc6b35081d257bd14d473b3c63078c7 Mon Sep 17 00:00:00 2001 From: GiantLuigi4 <49770992+GiantLuigi4@users.noreply.github.com> Date: Wed, 31 May 2023 23:12:22 -0400 Subject: [PATCH] kinda fix screen configurator, tweak some code --- src/main/java/net/montoyo/wd/WebDisplays.java | 42 +++----------- .../net/montoyo/wd/client/ClientProxy.java | 36 ++++++++++-- .../net/montoyo/wd/client/gui/GuiMinePad.java | 1 - .../wd/client/gui/GuiScreenConfig.java | 12 ++++ .../net/montoyo/wd/client/gui/WDScreen.java | 9 ++- .../wd/client/gui/controls/CheckBox.java | 4 +- .../wd/client/gui/controls/Container.java | 7 ++- .../montoyo/wd/client/gui/controls/List.java | 14 +++-- .../wd/client/gui/controls/UpgradeGroup.java | 13 +++-- .../wd/client/renderers/IItemRenderer.java | 16 +++++- .../renderers/LaserPointerRenderer.java | 4 +- .../wd/client/renderers/MinePadRenderer.java | 4 +- .../wd/controls/builtin/LaserControl.java | 2 +- .../ManageRightsAndUpdgradesControl.java | 3 +- .../controls/builtin/ScreenModifyControl.java | 2 +- .../wd/item/ItemScreenConfigurator.java | 6 +- .../webdisplays/models/item/minepad.json | 57 +------------------ 17 files changed, 108 insertions(+), 124 deletions(-) diff --git a/src/main/java/net/montoyo/wd/WebDisplays.java b/src/main/java/net/montoyo/wd/WebDisplays.java index fb2fd4c..0025f5b 100644 --- a/src/main/java/net/montoyo/wd/WebDisplays.java +++ b/src/main/java/net/montoyo/wd/WebDisplays.java @@ -11,8 +11,6 @@ import me.shedaniel.autoconfig.serializer.Toml4jConfigSerializer; import net.minecraft.ChatFormatting; import net.minecraft.advancements.Advancement; import net.minecraft.advancements.CriteriaTriggers; -import net.minecraft.client.Minecraft; -import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; @@ -25,11 +23,7 @@ import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.BlockHitResult; import net.minecraftforge.client.event.ClientChatEvent; -import net.minecraftforge.client.event.RenderHighlightEvent; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.AttachCapabilitiesEvent; import net.minecraftforge.event.ServerChatEvent; @@ -46,18 +40,19 @@ import net.minecraftforge.fml.loading.FMLEnvironment; import net.minecraftforge.network.PacketDistributor; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; -import net.montoyo.wd.block.BlockScreen; +import net.montoyo.wd.client.ClientProxy; import net.montoyo.wd.config.ModConfig; import net.montoyo.wd.controls.ScreenControlRegistry; import net.montoyo.wd.core.*; -import net.montoyo.wd.entity.TileEntityScreen; import net.montoyo.wd.init.BlockInit; import net.montoyo.wd.init.ItemInit; import net.montoyo.wd.init.TileInit; import net.montoyo.wd.miniserv.server.Server; import net.montoyo.wd.net.WDNetworkRegistry; import net.montoyo.wd.net.client_bound.S2CMessageServerInfo; -import net.montoyo.wd.utilities.*; +import net.montoyo.wd.utilities.DistSafety; +import net.montoyo.wd.utilities.Log; +import net.montoyo.wd.utilities.Util; import java.io.*; import java.net.MalformedURLException; @@ -172,7 +167,10 @@ public class WebDisplays { ItemInit.registerComponents(); TileInit.init(bus); - MinecraftForge.EVENT_BUS.addListener(WebDisplays::onDrawSelection); + if (FMLEnvironment.dist.isClient()) { + // proxies are annoying, so from now on, I'mma be just registering stuff in here + MinecraftForge.EVENT_BUS.addListener(ClientProxy::onDrawSelection); + } PROXY.preInit(); @@ -199,30 +197,6 @@ public class WebDisplays { ScreenControlRegistry.init(); } } - - private static void onDrawSelection(RenderHighlightEvent event) { - if (event.getTarget() instanceof BlockHitResult bhr) { - BlockState state = Minecraft.getInstance().level.getBlockState(bhr.getBlockPos()); - if (state.getBlock() instanceof BlockScreen screen) { - Vector3i vec = new Vector3i(bhr.getBlockPos().getX(), bhr.getBlockPos().getY(), bhr.getBlockPos().getZ()); - BlockSide side = BlockSide.fromInt(bhr.getDirection().ordinal()); - Multiblock.findOrigin( - Minecraft.getInstance().level, vec, - side, null - ); - - BlockPos pos = new BlockPos(vec.x, vec.y, vec.z); - BlockEntity be = Minecraft.getInstance().level.getBlockEntity( - pos - ); - if (be instanceof TileEntityScreen tes) { - if (tes.getScreen(side) != null) { - event.setCanceled(true); - } - } - } - } - } @SubscribeEvent public static void onAttachPlayerCap(AttachCapabilitiesEvent event) { diff --git a/src/main/java/net/montoyo/wd/client/ClientProxy.java b/src/main/java/net/montoyo/wd/client/ClientProxy.java index 6e2b715..55d5c62 100644 --- a/src/main/java/net/montoyo/wd/client/ClientProxy.java +++ b/src/main/java/net/montoyo/wd/client/ClientProxy.java @@ -34,6 +34,8 @@ import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.ClipContext; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.HitResult; import net.minecraft.world.phys.Vec3; @@ -41,6 +43,7 @@ import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.client.event.ModelEvent; import net.minecraftforge.client.event.RenderHandEvent; +import net.minecraftforge.client.event.RenderHighlightEvent; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.TickEvent; import net.minecraftforge.event.level.LevelEvent; @@ -80,7 +83,7 @@ import java.util.stream.Stream; @Mod.EventBusSubscriber(modid = "webdisplays", value = Dist.CLIENT, bus = Mod.EventBusSubscriber.Bus.MOD) public class ClientProxy extends SharedProxy implements IDisplayHandler, IJSQueryHandler, ResourceManagerReloadListener { - + public class PadData { public IBrowser view; @@ -608,7 +611,7 @@ public class ClientProxy extends SharedProxy implements IDisplayHandler, IJSQuer //Laser pointer raycast if(mc.player != null && mc.level != null && ItemInit.itemLaserPointer.isPresent() && mc.player.getItemInHand(InteractionHand.MAIN_HAND).getItem().equals(ItemInit.itemLaserPointer.get()) && mc.options.keyUse.isDown() - && (mc.hitResult == null || mc.hitResult.getType() == HitResult.Type.BLOCK)) { + && (mc.hitResult == null || mc.hitResult.getType() == HitResult.Type.BLOCK || mc.hitResult.getType() == HitResult.Type.MISS)) { laserPointerRenderer.isOn = true; BlockHitResult result = raycast(64.0); //TODO: Make that distance configurable @@ -669,8 +672,9 @@ public class ClientProxy extends SharedProxy implements IDisplayHandler, IJSQuer if (ev.getHand() == InteractionHand.OFF_HAND) handSide = handSide.getOpposite(); - renderer.render(ev.getPoseStack(), ev.getItemStack(), (handSide == HumanoidArm.RIGHT) ? 1.0f : -1.0f, ev.getSwingProgress(), ev.getEquipProgress(), ev.getMultiBufferSource(), ev.getPackedLight()); - ev.setCanceled(true); + if (renderer.render(ev.getPoseStack(), ev.getItemStack(), (handSide == HumanoidArm.RIGHT) ? 1.0f : -1.0f, ev.getSwingProgress(), ev.getEquipProgress(), ev.getMultiBufferSource(), ev.getPackedLight())) { + ev.setCanceled(true); + } } } @@ -806,4 +810,28 @@ public class ClientProxy extends SharedProxy implements IDisplayHandler, IJSQuer if (senderLevel == null) return Minecraft.getInstance().level; return senderLevel; } + + public static void onDrawSelection(RenderHighlightEvent event) { + if (event.getTarget() instanceof BlockHitResult bhr) { + BlockState state = Minecraft.getInstance().level.getBlockState(bhr.getBlockPos()); + if (state.getBlock() instanceof BlockScreen screen) { + Vector3i vec = new Vector3i(bhr.getBlockPos().getX(), bhr.getBlockPos().getY(), bhr.getBlockPos().getZ()); + BlockSide side = BlockSide.fromInt(bhr.getDirection().ordinal()); + Multiblock.findOrigin( + Minecraft.getInstance().level, vec, + side, null + ); + + BlockPos pos = new BlockPos(vec.x, vec.y, vec.z); + BlockEntity be = Minecraft.getInstance().level.getBlockEntity( + pos + ); + if (be instanceof TileEntityScreen tes) { + if (tes.getScreen(side) != null) { + event.setCanceled(true); + } + } + } + } + } } diff --git a/src/main/java/net/montoyo/wd/client/gui/GuiMinePad.java b/src/main/java/net/montoyo/wd/client/gui/GuiMinePad.java index 7b3c76c..b1227f4 100644 --- a/src/main/java/net/montoyo/wd/client/gui/GuiMinePad.java +++ b/src/main/java/net/montoyo/wd/client/gui/GuiMinePad.java @@ -184,7 +184,6 @@ public class GuiMinePad extends WDScreen { pad.view.injectMouseMove(sx, sy, 0, sy < 0); else pad.view.injectMouseButton(sx, sy, 0, btn + 1, pressed, 1); - } } diff --git a/src/main/java/net/montoyo/wd/client/gui/GuiScreenConfig.java b/src/main/java/net/montoyo/wd/client/gui/GuiScreenConfig.java index ee69954..b1057b9 100644 --- a/src/main/java/net/montoyo/wd/client/gui/GuiScreenConfig.java +++ b/src/main/java/net/montoyo/wd/client/gui/GuiScreenConfig.java @@ -20,6 +20,7 @@ import net.montoyo.wd.item.WDItem; import net.montoyo.wd.net.WDNetworkRegistry; import net.montoyo.wd.net.server_bound.C2SMessageScreenCtrl; import net.montoyo.wd.utilities.*; +import org.lwjgl.glfw.GLFW; import javax.annotation.Nullable; import java.util.ArrayList; @@ -502,5 +503,16 @@ public class GuiScreenConfig extends WDScreen { return "Screen_Configurator"; } + + // reason: allow closing the UI, lol + @Override + public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + if (keyCode == GLFW.GLFW_KEY_ESCAPE) { + Minecraft.getInstance().setScreen(null); + return true; + } + + return super.keyPressed(keyCode, scanCode, modifiers); + } } diff --git a/src/main/java/net/montoyo/wd/client/gui/WDScreen.java b/src/main/java/net/montoyo/wd/client/gui/WDScreen.java index 15bfbcc..939b626 100644 --- a/src/main/java/net/montoyo/wd/client/gui/WDScreen.java +++ b/src/main/java/net/montoyo/wd/client/gui/WDScreen.java @@ -136,8 +136,13 @@ public abstract class WDScreen extends Screen { public boolean mouseClicked(double mouseX, double mouseY, int button) { boolean clicked = false; - for(Control ctrl: controls) - clicked = clicked || ctrl.mouseClicked(mouseX, mouseY, button); + for(Control ctrl: controls) { + clicked = ctrl.mouseClicked(mouseX, mouseY, button); + if (clicked) { + System.out.println(ctrl); + } + if (clicked) break; // don't assume the compiler will optimize stuff + } return clicked; } diff --git a/src/main/java/net/montoyo/wd/client/gui/controls/CheckBox.java b/src/main/java/net/montoyo/wd/client/gui/controls/CheckBox.java index 9d7c9f9..092df44 100644 --- a/src/main/java/net/montoyo/wd/client/gui/controls/CheckBox.java +++ b/src/main/java/net/montoyo/wd/client/gui/controls/CheckBox.java @@ -66,9 +66,9 @@ public class CheckBox extends BasicControl { checked = !checked; mc.getSoundManager().play(SimpleSoundInstance.forUI(SoundEvents.UI_BUTTON_CLICK, 1.0F)); parent.actionPerformed(new CheckedEvent(this)); + + return true; } - - return true; } return false; diff --git a/src/main/java/net/montoyo/wd/client/gui/controls/Container.java b/src/main/java/net/montoyo/wd/client/gui/controls/Container.java index eeb8ce9..ac736f8 100644 --- a/src/main/java/net/montoyo/wd/client/gui/controls/Container.java +++ b/src/main/java/net/montoyo/wd/client/gui/controls/Container.java @@ -8,7 +8,6 @@ import com.mojang.blaze3d.vertex.PoseStack; import net.montoyo.wd.client.gui.loading.GuiLoader; import net.montoyo.wd.client.gui.loading.JsonAWrapper; import net.montoyo.wd.client.gui.loading.JsonOWrapper; -import org.lwjgl.opengl.GL11; import java.util.ArrayList; @@ -67,8 +66,10 @@ public abstract class Container extends BasicControl { mouseX -= x + paddingX; mouseY -= y + paddingY; - for(Control ctrl : childs) - clicked = clicked || ctrl.mouseClicked(mouseX, mouseY, mouseButton); + for(Control ctrl : childs) { + clicked = ctrl.mouseClicked(mouseX, mouseY, mouseButton); + if (clicked) break; // don't assume compiler optimizations + } } return clicked; diff --git a/src/main/java/net/montoyo/wd/client/gui/controls/List.java b/src/main/java/net/montoyo/wd/client/gui/controls/List.java index 8c4c382..10bea8c 100644 --- a/src/main/java/net/montoyo/wd/client/gui/controls/List.java +++ b/src/main/java/net/montoyo/wd/client/gui/controls/List.java @@ -13,7 +13,8 @@ import net.montoyo.wd.client.gui.loading.JsonOWrapper; import java.util.ArrayList; -import static org.lwjgl.opengl.GL11.*; +import static org.lwjgl.opengl.GL11.GL_COLOR_BUFFER_BIT; +import static org.lwjgl.opengl.GL11.GL_NEAREST; public class List extends BasicControl { @@ -240,13 +241,16 @@ public class List extends BasicControl { if(isInScrollbar(mouseX, mouseY)) { scrolling = true; scrollGrab = mouseY - (y + 1 + scrollPos); - } else if(selected >= 0) - parent.actionPerformed(new EntryClick(this)); + return true; + } else if(selected >= 0) { + System.out.println(parent.actionPerformed(new EntryClick(this))); + return true; + } - return true; + return false; } - return true; + return false; } @Override diff --git a/src/main/java/net/montoyo/wd/client/gui/controls/UpgradeGroup.java b/src/main/java/net/montoyo/wd/client/gui/controls/UpgradeGroup.java index a6af41a..ffcbb14 100644 --- a/src/main/java/net/montoyo/wd/client/gui/controls/UpgradeGroup.java +++ b/src/main/java/net/montoyo/wd/client/gui/controls/UpgradeGroup.java @@ -8,7 +8,6 @@ import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.entity.ItemRenderer; import net.minecraft.world.item.ItemStack; -import net.minecraftforge.eventbus.api.IEventBus; import net.montoyo.wd.client.gui.loading.JsonOWrapper; import java.util.ArrayList; @@ -103,9 +102,15 @@ public class UpgradeGroup extends BasicControl { @Override public boolean mouseClicked(double mouseX, double mouseY, int mouseButton) { if(mouseButton == 0) { - clickStack = overStack; - - return true; + // don't process the click if it's not inbounds, lol + if ( + mouseX >= x && mouseX <= x + width && + mouseY >= y && mouseX <= y + height + ) { + clickStack = overStack; + + return true; + } } return false; diff --git a/src/main/java/net/montoyo/wd/client/renderers/IItemRenderer.java b/src/main/java/net/montoyo/wd/client/renderers/IItemRenderer.java index 4d2c2c4..0e8adec 100644 --- a/src/main/java/net/montoyo/wd/client/renderers/IItemRenderer.java +++ b/src/main/java/net/montoyo/wd/client/renderers/IItemRenderer.java @@ -9,7 +9,17 @@ import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.world.item.ItemStack; public interface IItemRenderer { - - void render(PoseStack stack, ItemStack is, float handSideSign, float swingProgress, float equipProgress, MultiBufferSource multiBufferSource, int packedLight); - + + /** + * @param pose the pose stack + * @param stack the item stack + * @param handSideSign TODO: + * @param swingProgress TODO: + * @param equipProgress TODO: + * @param multiBufferSource the buffer source + * @param packedLight packed light + * @return whether or not to cancel vanilla rendering + */ + boolean render(PoseStack pose, ItemStack stack, float handSideSign, float swingProgress, float equipProgress, MultiBufferSource multiBufferSource, int packedLight); + } diff --git a/src/main/java/net/montoyo/wd/client/renderers/LaserPointerRenderer.java b/src/main/java/net/montoyo/wd/client/renderers/LaserPointerRenderer.java index 42522c1..86e10c2 100644 --- a/src/main/java/net/montoyo/wd/client/renderers/LaserPointerRenderer.java +++ b/src/main/java/net/montoyo/wd/client/renderers/LaserPointerRenderer.java @@ -23,7 +23,7 @@ public final class LaserPointerRenderer implements IItemRenderer { public LaserPointerRenderer() {} @Override - public void render(PoseStack poseStack, ItemStack is, float handSideSign, float swingProgress, float equipProgress, MultiBufferSource multiBufferSource, int packedLight) { + public boolean render(PoseStack poseStack, ItemStack is, float handSideSign, float swingProgress, float equipProgress, MultiBufferSource multiBufferSource, int packedLight) { RenderSystem.disableCull(); RenderSystem.disableTexture(); RenderSystem.enableDepthTest(); @@ -78,6 +78,8 @@ public final class LaserPointerRenderer implements IItemRenderer { RenderSystem.enableTexture(); //Fix for shitty minecraft fire RenderSystem.enableCull(); poseStack.popPose(); + + return true; } private static void drawLineBetween(BufferBuilder bb, Matrix4f matrix, Vec3 local, Vec3 target) diff --git a/src/main/java/net/montoyo/wd/client/renderers/MinePadRenderer.java b/src/main/java/net/montoyo/wd/client/renderers/MinePadRenderer.java index a6b849e..1677aec 100644 --- a/src/main/java/net/montoyo/wd/client/renderers/MinePadRenderer.java +++ b/src/main/java/net/montoyo/wd/client/renderers/MinePadRenderer.java @@ -45,7 +45,7 @@ public final class MinePadRenderer implements IItemRenderer { // } @Override - public final void render(PoseStack stack, ItemStack is, float handSideSign, float swingProgress, float equipProgress, MultiBufferSource multiBufferSource, int packedLight) { + public final boolean render(PoseStack stack, ItemStack is, float handSideSign, float swingProgress, float equipProgress, MultiBufferSource multiBufferSource, int packedLight) { //Pre-compute values float sqrtSwingProg = (float) Math.sqrt(swingProgress); sinSqrtSwingProg1 = (float) Math.sin(sqrtSwingProg * PI); @@ -97,6 +97,8 @@ public final class MinePadRenderer implements IItemRenderer { stack.popPose(); RenderSystem.enableCull(); + + return false; } private void renderArmFirstPerson(PoseStack stack, MultiBufferSource buffer, int combinedLight, float equipProgress, float handSideSign) { diff --git a/src/main/java/net/montoyo/wd/controls/builtin/LaserControl.java b/src/main/java/net/montoyo/wd/controls/builtin/LaserControl.java index be3a93e..4449150 100644 --- a/src/main/java/net/montoyo/wd/controls/builtin/LaserControl.java +++ b/src/main/java/net/montoyo/wd/controls/builtin/LaserControl.java @@ -18,7 +18,7 @@ import java.util.function.Function; public class LaserControl extends ScreenControl { public static final ResourceLocation id = new ResourceLocation("webdisplays:laser"); - public static enum ControlType { + public enum ControlType { MOVE, DOWN, UP } diff --git a/src/main/java/net/montoyo/wd/controls/builtin/ManageRightsAndUpdgradesControl.java b/src/main/java/net/montoyo/wd/controls/builtin/ManageRightsAndUpdgradesControl.java index 786ea48..bc289e5 100644 --- a/src/main/java/net/montoyo/wd/controls/builtin/ManageRightsAndUpdgradesControl.java +++ b/src/main/java/net/montoyo/wd/controls/builtin/ManageRightsAndUpdgradesControl.java @@ -23,7 +23,7 @@ import java.util.function.Function; public class ManageRightsAndUpdgradesControl extends ScreenControl { public static final ResourceLocation id = new ResourceLocation("webdisplays:mod_rights_upgrades"); - public static enum ControlType { + public enum ControlType { RIGHTS, UPGRADES } @@ -41,6 +41,7 @@ public class ManageRightsAndUpdgradesControl extends ScreenControl { public ManageRightsAndUpdgradesControl(int friendRights, int otherRights) { super(id); + type = ControlType.RIGHTS; this.friendRights = friendRights; this.otherRights = otherRights; } diff --git a/src/main/java/net/montoyo/wd/controls/builtin/ScreenModifyControl.java b/src/main/java/net/montoyo/wd/controls/builtin/ScreenModifyControl.java index b63a673..b3a3243 100644 --- a/src/main/java/net/montoyo/wd/controls/builtin/ScreenModifyControl.java +++ b/src/main/java/net/montoyo/wd/controls/builtin/ScreenModifyControl.java @@ -19,7 +19,7 @@ import java.util.function.Function; public class ScreenModifyControl extends ScreenControl { public static final ResourceLocation id = new ResourceLocation("webdisplays:mod_screen"); - public static enum ControlType { + public enum ControlType { RESOLUTION, ROTATION } diff --git a/src/main/java/net/montoyo/wd/item/ItemScreenConfigurator.java b/src/main/java/net/montoyo/wd/item/ItemScreenConfigurator.java index bef864f..3491625 100644 --- a/src/main/java/net/montoyo/wd/item/ItemScreenConfigurator.java +++ b/src/main/java/net/montoyo/wd/item/ItemScreenConfigurator.java @@ -6,7 +6,6 @@ package net.montoyo.wd.item; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.InteractionResult; -import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.UseOnContext; @@ -20,9 +19,6 @@ import net.montoyo.wd.utilities.Multiblock; import net.montoyo.wd.utilities.Util; import net.montoyo.wd.utilities.Vector3i; import org.jetbrains.annotations.NotNull; -import org.lwjgl.system.CallbackI; - -import javax.annotation.Nonnull; public class ItemScreenConfigurator extends Item implements WDItem { @@ -42,7 +38,7 @@ public class ItemScreenConfigurator extends Item implements WDItem { return InteractionResult.SUCCESS; Vector3i origin = new Vector3i(context.getClickedPos()); - BlockSide side = BlockSide.values()[context.getHorizontalDirection().ordinal()]; + BlockSide side = BlockSide.values()[context.getHorizontalDirection().getOpposite().ordinal()]; Multiblock.findOrigin(context.getLevel(), origin, side, null); BlockEntity te = context.getLevel().getBlockEntity(origin.toBlock()); diff --git a/src/main/resources/assets/webdisplays/models/item/minepad.json b/src/main/resources/assets/webdisplays/models/item/minepad.json index d7bb72d..b49bd20 100644 --- a/src/main/resources/assets/webdisplays/models/item/minepad.json +++ b/src/main/resources/assets/webdisplays/models/item/minepad.json @@ -1,56 +1 @@ -{ - "credit": "Made with Blockbench", - "texture_size": [64, 32], - "textures": { - "0": "webdisplays:models/minepad" - }, - "elements": [ - { - "from": [1, 0, 0], - "to": [15, 1, 9], - "rotation": {"angle": 0, "axis": "y", "origin": [1, 0, 3.5]}, - "faces": { - "north": {"uv": [2.25, 4.5, 5.75, 5], "texture": "#0"}, - "east": {"uv": [0, 4.5, 2.25, 5], "texture": "#0"}, - "south": {"uv": [8, 4.5, 11.5, 5], "texture": "#0"}, - "west": {"uv": [5.75, 4.5, 8, 5], "texture": "#0"}, - "up": {"uv": [5.75, 4.5, 2.25, 0], "texture": "#0"}, - "down": {"uv": [9.25, 0, 5.75, 4.5], "texture": "#0"} - } - }, - { - "from": [0, 0, 1], - "to": [1, 1, 8], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 4.5]}, - "faces": { - "north": {"uv": [1.75, 8.5, 2, 9], "texture": "#0"}, - "east": {"uv": [0, 8.5, 1.75, 9], "texture": "#0"}, - "south": {"uv": [3.75, 8.5, 4, 9], "texture": "#0"}, - "west": {"uv": [2, 8.5, 3.75, 9], "texture": "#0"}, - "up": {"uv": [2, 8.5, 1.75, 5], "texture": "#0"}, - "down": {"uv": [2.25, 5, 2, 8.5], "texture": "#0"} - } - }, - { - "from": [15, 0, 1], - "to": [16, 1, 8], - "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 4.5]}, - "faces": { - "north": {"uv": [9.25, 8.5, 9.5, 9], "texture": "#0"}, - "east": {"uv": [7.5, 8.5, 9.25, 9], "texture": "#0"}, - "south": {"uv": [11.25, 8.5, 11.5, 9], "texture": "#0"}, - "west": {"uv": [9.5, 8.5, 11.25, 9], "texture": "#0"}, - "up": {"uv": [9.5, 8.5, 9.25, 5], "texture": "#0"}, - "down": {"uv": [9.75, 5, 9.5, 8.5], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "bone", - "origin": [0, 0, 0], - "color": 0, - "children": [0, 1, 2] - } - ] -} \ No newline at end of file +{"credit":"Made with Blockbench","texture_size":[64,32],"textures":{"0":"webdisplays:models/minepad"},"elements":[{"from":[1,0,0],"to":[15,1,9],"rotation":{"angle":0,"axis":"y","origin":[1,0,3.5]},"faces":{"north":{"uv":[2.25,4.5,5.75,5],"texture":"#0"},"east":{"uv":[0,4.5,2.25,5],"texture":"#0"},"south":{"uv":[8,4.5,11.5,5],"texture":"#0"},"west":{"uv":[5.75,4.5,8,5],"texture":"#0"},"up":{"uv":[5.75,4.5,2.25,0],"texture":"#0"},"down":{"uv":[9.25,0,5.75,4.5],"texture":"#0"}}},{"from":[0,0,1],"to":[1,1,8],"rotation":{"angle":0,"axis":"y","origin":[0,0,4.5]},"faces":{"north":{"uv":[1.75,8.5,2,9],"texture":"#0"},"east":{"uv":[0,8.5,1.75,9],"texture":"#0"},"south":{"uv":[3.75,8.5,4,9],"texture":"#0"},"west":{"uv":[2,8.5,3.75,9],"texture":"#0"},"up":{"uv":[2,8.5,1.75,5],"texture":"#0"},"down":{"uv":[2.25,5,2,8.5],"texture":"#0"}}},{"from":[15,0,1],"to":[16,1,8],"rotation":{"angle":0,"axis":"y","origin":[15,0,4.5]},"faces":{"north":{"uv":[9.25,8.5,9.5,9],"texture":"#0"},"east":{"uv":[7.5,8.5,9.25,9],"texture":"#0"},"south":{"uv":[11.25,8.5,11.5,9],"texture":"#0"},"west":{"uv":[9.5,8.5,11.25,9],"texture":"#0"},"up":{"uv":[9.5,8.5,9.25,5],"texture":"#0"},"down":{"uv":[9.75,5,9.5,8.5],"texture":"#0"}}}],"display":{"thirdperson_righthand":{"rotation":[95.5,-180,0],"translation":[0,6.75,9]},"thirdperson_lefthand":{"rotation":[95.5,-180,0],"translation":[0,6.75,9]},"ground":{"rotation":[-90,0,0],"translation":[0,11.5,-7.6]},"gui":{"rotation":[90,0,0],"translation":[0,-3.5,0]},"head":{"rotation":[-90,0,0],"translation":[0,14.25,-0.75]},"fixed":{"rotation":[-90,0,0],"translation":[0,0,-7.5]}},"groups":[{"name":"bone","origin":[0,0,0],"color":0,"children":[0,1,2]}]} \ No newline at end of file