Fixes and whatnot
This commit is contained in:
parent
402234e210
commit
c6f0e4a61a
|
@ -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 {
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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()) {
|
||||
|
|
|
@ -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);
|
||||
//}
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
// }
|
||||
//}
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue