From c6f0e4a61ad69e26da37bcdf5b0151e7b848161e Mon Sep 17 00:00:00 2001 From: Leon Date: Fri, 18 Nov 2016 16:08:31 -0500 Subject: [PATCH] Fixes and whatnot --- .../net/machinemuse/api/ModuleManager.java | 8 +- .../gui/frame/ModuleSelectionFrame.java | 2 +- .../powersuits/common/proxy/ClientProxy.java | 2 + .../powersuits/control/KeybindKeyHandler.java | 14 +- .../item/IModeChangingModularItem.java | 56 +++-- .../powersuits/item/ItemPowerFist.java | 154 +++++++------ .../item/ModeChangingModularItem.java | 218 +++++++++--------- .../packets/MusePacketCosmeticInfo.java | 1 + .../packets/MusePacketInventoryRefresh.java | 3 + .../machinemuse/utils/MuseCommonStrings.java | 2 +- .../net/machinemuse/utils/MuseItemUtils.java | 2 +- 11 files changed, 248 insertions(+), 214 deletions(-) diff --git a/src/main/java/net/machinemuse/api/ModuleManager.java b/src/main/java/net/machinemuse/api/ModuleManager.java index 5f05b0b..5febe99 100644 --- a/src/main/java/net/machinemuse/api/ModuleManager.java +++ b/src/main/java/net/machinemuse/api/ModuleManager.java @@ -5,7 +5,7 @@ import net.machinemuse.api.moduletrigger.IBlockBreakingModule; import net.machinemuse.api.moduletrigger.IPlayerTickModule; import net.machinemuse.api.moduletrigger.IRightClickModule; import net.machinemuse.api.moduletrigger.IToggleableModule; -import net.machinemuse.powersuits.item.IModeChangingModularItem; +import net.machinemuse.numina.item.IModeChangingItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -82,7 +82,7 @@ public class ModuleManager { return blockBreakingModules; } - public static List getValidModulesForItem(EntityPlayer player, ItemStack stack) { + public static List getValidModulesForItem(ItemStack stack) { List validModules = new ArrayList(); for (IPowerModule module : getAllModules()) { if (module.isValidForItem(stack)) { @@ -143,10 +143,10 @@ public class ModuleManager { // playerEntity.sendChatToPlayer("Server has disallowed this module. Sorry!"); return false; } - if (module instanceof IRightClickModule && itemStack.getItem() instanceof IModeChangingModularItem) { + if (module instanceof IRightClickModule && itemStack.getItem() instanceof IModeChangingItem) { // MuseLogger.logDebug("Module: " + moduleName + " vs Mode: " + // MuseItemUtils.getActiveMode(itemStack)); - IModeChangingModularItem item = (IModeChangingModularItem) itemStack.getItem(); + IModeChangingItem item = (IModeChangingItem) itemStack.getItem(); return moduleName.equals(item.getActiveMode(itemStack)); } else { diff --git a/src/main/java/net/machinemuse/general/gui/frame/ModuleSelectionFrame.java b/src/main/java/net/machinemuse/general/gui/frame/ModuleSelectionFrame.java index 1ba7170..981ae64 100644 --- a/src/main/java/net/machinemuse/general/gui/frame/ModuleSelectionFrame.java +++ b/src/main/java/net/machinemuse/general/gui/frame/ModuleSelectionFrame.java @@ -97,7 +97,7 @@ public class ModuleSelectionFrame extends ScrollableFrame { moduleButtons = new ArrayList<>(); categories = new HashMap<>(); - List workingModules = ModuleManager.getValidModulesForItem(null, selectedItem.getItem()); + List workingModules = ModuleManager.getValidModulesForItem(selectedItem.getItem()); // Prune the list of disallowed modules, if not installed on this // item. diff --git a/src/main/java/net/machinemuse/powersuits/common/proxy/ClientProxy.java b/src/main/java/net/machinemuse/powersuits/common/proxy/ClientProxy.java index c719bd5..48069a8 100644 --- a/src/main/java/net/machinemuse/powersuits/common/proxy/ClientProxy.java +++ b/src/main/java/net/machinemuse/powersuits/common/proxy/ClientProxy.java @@ -91,6 +91,8 @@ public class ClientProxy implements CommonProxy { @Override public void sendModeChange(int dMode, String newMode) { + System.out.println("Sending mode change request"); + EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer; RenderGameOverlayEventHandler.updateSwap((int) Math.signum(dMode)); MusePacket modeChangePacket = new MusePacketModeChangeRequest(player, newMode, player.inventory.currentItem); diff --git a/src/main/java/net/machinemuse/powersuits/control/KeybindKeyHandler.java b/src/main/java/net/machinemuse/powersuits/control/KeybindKeyHandler.java index 9cf1479..358d993 100644 --- a/src/main/java/net/machinemuse/powersuits/control/KeybindKeyHandler.java +++ b/src/main/java/net/machinemuse/powersuits/control/KeybindKeyHandler.java @@ -5,8 +5,8 @@ import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.InputEvent; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.machinemuse.numina.item.ModeChangingItem; import net.machinemuse.powersuits.common.ModularPowersuits; -import net.machinemuse.powersuits.item.ModeChangingModularItem; import net.minecraft.client.Minecraft; import net.minecraft.client.entity.EntityClientPlayerMP; import net.minecraft.client.settings.KeyBinding; @@ -36,11 +36,13 @@ public class KeybindKeyHandler { int key = Keyboard.getEventKey(); boolean pressed = Keyboard.getEventKeyState(); EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer; + // Only activate if there is a player to work with if (player == null) { return; } if (pressed) { + ModeChangingItem mci = new ModeChangingItem(player.inventory.getCurrentItem()); if (key == openKeybindGUI.getKeyCode()) { World world = Minecraft.getMinecraft().theWorld; if (Minecraft.getMinecraft().inGameHasFocus) { @@ -56,14 +58,20 @@ public class KeybindKeyHandler { if (key == goDownKey.getKeyCode()) { PlayerInputMap.getInputMapFor(player.getCommandSenderName()).downKey = true; } + + /* cycleToolBackward/cycleToolForward only seem to be used if actual keys are assinged instead of mousewheel */ if (key == cycleToolBackward.getKeyCode()) { + System.out.println("cycling backward"); + Minecraft.getMinecraft().playerController.updateController(); - ModeChangingModularItem.cycleModeForItem(player.inventory.getStackInSlot(player.inventory.currentItem), player, 1); + mci.cycleMode(player.inventory.getStackInSlot(player.inventory.currentItem), player, 1); } if (key == cycleToolForward.getKeyCode()) { + System.out.println("cycling forward"); + Minecraft.getMinecraft().playerController.updateController(); - ModeChangingModularItem.cycleModeForItem(player.inventory.getStackInSlot(player.inventory.currentItem), player, -1); + mci.cycleMode(player.inventory.getStackInSlot(player.inventory.currentItem), player, -1); } } else { if (Minecraft.getMinecraft().thePlayer != null && key == goDownKey.getKeyCode()) { diff --git a/src/main/java/net/machinemuse/powersuits/item/IModeChangingModularItem.java b/src/main/java/net/machinemuse/powersuits/item/IModeChangingModularItem.java index 61df1f1..ee5cbb1 100644 --- a/src/main/java/net/machinemuse/powersuits/item/IModeChangingModularItem.java +++ b/src/main/java/net/machinemuse/powersuits/item/IModeChangingModularItem.java @@ -1,24 +1,32 @@ -package net.machinemuse.powersuits.item; - -import net.machinemuse.numina.item.IModeChangingItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; - -import java.util.List; - -/** - * Author: MachineMuse (Claire Semple) - * Created: 4:52 PM, 9/5/13 - * - * Ported to Java by lehjr on 11/1/16. - */ -public interface IModeChangingModularItem extends IModeChangingItem{ - IIcon getModeIcon(String mode, ItemStack stack, EntityPlayer player); - - List getValidModes(ItemStack stack, EntityPlayer player); - - List getValidModes(ItemStack stack); - - String getActiveMode(ItemStack stack); -} \ No newline at end of file +//package net.machinemuse.powersuits.item; +// +//import net.machinemuse.numina.item.IModeChangingItem; +//import net.minecraft.entity.player.EntityPlayer; +//import net.minecraft.item.ItemStack; +//import net.minecraft.util.IIcon; +// +//import javax.annotation.Nullable; +//import java.util.List; +// +///** +// * Author: MachineMuse (Claire Semple) +// * Created: 4:52 PM, 9/5/13 +// * +// * Ported to Java by lehjr on 11/1/16. +// */ +//public interface IModeChangingModularItem extends IModeChangingItem { +// @Nullable +// IIcon getModeIcon(String mode, ItemStack stack, EntityPlayer player); +// +// List getValidModes(ItemStack stack); +// +// String getActiveMode(ItemStack stack); +// +// void setActiveMode(ItemStack stack, String newMode) ; +// +// void cycleMode(ItemStack stack, EntityPlayer player, int dMode); +// +// String nextMode(ItemStack stack, EntityPlayer player); +// +// String prevMode(ItemStack stack, EntityPlayer player); +//} \ No newline at end of file diff --git a/src/main/java/net/machinemuse/powersuits/item/ItemPowerFist.java b/src/main/java/net/machinemuse/powersuits/item/ItemPowerFist.java index f9dd445..b8a5948 100644 --- a/src/main/java/net/machinemuse/powersuits/item/ItemPowerFist.java +++ b/src/main/java/net/machinemuse/powersuits/item/ItemPowerFist.java @@ -17,12 +17,14 @@ import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.moduletrigger.IBlockBreakingModule; import net.machinemuse.api.moduletrigger.IRightClickModule; import net.machinemuse.general.gui.MuseIcon; +import net.machinemuse.numina.item.IModeChangingItem; import net.machinemuse.numina.item.ModeChangingItem; import net.machinemuse.powersuits.common.Config; import net.machinemuse.powersuits.powermodule.tool.GrafterModule; import net.machinemuse.powersuits.powermodule.tool.OmniWrenchModule; import net.machinemuse.powersuits.powermodule.weapon.MeleeAssistModule; import net.machinemuse.utils.ElectricItemUtils; +import net.machinemuse.utils.MuseCommonStrings; import net.machinemuse.utils.MuseHeatUtils; import net.minecraft.block.Block; import net.minecraft.client.renderer.texture.IIconRegister; @@ -40,6 +42,7 @@ import net.minecraft.world.World; import powercrystals.minefactoryreloaded.api.IMFRHammer; import javax.annotation.Nullable; +import java.util.ArrayList; import java.util.List; @@ -63,7 +66,7 @@ import java.util.List; @Optional.Interface(iface = "buildcraft.api.tools.IToolWrench", modid = "BuildCraft|Core", striprefs = true), @Optional.Interface(iface = "appeng.api.implementations.items.IAEWrench", modid = "appliedenergistics2", striprefs = true) }) public class ItemPowerFist extends MPSItemElectricTool -implements + implements IToolGrafter, IToolHammer, IMFRHammer, @@ -74,18 +77,24 @@ implements mrtjp.projectred.api.IScrewdriver, ITool, IMekWrench, IModularItem, - IModeChangingModularItem + IModeChangingItem { + private static ModeChangingItem modeChangingItem; + public ItemPowerFist() { super(0.0f, Item.ToolMaterial.EMERALD); -// IModeChangingItem$class.$init$(this); -// IModeChangingModularItem$class.$init$(this); this.setMaxStackSize(1); this.setMaxDamage(0); this.setCreativeTab(Config.getCreativeTab()); this.setUnlocalizedName("powerFist"); } + private ModeChangingItem getModeChangingItem() { + if (this.modeChangingItem == null) + this.modeChangingItem = new ModeChangingItem(this); + return this.modeChangingItem; + } + /** * Returns the strength of the stack against a given block. 1.0F base, * (Quality+1)*2 if correct blocktype, 1.5F if sword @@ -209,11 +218,19 @@ implements */ @Override public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer player) { - for (IRightClickModule module : ModuleManager.getRightClickModules()) { - if (module.isValidForItem(itemStack) && ModuleManager.itemHasActiveModule(itemStack, module.getDataName())) { - module.onRightClick(player, world, itemStack); - } + // Only one right click module should be active at a time. + IPowerModule iPowerModulemodule = ModuleManager.getModule(getActiveMode(itemStack)); + if (iPowerModulemodule instanceof IRightClickModule) { + ((IRightClickModule) iPowerModulemodule).onRightClick(player, world, itemStack); } + +/* Trying to simplify with new code above */ +// for (IRightClickModule module : ModuleManager.getRightClickModules()) { +// if (module.isValidForItem(itemStack) && ModuleManager.itemHasActiveModule(itemStack, module.getDataName())) { +// module.onRightClick(player, world, itemStack); +// return itemStack; +// } +// } return itemStack; } @@ -231,7 +248,7 @@ implements */ @Override public void onPlayerStoppedUsing(ItemStack itemStack, World world, EntityPlayer player, int par4) { - String mode = this.getActiveMode(itemStack, player); + String mode = this.getActiveMode(itemStack); IPowerModule module = ModuleManager.getModule(mode); if (module != null) ((IRightClickModule)module).onPlayerStoppedUsing(itemStack, world, player, par4); @@ -243,39 +260,30 @@ implements @Override public boolean onItemUseFirst( ItemStack itemStack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) { - String mode = this.getActiveMode(itemStack, player); + String mode = this.getActiveMode(itemStack); IPowerModule module = ModuleManager.getModule(mode); return module instanceof IRightClickModule && ((IRightClickModule)module).onItemUseFirst(itemStack, player, world, x, y, z, side, hitX, hitY, hitZ); } @Override public boolean onItemUse( ItemStack itemStack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) { - String mode = this.getActiveMode(itemStack, player); - IPowerModule module2; - IPowerModule module = module2 = ModuleManager.getModule(mode); - boolean b; + String mode = this.getActiveMode(itemStack); + IPowerModule module2; + IPowerModule module = module2 = ModuleManager.getModule(mode); if (module2 instanceof IRightClickModule) { ((IRightClickModule)module2).onItemUse(itemStack, player, world, x, y, z, side, hitX, hitY, hitZ); - b = false; } - else { - b = false; - } - return b; + return false; } @Optional.Method(modid = "Forestry") public float getSaplingModifier(ItemStack stack, World world, EntityPlayer player, int x, int y, int z) { - float n; if (ModuleManager.itemHasActiveModule(stack, GrafterModule.MODULE_GRAFTER)) { ElectricItemUtils.drainPlayerEnergy(player, ModuleManager.computeModularProperty(stack, GrafterModule.GRAFTER_ENERGY_CONSUMPTION)); MuseHeatUtils.heatPlayer(player, ModuleManager.computeModularProperty(stack, GrafterModule.GRAFTER_HEAT_GENERATION)); - n = 100.0f; + return 100.0f; } - else { - n = 0.0f; - } - return n; + return 0.0f; } public boolean canHarvestBlock(ItemStack stack, Block block, int meta, EntityPlayer player) { @@ -294,7 +302,7 @@ implements /* TE Crescent Hammer */ @Override public boolean isUsable(ItemStack itemStack, EntityLivingBase entityLivingBase, int i, int i1, int i2) { - return entityLivingBase instanceof EntityPlayer && this.getActiveMode(itemStack, (EntityPlayer)entityLivingBase).equals(OmniWrenchModule.MODULE_OMNI_WRENCH); + return entityLivingBase instanceof EntityPlayer && this.getActiveMode(itemStack).equals(OmniWrenchModule.MODULE_OMNI_WRENCH); } /* TE Crescent Hammer */ @@ -305,19 +313,19 @@ implements /* Railcraft Crowbar */ @Override public boolean canWhack(EntityPlayer player, ItemStack itemStack, int i, int i1, int i2) { - return this.getActiveMode(itemStack, player).equals(OmniWrenchModule.MODULE_OMNI_WRENCH); + return this.getActiveMode(itemStack).equals(OmniWrenchModule.MODULE_OMNI_WRENCH); } /* Railcraft Crowbar */ @Override public boolean canLink(EntityPlayer player, ItemStack itemStack, EntityMinecart entityMinecart) { - return this.getActiveMode(itemStack, player).equals(OmniWrenchModule.MODULE_OMNI_WRENCH); + return this.getActiveMode(itemStack).equals(OmniWrenchModule.MODULE_OMNI_WRENCH); } /* Railcraft Crowbar */ @Override public boolean canBoost(EntityPlayer player, ItemStack itemStack, EntityMinecart entityMinecart) { - return this.getActiveMode(itemStack, player).equals(OmniWrenchModule.MODULE_OMNI_WRENCH); + return this.getActiveMode(itemStack).equals(OmniWrenchModule.MODULE_OMNI_WRENCH); } /* Railcraft Crowbar */ @@ -338,7 +346,7 @@ implements /* AE wrench */ @Override public boolean canWrench(ItemStack itemStack, EntityPlayer player, int i, int i1, int i2) { - return this.getActiveMode(itemStack, player).equals(OmniWrenchModule.MODULE_OMNI_WRENCH); + return this.getActiveMode(itemStack).equals(OmniWrenchModule.MODULE_OMNI_WRENCH); } /* Buildcraft Wrench */ @@ -349,13 +357,13 @@ implements /* Buildcraft Wrench */ @Override public boolean canWrench(EntityPlayer player, int i, int i1, int i2) { - return this.getActiveMode(player.getHeldItem(), player).equals(OmniWrenchModule.MODULE_OMNI_WRENCH); + return this.getActiveMode(player.getHeldItem()).equals(OmniWrenchModule.MODULE_OMNI_WRENCH); } /* Bluepower Screwdriver */ @Override public boolean damage(ItemStack itemStack, int i, EntityPlayer entityPlayer, boolean b) { - return this.getActiveMode(itemStack, entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH); + return this.getActiveMode(itemStack).equals(OmniWrenchModule.MODULE_OMNI_WRENCH); } /* ProjectRed Screwdriver */ @@ -366,7 +374,7 @@ implements /* ProjectRed Screwdriver */ @Override public boolean canUse(EntityPlayer entityPlayer, ItemStack itemStack) { - return this.getActiveMode(itemStack, entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH); + return this.getActiveMode(itemStack).equals(OmniWrenchModule.MODULE_OMNI_WRENCH); } /* EnderIO Tool */ @@ -377,73 +385,77 @@ implements /* EnderIO Tool */ @Override public boolean canUse(ItemStack itemStack, EntityPlayer entityPlayer, int i, int i1, int i2) { - return this.getActiveMode(itemStack, entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH); + return this.getActiveMode(itemStack).equals(OmniWrenchModule.MODULE_OMNI_WRENCH); } /* EnderIO Tool */ @Override public boolean shouldHideFacades(ItemStack itemStack, EntityPlayer entityPlayer) { - return this.getActiveMode(itemStack, entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH); + return this.getActiveMode(itemStack).equals(OmniWrenchModule.MODULE_OMNI_WRENCH); } /* Mekanism Wrench */ @Override public boolean canUseWrench(EntityPlayer entityPlayer, int i, int i1, int i2) { - return this.getActiveMode(entityPlayer.getHeldItem(), entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH); + return this.getActiveMode(entityPlayer.getHeldItem()).equals(OmniWrenchModule.MODULE_OMNI_WRENCH); } - /* A D D E D B Y D E C O M P I L E R ------------------------------------------------------------------------------ */ - @Override - public void setActiveMode(ItemStack stack, String newMode) { - ModeChangingItem.getInstance().setActiveMode(stack, newMode); - } - - @Override - public String getActiveMode(ItemStack stack, EntityPlayer player) { - return ModeChangingItem.getInstance().getActiveMode(stack, player); - } - - @Override - public void cycleMode(ItemStack stack, EntityPlayer player, int dMode) { - ModeChangingItem.getInstance().cycleMode(stack, player, dMode); - } - - @Override - public String nextMode(ItemStack stack, EntityPlayer player) { - return ModeChangingItem.getInstance().nextMode(stack, player); - } - - @Override - public String prevMode(ItemStack stack, EntityPlayer player) { - return ModeChangingItem.getInstance().prevMode(stack, player); - } + /* IModeChangingItem -------------------------------------------------------------------------- */ @Nullable @Override public IIcon getModeIcon(String mode, ItemStack stack, EntityPlayer player) { - return ModeChangingModularItem.getInstance().getModeIcon(mode, stack, player); - } - - @Override - public List getValidModes(ItemStack stack, EntityPlayer player) { - return ModeChangingModularItem.getInstance().getValidModes(stack, player); + IPowerModule module = ModuleManager.getModule(mode); + if (module != null) + return module.getIcon(stack); + return null; } @Override public List getValidModes(ItemStack stack) { - return ModeChangingModularItem.getInstance().getValidModes(stack); + List modes = new ArrayList<>(); + for (IRightClickModule module : ModuleManager.getRightClickModules()) { + if (module.isValidForItem(stack)) + if (ModuleManager.itemHasModule(stack, module.getDataName())) + modes.add(module.getDataName()); + } + return modes; } @Override public String getActiveMode(ItemStack stack) { - return ModeChangingModularItem.getInstance().getActiveMode(stack); + return this.getModeChangingItem().getActiveMode(stack); } + @Override + public void setActiveMode(ItemStack stack, String newMode) { + this.getModeChangingItem().setActiveMode(stack, newMode); + } + + @Override + public void cycleMode(ItemStack stack, EntityPlayer player, int dMode) { + this.getModeChangingItem().cycleMode(stack, player, dMode); + } + + @Override + public String nextMode(ItemStack stack, EntityPlayer player) { + return this.getModeChangingItem().nextMode(stack, player); + } + + @Override + public String prevMode(ItemStack stack, EntityPlayer player) { + return this.getModeChangingItem().prevMode(stack, player); + } /* IModularItem ------------------------------------------------------------------------------- */ - @Override + @Override // FIXME: check to see if this is needed or not. public List getLongInfo(EntityPlayer player, ItemStack stack) { - return null; + List info = new ArrayList<>(); + info.add("Detailed Summary"); + info.add(formatInfo("Armor", getArmorDouble(player, stack))); + info.add(formatInfo("Energy Storage", getCurrentEnergy(stack)) + 'J'); + info.add(formatInfo("Weight", MuseCommonStrings.getTotalWeight(stack)) + 'g'); + return info; } @Override diff --git a/src/main/java/net/machinemuse/powersuits/item/ModeChangingModularItem.java b/src/main/java/net/machinemuse/powersuits/item/ModeChangingModularItem.java index 21fb30e..b352a20 100644 --- a/src/main/java/net/machinemuse/powersuits/item/ModeChangingModularItem.java +++ b/src/main/java/net/machinemuse/powersuits/item/ModeChangingModularItem.java @@ -1,109 +1,109 @@ -package net.machinemuse.powersuits.item; - -import net.machinemuse.api.IPowerModule; -import net.machinemuse.api.ModuleManager; -import net.machinemuse.api.moduletrigger.IRightClickModule; -import net.machinemuse.numina.item.ModeChangingItem; -import net.machinemuse.numina.item.NuminaItemUtils; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; - -import javax.annotation.Nullable; -import java.util.ArrayList; -import java.util.List; - -/** - * Author: MachineMuse (Claire Semple) - * Created: 4:52 PM, 9/5/13 - * - * Ported to Java by lehjr on 11/1/16. - */ -public class ModeChangingModularItem implements IModeChangingModularItem { - private static ModeChangingModularItem INSTANCE; - - public static ModeChangingModularItem getInstance() { - if (INSTANCE == null) { - INSTANCE = new ModeChangingModularItem(); - } - return INSTANCE; - } - - @Nullable - @Override - public IIcon getModeIcon(String mode, ItemStack stack, EntityPlayer player) { - IPowerModule module = ModuleManager.getModule(mode); - if (module != null) - return module.getIcon(stack); - return null; - } - - @Override - public List getValidModes(ItemStack stack, EntityPlayer player) { - return getValidModes(stack); - } - - @Override - public List getValidModes(ItemStack stack) { - List modes = new ArrayList<>(); - for (IRightClickModule module : ModuleManager.getRightClickModules()) { - if (module.isValidForItem(stack)) - if (ModuleManager.itemHasModule(stack, module.getDataName())) - modes.add(module.getDataName()); - } - return modes; - } - - @Override - public String getActiveMode(ItemStack stack) { - List validModes; - - String modeFromNBT = NuminaItemUtils.getTagCompound(stack).getString("mode"); - if (!modeFromNBT.isEmpty()) - return modeFromNBT; - else { - validModes = getValidModes(stack); - if (!validModes.isEmpty()) - return validModes.get(0); - else - return ""; - } - } - - public static void cycleModeForItem(ItemStack stack, EntityPlayer player, int dMode) { - Item item; - if (stack != null) { - item = stack.getItem(); - if (item instanceof IModeChangingModularItem) - ((IModeChangingModularItem) item).cycleMode(stack, player, dMode); - } - } - - /* IModeChangingItem -------------------------------------------------------------------------- */ - - @Override - public void setActiveMode(ItemStack stack, String newMode) { - ModeChangingItem.getInstance().setActiveMode(stack, newMode); - } - - @Override - public String getActiveMode(ItemStack stack, EntityPlayer player) { - return ModeChangingItem.getInstance().getActiveMode(stack, player); - } - - @Override - public void cycleMode(ItemStack stack, EntityPlayer player, int dMode) { - ModeChangingModularItem.getInstance().cycleMode(stack, player, dMode); - } - - @Override - public String nextMode(ItemStack stack, EntityPlayer player) { - return ModeChangingItem.getInstance().nextMode(stack, player); - } - - @Override - public String prevMode(ItemStack stack, EntityPlayer player) { - return ModeChangingItem.getInstance().prevMode(stack, player); - } -} \ No newline at end of file +//package net.machinemuse.powersuits.item; +// +//import net.machinemuse.api.IPowerModule; +//import net.machinemuse.api.ModuleManager; +//import net.machinemuse.api.moduletrigger.IRightClickModule; +//import net.machinemuse.numina.item.IModeChangingItem; +//import net.machinemuse.numina.item.NuminaItemUtils; +//import net.machinemuse.numina.network.MusePacketModeChangeRequest; +//import net.machinemuse.numina.network.PacketSender; +//import net.minecraft.entity.player.EntityPlayer; +//import net.minecraft.item.ItemStack; +//import net.minecraft.util.IIcon; +// +//import javax.annotation.Nullable; +//import java.util.ArrayList; +//import java.util.List; +// +///** +// * Author: MachineMuse (Claire Semple) +// * Created: 4:52 PM, 9/5/13 +// * +// * Ported to Java by lehjr on 11/1/16. +// */ +//public class ModeChangingModularItem implements IModeChangingItem { +// private static ModeChangingModularItem INSTANCE; +// +// public static ModeChangingModularItem getInstance() { +// if (INSTANCE == null) { +// INSTANCE = new ModeChangingModularItem(); +// } +// return INSTANCE; +// } +// +// @Nullable +// @Override +// public IIcon getModeIcon(String mode, ItemStack stack, EntityPlayer player) { +// IPowerModule module = ModuleManager.getModule(mode); +// if (module != null) +// return module.getIcon(stack); +// return null; +// } +// +// @Override +// public List getValidModes(ItemStack stack) { +// List modes = new ArrayList<>(); +// for (IRightClickModule module : ModuleManager.getRightClickModules()) { +// if (module.isValidForItem(stack)) +// if (ModuleManager.itemHasModule(stack, module.getDataName())) +// modes.add(module.getDataName()); +// } +// return modes; +// } +// +// @Override +// public String getActiveMode(ItemStack stack) { +// List validModes; +// String modeFromNBT = NuminaItemUtils.getTagCompound(stack).getString("mode"); +// if (!modeFromNBT.isEmpty()) +// return modeFromNBT; +// else { +// validModes = getValidModes(stack); +// return (!validModes.isEmpty()) ? validModes.get(0) : ""; +// } +// } +// +// @Override +// public void setActiveMode(ItemStack stack, String newMode) { +// NuminaItemUtils.getTagCompound(stack).setString("mode", newMode); +// } +// +// @Override +// public void cycleMode(ItemStack stack, EntityPlayer player, int dMode) { +// List modes = this.getValidModes(stack); +// if (modes.size() > 0) { +// int newindex = clampMode(modes.indexOf(this.getActiveMode(stack)) + dMode, modes.size()); +// String newmode = (String)modes.get(newindex); +// this.setActiveMode(stack, newmode); +// PacketSender.sendToServer(new MusePacketModeChangeRequest(player, newmode, player.inventory.currentItem)); +// } +// } +// +// @Override +// public String nextMode(ItemStack stack, EntityPlayer player) { +// List modes = getValidModes(stack); +// if (modes.size() > 0) { +// int newindex = clampMode(modes.indexOf(getActiveMode(stack)) + 1, modes.size()); +// return (String)modes.get(newindex); +// } +// else { +// return ""; +// } +// } +// +// @Override +// public String prevMode(ItemStack stack, EntityPlayer player) { +// List modes = this.getValidModes(stack); +// if (modes.size() > 0) { +// int newindex = clampMode(modes.indexOf(getActiveMode(stack)) - 1, modes.size()); +// return (String)modes.get(newindex); +// } +// else { +// return ""; +// } +// } +// +// private static int clampMode(int selection, int modesSize) { +// return (selection > 0) ? (selection % modesSize) : ((selection + modesSize * -selection) % modesSize); +// } +//} \ No newline at end of file diff --git a/src/main/java/net/machinemuse/powersuits/network/packets/MusePacketCosmeticInfo.java b/src/main/java/net/machinemuse/powersuits/network/packets/MusePacketCosmeticInfo.java index 0b50fd6..3df06de 100644 --- a/src/main/java/net/machinemuse/powersuits/network/packets/MusePacketCosmeticInfo.java +++ b/src/main/java/net/machinemuse/powersuits/network/packets/MusePacketCosmeticInfo.java @@ -26,6 +26,7 @@ public class MusePacketCosmeticInfo extends MusePacket { public MusePacketCosmeticInfo(EntityPlayer player, int itemSlot, String tagName, NBTTagCompound tagData) { this.player = player; + this.itemSlot = itemSlot; this.tagName = tagName; this.tagData = tagData; } diff --git a/src/main/java/net/machinemuse/powersuits/network/packets/MusePacketInventoryRefresh.java b/src/main/java/net/machinemuse/powersuits/network/packets/MusePacketInventoryRefresh.java index 71059ca..2060778 100644 --- a/src/main/java/net/machinemuse/powersuits/network/packets/MusePacketInventoryRefresh.java +++ b/src/main/java/net/machinemuse/powersuits/network/packets/MusePacketInventoryRefresh.java @@ -1,5 +1,7 @@ package net.machinemuse.powersuits.network.packets; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.machinemuse.general.gui.MuseGui; import net.machinemuse.numina.network.MusePackager; import net.machinemuse.numina.network.MusePacket; @@ -39,6 +41,7 @@ public class MusePacketInventoryRefresh extends MusePacket { writeItemStack(stack); } + @SideOnly(Side.CLIENT) @Override public void handleClient(EntityClientPlayerMP player) { IInventory inventory = player.inventory; diff --git a/src/main/java/net/machinemuse/utils/MuseCommonStrings.java b/src/main/java/net/machinemuse/utils/MuseCommonStrings.java index 99fbc60..0a9166b 100644 --- a/src/main/java/net/machinemuse/utils/MuseCommonStrings.java +++ b/src/main/java/net/machinemuse/utils/MuseCommonStrings.java @@ -99,7 +99,7 @@ public abstract class MuseCommonStrings { public static List getItemInstalledModules(EntityPlayer player, ItemStack stack) { NBTTagCompound itemTag = MuseItemUtils.getMuseItemTag(stack); List modules = new LinkedList(); - for (IPowerModule module : ModuleManager.getValidModulesForItem(player, stack)) { + for (IPowerModule module : ModuleManager.getValidModulesForItem(stack)) { if (ModuleManager.tagHasModule(itemTag, module.getDataName())) { modules.add(module.getDataName()); } diff --git a/src/main/java/net/machinemuse/utils/MuseItemUtils.java b/src/main/java/net/machinemuse/utils/MuseItemUtils.java index 8c967b0..5ef753d 100644 --- a/src/main/java/net/machinemuse/utils/MuseItemUtils.java +++ b/src/main/java/net/machinemuse/utils/MuseItemUtils.java @@ -349,7 +349,7 @@ public class MuseItemUtils { List installedModules = new ArrayList(); for (ItemStack stack : MuseItemUtils.modularItemsEquipped(player)) { NBTTagCompound itemTag = MuseItemUtils.getMuseItemTag(stack); - for (IPowerModule module : ModuleManager.getValidModulesForItem(player, stack)) { + for (IPowerModule module : ModuleManager.getValidModulesForItem(stack)) { if (ModuleManager.tagHasModule(itemTag, module.getDataName())) { installedModules.add(module); }