Fixes and whatnot

This commit is contained in:
Leon 2016-11-18 16:08:31 -05:00
parent 402234e210
commit c6f0e4a61a
11 changed files with 248 additions and 214 deletions

View file

@ -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<IPowerModule> getValidModulesForItem(EntityPlayer player, ItemStack stack) {
public static List<IPowerModule> getValidModulesForItem(ItemStack stack) {
List<IPowerModule> 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 {

View file

@ -97,7 +97,7 @@ public class ModuleSelectionFrame extends ScrollableFrame {
moduleButtons = new ArrayList<>();
categories = new HashMap<>();
List<IPowerModule> workingModules = ModuleManager.getValidModulesForItem(null, selectedItem.getItem());
List<IPowerModule> workingModules = ModuleManager.getValidModulesForItem(selectedItem.getItem());
// Prune the list of disallowed modules, if not installed on this
// item.

View file

@ -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);

View file

@ -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()) {

View file

@ -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<String> getValidModes(ItemStack stack, EntityPlayer player);
List<String> getValidModes(ItemStack stack);
String getActiveMode(ItemStack stack);
}
//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<String> 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);
//}

View file

@ -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<String> 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<String> getValidModes(ItemStack stack) {
return ModeChangingModularItem.getInstance().getValidModes(stack);
List<String> 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<String> getLongInfo(EntityPlayer player, ItemStack stack) {
return null;
List<String> 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

View file

@ -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<String> getValidModes(ItemStack stack, EntityPlayer player) {
return getValidModes(stack);
}
@Override
public List<String> getValidModes(ItemStack stack) {
List<String> 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<String> 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);
}
}
//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<String> getValidModes(ItemStack stack) {
// List<String> 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<String> 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<String> 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<String> 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<String> 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);
// }
//}

View file

@ -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;
}

View file

@ -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;

View file

@ -99,7 +99,7 @@ public abstract class MuseCommonStrings {
public static List<String> getItemInstalledModules(EntityPlayer player, ItemStack stack) {
NBTTagCompound itemTag = MuseItemUtils.getMuseItemTag(stack);
List<String> 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());
}

View file

@ -349,7 +349,7 @@ public class MuseItemUtils {
List<IPowerModule> 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);
}