From be68ca40f001703c9ef70ef482a7b9ea6b033c4b Mon Sep 17 00:00:00 2001 From: GiantLuigi4 <49770992+GiantLuigi4@users.noreply.github.com> Date: Thu, 8 Jun 2023 14:01:15 -0400 Subject: [PATCH] more refactoring --- src/main/java/net/montoyo/wd/WebDisplays.java | 6 +- .../net/montoyo/wd/client/ClientProxy.java | 10 +-- .../renderers/LaserPointerRenderer.java | 2 +- .../net/montoyo/wd/core/CraftComponent.java | 5 +- .../net/montoyo/wd/core/DefaultUpgrade.java | 23 +++--- .../montoyo/wd/entity/TileEntityScreen.java | 2 +- .../java/net/montoyo/wd/init/ItemInit.java | 71 +++++++++++-------- .../java/net/montoyo/wd/item/ItemUpgrade.java | 25 ++++--- .../montoyo/wd/mixins/MouseHandlerMixin.java | 2 +- 9 files changed, 80 insertions(+), 66 deletions(-) diff --git a/src/main/java/net/montoyo/wd/WebDisplays.java b/src/main/java/net/montoyo/wd/WebDisplays.java index ac9a9bb..cd37441 100644 --- a/src/main/java/net/montoyo/wd/WebDisplays.java +++ b/src/main/java/net/montoyo/wd/WebDisplays.java @@ -142,8 +142,6 @@ public class WebDisplays { onRegisterSounds(); BlockInit.init(bus); ItemInit.init(bus); - ItemInit.registerUpgrade(); - ItemInit.registerComponents(); TileInit.init(bus); PROXY.preInit(); @@ -264,7 +262,7 @@ public class WebDisplays { if(!ev.getEntity().getLevel().isClientSide) { ItemStack is = ev.getEntity().getItem(); - if(is.getItem() == ItemInit.itemMinePad.get()) { + if(is.getItem() == ItemInit.MINEPAD.get()) { CompoundTag tag = is.getTag(); if(tag == null) { @@ -282,7 +280,7 @@ public class WebDisplays { @SubscribeEvent public void onPlayerCraft(PlayerEvent.ItemCraftedEvent ev) { - if(CommonConfig.hardRecipes && ev.getCrafting().getItem() == ItemInit.itemCraftComp.get() && (CraftComponent.EXTCARD.makeItemStack().is(ev.getCrafting().getItem()))) { + if(CommonConfig.hardRecipes && ItemInit.isCompCraftItem(ev.getCrafting().getItem()) && (CraftComponent.EXTCARD.makeItemStack().is(ev.getCrafting().getItem()))) { if((ev.getEntity() instanceof ServerPlayer && !hasPlayerAdvancement((ServerPlayer) ev.getEntity(), ADV_PAD_BREAK)) || PROXY.hasClientPlayerAdvancement(ADV_PAD_BREAK) != HasAdvancement.YES) { ev.getCrafting().setDamageValue(CraftComponent.BADEXTCARD.ordinal()); diff --git a/src/main/java/net/montoyo/wd/client/ClientProxy.java b/src/main/java/net/montoyo/wd/client/ClientProxy.java index d5acd57..b7e414a 100644 --- a/src/main/java/net/montoyo/wd/client/ClientProxy.java +++ b/src/main/java/net/montoyo/wd/client/ClientProxy.java @@ -758,10 +758,10 @@ public class ClientProxy extends SharedProxy implements IDisplayHandler, IJSQuer Item item = ev.getItemStack().getItem(); IItemRenderer renderer; - if(ItemInit.itemMinePad.isPresent() && ItemInit.itemLaserPointer.isPresent()) { - if (item == ItemInit.itemMinePad.get()) + if(ItemInit.MINEPAD.isPresent() && ItemInit.LASER_POINTER.isPresent()) { + if (item == ItemInit.MINEPAD.get()) renderer = minePadRenderer; - else if (item == ItemInit.itemLaserPointer.get()) + else if (item == ItemInit.LASER_POINTER.get()) renderer = laserPointerRenderer; else return; @@ -801,8 +801,8 @@ public class ClientProxy extends SharedProxy implements IDisplayHandler, IJSQuer for (int i = 0; i < cnt; i++) { ItemStack item = inv.get(i); - if (ItemInit.itemMinePad.isPresent()) { - if (item.getItem() == ItemInit.itemMinePad.get()) { + if (ItemInit.MINEPAD.isPresent()) { + if (item.getItem() == ItemInit.MINEPAD.get()) { CompoundTag tag = item.getTag(); if (tag != null && tag.contains("PadID")) 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 ad87fb0..c894ddd 100644 --- a/src/main/java/net/montoyo/wd/client/renderers/LaserPointerRenderer.java +++ b/src/main/java/net/montoyo/wd/client/renderers/LaserPointerRenderer.java @@ -38,7 +38,7 @@ public final class LaserPointerRenderer implements IItemRenderer { ClientProxy.mouseOn || ItemLaserPointer.isOn() ) && - mc.player.getItemInHand(InteractionHand.MAIN_HAND).getItem().equals(ItemInit.itemLaserPointer.get()) && + mc.player.getItemInHand(InteractionHand.MAIN_HAND).getItem().equals(ItemInit.LASER_POINTER.get()) && (mc.hitResult == null || mc.hitResult.getType() == HitResult.Type.BLOCK || mc.hitResult.getType() == HitResult.Type.MISS); } diff --git a/src/main/java/net/montoyo/wd/core/CraftComponent.java b/src/main/java/net/montoyo/wd/core/CraftComponent.java index 8ad332f..53544a8 100644 --- a/src/main/java/net/montoyo/wd/core/CraftComponent.java +++ b/src/main/java/net/montoyo/wd/core/CraftComponent.java @@ -5,11 +5,9 @@ package net.montoyo.wd.core; import net.minecraft.world.item.ItemStack; -import net.montoyo.wd.WebDisplays; import net.montoyo.wd.init.ItemInit; public enum CraftComponent { - STONEKEY("stonekey", "StoneKey"), UPGRADE("upgrade", "Upgrade"), PERIPHERAL("peripheral", "Peripheral"), @@ -34,7 +32,6 @@ public enum CraftComponent { } public ItemStack makeItemStack() { - return new ItemStack(ItemInit.itemCraftComp.get(), 1); + return new ItemStack(ItemInit.getComputerCraftItem(ordinal()).get(), 1); } - } diff --git a/src/main/java/net/montoyo/wd/core/DefaultUpgrade.java b/src/main/java/net/montoyo/wd/core/DefaultUpgrade.java index b06c424..064e74a 100644 --- a/src/main/java/net/montoyo/wd/core/DefaultUpgrade.java +++ b/src/main/java/net/montoyo/wd/core/DefaultUpgrade.java @@ -5,17 +5,16 @@ package net.montoyo.wd.core; import net.minecraft.world.item.ItemStack; -import net.montoyo.wd.init.ItemInit; +import net.montoyo.wd.item.ItemUpgrade; public enum DefaultUpgrade { - LASERMOUSE("lasermouse", "LaserMouse"), REDINPUT("redinput", "RedInput"), REDOUTPUT("redoutput", "RedOutput"), GPS("gps", "GPS"); - - private final String name; - private final String wikiName; + + public final String name; + public final String wikiName; DefaultUpgrade(String n, String wn) { name = n; @@ -27,19 +26,25 @@ public enum DefaultUpgrade { return name; } + protected static boolean matches(ItemStack stack, DefaultUpgrade upgrade) { + if (stack.getItem() instanceof ItemUpgrade upgrade1) + return upgrade1.type == upgrade; + return false; + } + public boolean matchesLaserMouse(ItemStack is) { - return is.getItem() == ItemInit.laserMouse.get(); + return matches(is, LASERMOUSE); } public boolean matchesRedInput(ItemStack is) { - return is.getItem() == ItemInit.redInput.get(); + return matches(is, REDINPUT); } public boolean matchesRedOutput(ItemStack is) { - return is.getItem() == ItemInit.redOutput.get(); + return matches(is, REDOUTPUT); } public boolean matchesGps(ItemStack is) { - return is.getItem() == ItemInit.gps.get(); + return matches(is, GPS); } } diff --git a/src/main/java/net/montoyo/wd/entity/TileEntityScreen.java b/src/main/java/net/montoyo/wd/entity/TileEntityScreen.java index d1c1849..cd54c5f 100644 --- a/src/main/java/net/montoyo/wd/entity/TileEntityScreen.java +++ b/src/main/java/net/montoyo/wd/entity/TileEntityScreen.java @@ -503,7 +503,7 @@ public class TileEntityScreen extends BlockEntity { private static Player getLaserUser(Screen scr) { if (scr.laserUser != null) { - if (scr.laserUser.isRemoved() || !scr.laserUser.getItemInHand(InteractionHand.MAIN_HAND).getItem().equals(ItemInit.itemLaserPointer.get())) + if (scr.laserUser.isRemoved() || !scr.laserUser.getItemInHand(InteractionHand.MAIN_HAND).getItem().equals(ItemInit.LASER_POINTER.get())) scr.laserUser = null; } diff --git a/src/main/java/net/montoyo/wd/init/ItemInit.java b/src/main/java/net/montoyo/wd/init/ItemInit.java index 9c8b91c..ca629e4 100644 --- a/src/main/java/net/montoyo/wd/init/ItemInit.java +++ b/src/main/java/net/montoyo/wd/init/ItemInit.java @@ -7,54 +7,63 @@ 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.block.item.KeyboardItem; import net.montoyo.wd.core.CraftComponent; import net.montoyo.wd.core.DefaultUpgrade; import net.montoyo.wd.item.*; -import java.util.ArrayList; -import java.util.List; import java.util.Locale; +@SuppressWarnings({"unchecked", "unused"}) public class ItemInit{ - public static void init(IEventBus bus) { ITEMS.register(bus); } - public static DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, "webdisplays"); - public static RegistryObject itemCraftComp = null; + public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, "webdisplays"); - public static RegistryObject laserMouse = null; - public static RegistryObject redInput = null; - public static RegistryObject redOutput = null; - public static RegistryObject gps = null; + protected static final RegistryObject[] COMP_CRAFT_ITEMS = new RegistryObject[CraftComponent.values().length]; + protected static final RegistryObject[] UPGRADE_ITEMS = new RegistryObject[DefaultUpgrade.values().length]; - 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("minepad", () -> new ItemMinePad2(new Item.Properties())); - public static final RegistryObject itemLaserPointer = ITEMS.register("laserpointer", () -> new ItemLaserPointer(new Item.Properties())); + public static final RegistryObject CONFIGURATOR = ITEMS.register("screencfg", () -> new ItemScreenConfigurator(new Item.Properties())); + public static final RegistryObject OWNERSHIP_THEIF = ITEMS.register("ownerthief", () -> new ItemOwnershipThief(new Item.Properties())); + public static final RegistryObject LINKER = ITEMS.register("linker", () -> new ItemLinker(new Item.Properties())); + public static final RegistryObject MINEPAD = ITEMS.register("minepad", () -> new ItemMinePad2(new Item.Properties())); + public static final RegistryObject LASER_POINTER = ITEMS.register("laserpointer", () -> new ItemLaserPointer(new Item.Properties())); - public static void registerUpgrade() { - laserMouse = ITEMS.register("upgrade_" + DefaultUpgrade.LASERMOUSE.name().toLowerCase(Locale.ROOT), ItemUpgrade::new); - redInput = ITEMS.register("upgrade_" + DefaultUpgrade.REDINPUT.name().toLowerCase(Locale.ROOT), ItemUpgrade::new); - redOutput = ITEMS.register("upgrade_" + DefaultUpgrade.REDOUTPUT.name().toLowerCase(Locale.ROOT), ItemUpgrade::new); - gps = ITEMS.register("upgrade_" + DefaultUpgrade.GPS.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())); + static { + DefaultUpgrade[] defaultUpgrades = DefaultUpgrade.values(); + for (int i = 0; i < defaultUpgrades.length; i++) { + DefaultUpgrade upgrade = defaultUpgrades[i]; + UPGRADE_ITEMS[i] = ITEMS.register("upgrade_" + upgrade.name().toLowerCase(Locale.ROOT), () -> new ItemUpgrade(upgrade)); + } + + CraftComponent[] components = CraftComponent.values(); + for (int i = 0; i < components.length; i++) { + CraftComponent cc = components[i]; + COMP_CRAFT_ITEMS[i] = 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 KeyboardItem(BlockInit.blockKeyBoard.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))); + 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 KeyboardItem(BlockInit.blockKeyBoard.get(), new Item.Properties().tab(WebDisplays.CREATIVE_TAB))); + public static final RegistryObject REDSTONE_CONTROLLER = ITEMS.register("redctrl", () -> new BlockItem(BlockInit.blockRedControl.get(), new Item.Properties().tab(WebDisplays.CREATIVE_TAB))); + public static final RegistryObject REMOTE_CONTROLLER = 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))); + + public static RegistryObject getComputerCraftItem(int index) { + return COMP_CRAFT_ITEMS[index]; + } + + public static RegistryObject getUpgradeItem(int index) { + return UPGRADE_ITEMS[index]; + } + + public static boolean isCompCraftItem(Item item) { + for (RegistryObject itemRegistryObject : COMP_CRAFT_ITEMS) + if (item == itemRegistryObject.get()) + return true; + return false; + } } diff --git a/src/main/java/net/montoyo/wd/item/ItemUpgrade.java b/src/main/java/net/montoyo/wd/item/ItemUpgrade.java index 76fb9e1..c3d609b 100644 --- a/src/main/java/net/montoyo/wd/item/ItemUpgrade.java +++ b/src/main/java/net/montoyo/wd/item/ItemUpgrade.java @@ -5,6 +5,7 @@ package net.montoyo.wd.item; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.montoyo.wd.WebDisplays; import net.montoyo.wd.core.DefaultUpgrade; @@ -17,9 +18,11 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; public class ItemUpgrade extends ItemMulti implements IUpgrade, WDItem { - - public ItemUpgrade() { + public final DefaultUpgrade type; + + public ItemUpgrade(DefaultUpgrade type) { super(DefaultUpgrade.class, new Properties().tab(WebDisplays.CREATIVE_TAB)); + this.type = type; } @Override @@ -36,18 +39,20 @@ public class ItemUpgrade extends ItemMulti implements IUpgrade, WDItem { @Override public boolean isSameUpgrade(@Nonnull ItemStack myStack, @Nonnull ItemStack otherStack) { - return otherStack.getItem() == this; + if (myStack.getItem() instanceof ItemUpgrade upgrade0) { + if (otherStack.getItem() instanceof ItemUpgrade upgrade1) { + return upgrade0.type == upgrade1.type; + } + } + return false; } @Override public String getJSName(@Nonnull ItemStack is) { - ItemStack meta = is; - DefaultUpgrade[] upgrades = DefaultUpgrade.values(); - - if(meta.isEmpty()) - return "webdisplays:wtf"; - else - return "webdisplays:" + is; + Item item = is.getItem(); + if (item instanceof ItemUpgrade upgrade) + return "webdisplays:" + upgrade.type.toString(); + return "webdisplays:null"; } @Override diff --git a/src/main/java/net/montoyo/wd/mixins/MouseHandlerMixin.java b/src/main/java/net/montoyo/wd/mixins/MouseHandlerMixin.java index 5323bf2..7138dc6 100644 --- a/src/main/java/net/montoyo/wd/mixins/MouseHandlerMixin.java +++ b/src/main/java/net/montoyo/wd/mixins/MouseHandlerMixin.java @@ -24,7 +24,7 @@ public class MouseHandlerMixin { if (Minecraft.getInstance().screen == null) { if ( minecraft.player != null && minecraft.level != null && - minecraft.player.getItemInHand(InteractionHand.MAIN_HAND).getItem().equals(ItemInit.itemLaserPointer.get()) && + minecraft.player.getItemInHand(InteractionHand.MAIN_HAND).getItem().equals(ItemInit.LASER_POINTER.get()) && (minecraft.hitResult == null || minecraft.hitResult.getType() == HitResult.Type.BLOCK || minecraft.hitResult.getType() == HitResult.Type.MISS) ) { ItemLaserPointer.press(flag, p_91532_);