From 72355a8882fe23f58fb89ec07bba44d4b7f5b535 Mon Sep 17 00:00:00 2001 From: Leon Date: Sat, 5 Nov 2016 09:36:06 -0400 Subject: [PATCH] More Scala to Java porting. Getting close now --- .../net/machinemuse/api/ApiaristArmor.java | 36 ++ .../net/machinemuse/api/IApiaristArmor.java | 24 ++ .../net/machinemuse/api/IArmorTraits.java | 10 + .../net/machinemuse/api/ModuleManager.java | 1 + .../api/electricity/AE2ElectricAdapter.java | 50 +++ .../api/electricity/ElectricAdapter.java | 29 ++ .../api/electricity/ElectricConversions.java | 49 +++ .../api/electricity/IC2ElectricAdapter.java | 50 +++ .../api/electricity/IModularItem.java | 51 +++ .../api/electricity/IMuseElectricItem.java | 128 ++++++ .../api/electricity/MuseElectricAdapter.java | 44 ++ .../api/electricity/MuseElectricItem.java | 233 +++++++++++ .../api/electricity/TEElectricAdapter.java | 45 ++ .../general/gui/frame/ItemInfoFrame.java | 2 +- .../general/gui/frame/ItemModelViewFrame.java | 0 .../client/render/item/ToolRenderer.java | 8 +- .../powersuits/common/MPSCreativeTab.java | 18 + .../powersuits/common/MPSGuiHandler.java | 56 +++ .../powersuits/common/ModCompatibility.java | 2 +- .../powersuits/event/HarvestEventHandler.java | 2 +- .../item/IModeChangingModularItem.java | 3 + .../powersuits/item/IModularItemBase.java | 44 ++ .../powersuits/item/ItemElectricArmor.java | 100 ++--- .../powersuits/item/ItemPowerArmor.java | 195 +++++++++ .../powersuits/item/ItemPowerArmorBoots.java | 2 + .../item/ItemPowerArmorChestplate.java | 3 +- .../powersuits/item/ItemPowerFist.java | 41 +- .../powersuits/item/MPSItemElectricTool.java | 224 ++++++++++ .../item/ModeChangingModularItem.java | 3 +- .../powersuits/item/ModularItemBase.java | 263 ++++++++++++ .../powersuits/powermodule/PowerModule.java | 2 +- .../powermodule/PowerModuleBase.java | 1 + .../powermodule/RightClickPowerModule.java | 2 +- .../powermodule/ToggleablePowerModule.java | 2 +- .../armor/ApiaristArmorModule.java | 2 +- .../powermodule/armor/BasicPlatingModule.java | 2 +- .../armor/DiamondPlatingModule.java | 2 +- .../powermodule/armor/EnergyShieldModule.java | 2 +- .../powermodule/armor/HazmatModule.java | 2 +- .../powermodule/armor/HeatSinkModule.java | 2 +- .../armor/MechanicalAssistance.java | 2 +- .../armor/NitrogenCoolingSystem.java | 2 +- .../powermodule/armor/WaterTankModule.java | 2 +- .../energy/AdvancedBatteryModule.java | 6 +- .../energy/AdvancedSolarGenerator.java | 2 +- .../energy/BasicBatteryModule.java | 6 +- .../powermodule/energy/CoalGenerator.java | 2 +- .../energy/EliteBatteryModule.java | 6 +- .../energy/KineticGeneratorModule.java | 2 +- .../energy/SolarGeneratorModule.java | 2 +- .../energy/ThermalGeneratorModule.java | 2 +- .../powermodule/misc/AirtightSealModule.java | 2 +- .../powermodule/misc/AutoFeederModule.java | 2 +- .../powermodule/misc/BinocularsModule.java | 2 +- .../powermodule/misc/CitizenJoeStyle.java | 2 +- .../powermodule/misc/ClockModule.java | 2 +- .../powermodule/misc/CompassModule.java | 2 +- .../powermodule/misc/CoolingSystemModule.java | 2 +- .../powermodule/misc/CosmeticGlowModule.java | 2 +- .../misc/InPlaceAssemblerModule.java | 2 +- .../powermodule/misc/InvisibilityModule.java | 2 +- .../powermodule/misc/MagnetModule.java | 2 +- .../powermodule/misc/MobRepulsorModule.java | 2 +- .../powermodule/misc/NightVisionModule.java | 2 +- .../powermodule/misc/ThaumGogglesModule.java | 2 +- .../powermodule/misc/TintModule.java | 2 +- .../misc/TransparentArmorModule.java | 2 +- .../misc/WaterElectrolyzerModule.java | 2 +- .../movement/BlinkDriveModule.java | 2 +- .../movement/ClimbAssistModule.java | 2 +- .../movement/FlightControlModule.java | 2 +- .../powermodule/movement/GliderModule.java | 2 +- .../powermodule/movement/JetBootsModule.java | 2 +- .../powermodule/movement/JetPackModule.java | 2 +- .../movement/JumpAssistModule.java | 2 +- .../powermodule/movement/ParachuteModule.java | 2 +- .../movement/ShockAbsorberModule.java | 2 +- .../movement/SprintAssistModule.java | 2 +- .../movement/SwimAssistModule.java | 2 +- .../tool/AOEPickUpgradeModule.java | 2 +- .../tool/AppEngWirelessFluidModule.java | 2 +- .../tool/AppEngWirelessModule.java | 2 +- .../powermodule/tool/AquaAffinityModule.java | 2 +- .../powermodule/tool/AxeModule.java | 2 +- .../powermodule/tool/ChiselModule.java | 2 +- .../tool/DiamondPickUpgradeModule.java | 2 +- .../tool/DimensionalRiftModule.java | 2 +- .../powermodule/tool/FieldTinkerModule.java | 2 +- .../powermodule/tool/FlintAndSteelModule.java | 2 +- .../powermodule/tool/GrafterModule.java | 2 +- .../powermodule/tool/HoeModule.java | 2 +- .../powermodule/tool/LeafBlowerModule.java | 2 +- .../powermodule/tool/LuxCapacitor.java | 2 +- .../tool/MFFSFieldTeleporterModule.java | 2 +- .../powermodule/tool/OCTerminalModule.java | 2 +- .../powermodule/tool/OmniProbeModule.java | 2 +- .../powermodule/tool/OmniWrenchModule.java | 2 +- .../powermodule/tool/OreScannerModule.java | 2 +- .../tool/PersonalShrinkingModule.java | 2 +- .../powermodule/tool/PickaxeModule.java | 2 +- .../powermodule/tool/ScoopModule.java | 2 +- .../powermodule/tool/ShearsModule.java | 2 +- .../powermodule/tool/ShovelModule.java | 2 +- .../weapon/BladeLauncherModule.java | 2 +- .../powermodule/weapon/LightningModule.java | 2 +- .../powermodule/weapon/MeleeAssistModule.java | 2 +- .../weapon/PlasmaCannonModule.java | 2 +- .../powermodule/weapon/RailgunModule.java | 2 +- .../powermodule/weapon/SonicWeaponModule.java | 2 +- .../net/machinemuse/utils/MuseItemUtils.java | 2 +- .../machinemuse/utils/MusePlayerUtils.java | 2 +- .../net/machinemuse/api/ArmorTraits.scala | 54 --- .../net/machinemuse/api/IModularItem.scala | 46 -- .../api/electricity/ElectricAdapter.scala | 94 ----- .../api/electricity/ElectricConversions.scala | 30 -- .../api/electricity/MuseElectricItem.scala | 195 --------- .../general/gui/frame/ColourPickerFrame.java | 253 +++++++++++ .../gui/frame/PartManipContainer.scala | 5 +- .../general/gui/frame/PartManipSubFrame.java | 396 +++++------------- .../general/gui/frame/PartManipSubFrame.scala | 17 +- .../powersuits/common/Config.scala | 5 +- .../powersuits/common/MPSCreativeTab.scala | 7 - .../powersuits/common/MPSGuiHandler.scala | 41 -- .../powersuits/common/ModularPowersuits.scala | 3 +- .../item/CustomRenderArmorBase.scala | 22 +- .../item/IModeChangingModularItem.scala | 57 --- .../powersuits/item/ItemElectricArmor.scala | 13 - .../powersuits/item/ItemElectricTool.scala | 17 - .../powersuits/item/ItemPowerArmor.scala | 166 -------- .../powersuits/item/ItemPowerFist.scala | 325 -------------- .../powersuits/item/ModularItemBase.scala | 81 ---- .../packets/MusePacketColourInfo.scala | 6 +- .../packets/MusePacketCosmeticInfo.scala | 6 +- .../MusePacketInstallModuleRequest.scala | 4 +- .../packets/MusePacketInventoryRefresh.scala | 4 +- .../packets/MusePacketPlasmaBolt.scala | 4 +- .../packets/MusePacketPlayerUpdate.scala | 4 +- .../MusePacketPropertyModifierConfig.scala | 4 +- .../MusePacketSalvageModuleRequest.scala | 4 +- .../packets/MusePacketToggleRequest.scala | 4 +- .../packets/MusePacketTweakRequest.scala | 4 +- 141 files changed, 2161 insertions(+), 1599 deletions(-) create mode 100644 src/main/java/net/machinemuse/api/ApiaristArmor.java create mode 100644 src/main/java/net/machinemuse/api/IApiaristArmor.java create mode 100644 src/main/java/net/machinemuse/api/IArmorTraits.java create mode 100644 src/main/java/net/machinemuse/api/electricity/AE2ElectricAdapter.java create mode 100644 src/main/java/net/machinemuse/api/electricity/ElectricAdapter.java create mode 100644 src/main/java/net/machinemuse/api/electricity/ElectricConversions.java create mode 100644 src/main/java/net/machinemuse/api/electricity/IC2ElectricAdapter.java create mode 100644 src/main/java/net/machinemuse/api/electricity/IModularItem.java create mode 100644 src/main/java/net/machinemuse/api/electricity/IMuseElectricItem.java create mode 100644 src/main/java/net/machinemuse/api/electricity/MuseElectricAdapter.java create mode 100644 src/main/java/net/machinemuse/api/electricity/MuseElectricItem.java create mode 100644 src/main/java/net/machinemuse/api/electricity/TEElectricAdapter.java rename src/main/{scala => java}/net/machinemuse/general/gui/frame/ItemModelViewFrame.java (100%) create mode 100644 src/main/java/net/machinemuse/powersuits/common/MPSCreativeTab.java create mode 100644 src/main/java/net/machinemuse/powersuits/common/MPSGuiHandler.java rename src/main/{scala => java}/net/machinemuse/powersuits/item/IModeChangingModularItem.java (89%) create mode 100644 src/main/java/net/machinemuse/powersuits/item/IModularItemBase.java rename src/main/{scala => java}/net/machinemuse/powersuits/item/ItemElectricArmor.java (58%) create mode 100644 src/main/java/net/machinemuse/powersuits/item/ItemPowerArmor.java create mode 100644 src/main/java/net/machinemuse/powersuits/item/MPSItemElectricTool.java rename src/main/{scala => java}/net/machinemuse/powersuits/item/ModeChangingModularItem.java (97%) create mode 100644 src/main/java/net/machinemuse/powersuits/item/ModularItemBase.java delete mode 100644 src/main/scala/net/machinemuse/api/ArmorTraits.scala delete mode 100644 src/main/scala/net/machinemuse/api/IModularItem.scala delete mode 100644 src/main/scala/net/machinemuse/api/electricity/ElectricAdapter.scala delete mode 100644 src/main/scala/net/machinemuse/api/electricity/ElectricConversions.scala delete mode 100644 src/main/scala/net/machinemuse/api/electricity/MuseElectricItem.scala create mode 100644 src/main/scala/net/machinemuse/general/gui/frame/ColourPickerFrame.java delete mode 100644 src/main/scala/net/machinemuse/powersuits/common/MPSCreativeTab.scala delete mode 100644 src/main/scala/net/machinemuse/powersuits/common/MPSGuiHandler.scala delete mode 100644 src/main/scala/net/machinemuse/powersuits/item/IModeChangingModularItem.scala delete mode 100644 src/main/scala/net/machinemuse/powersuits/item/ItemElectricArmor.scala delete mode 100644 src/main/scala/net/machinemuse/powersuits/item/ItemElectricTool.scala delete mode 100644 src/main/scala/net/machinemuse/powersuits/item/ItemPowerArmor.scala delete mode 100644 src/main/scala/net/machinemuse/powersuits/item/ItemPowerFist.scala delete mode 100644 src/main/scala/net/machinemuse/powersuits/item/ModularItemBase.scala diff --git a/src/main/java/net/machinemuse/api/ApiaristArmor.java b/src/main/java/net/machinemuse/api/ApiaristArmor.java new file mode 100644 index 0000000..44730dc --- /dev/null +++ b/src/main/java/net/machinemuse/api/ApiaristArmor.java @@ -0,0 +1,36 @@ +package net.machinemuse.api; + +import cpw.mods.fml.common.Optional; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + +/** + * Author: MachineMuse (Claire Semple) + * Created: 6:54 AM, 4/28/13 + * + * Ported to Java by lehjr on 11/4/16. + */ +@Optional.Interface(iface = "forestry.api.apiculture.IArmorApiarist", modid = "Forestry", striprefs = true) +public class ApiaristArmor implements IApiaristArmor { + private static ApiaristArmor INSTANCE; + + public static ApiaristArmor getInstance() { + if (INSTANCE == null) + INSTANCE = new ApiaristArmor(); + return INSTANCE; + } + + + @Optional.Method(modid = "Forestry") + @Override + public boolean protectPlayer(EntityPlayer player, ItemStack armor, String cause, boolean doProtect) { + return false; + } + + @Optional.Method(modid = "Forestry") + @Override + public boolean protectEntity(EntityLivingBase player, ItemStack armor, String cause, boolean doProtect) { + return false; + } +} diff --git a/src/main/java/net/machinemuse/api/IApiaristArmor.java b/src/main/java/net/machinemuse/api/IApiaristArmor.java new file mode 100644 index 0000000..3e780eb --- /dev/null +++ b/src/main/java/net/machinemuse/api/IApiaristArmor.java @@ -0,0 +1,24 @@ +package net.machinemuse.api; + +import cpw.mods.fml.common.Optional; +import forestry.api.apiculture.IArmorApiarist; +import net.machinemuse.utils.ElectricItemUtils; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + +/** + * Author: MachineMuse (Claire Semple) + * Created: 6:54 AM, 4/28/13 + * + * Ported to Java by lehjr on 11/4/16. + */ +@Optional.Interface(iface = "forestry.api.apiculture.IArmorApiarist", modid = "Forestry", striprefs = true) +public interface IApiaristArmor extends IArmorApiarist { + @Optional.Method(modid = "Forestry") + public boolean protectPlayer(final EntityPlayer player, final ItemStack armor, final String cause, final boolean doProtect); + + + @Optional.Method(modid = "Forestry") + public boolean protectEntity(final EntityLivingBase player, final ItemStack armor, final String cause, final boolean doProtect); +} \ No newline at end of file diff --git a/src/main/java/net/machinemuse/api/IArmorTraits.java b/src/main/java/net/machinemuse/api/IArmorTraits.java new file mode 100644 index 0000000..50a7d1d --- /dev/null +++ b/src/main/java/net/machinemuse/api/IArmorTraits.java @@ -0,0 +1,10 @@ +package net.machinemuse.api; + +import net.machinemuse.api.electricity.IModularItem; + +/** + * Ported to Java by lehjr on 11/4/16. + */ +public interface IArmorTraits extends IModularItem, IApiaristArmor +{ +} diff --git a/src/main/java/net/machinemuse/api/ModuleManager.java b/src/main/java/net/machinemuse/api/ModuleManager.java index e4835c7..5f05b0b 100644 --- a/src/main/java/net/machinemuse/api/ModuleManager.java +++ b/src/main/java/net/machinemuse/api/ModuleManager.java @@ -1,5 +1,6 @@ package net.machinemuse.api; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.moduletrigger.IBlockBreakingModule; import net.machinemuse.api.moduletrigger.IPlayerTickModule; import net.machinemuse.api.moduletrigger.IRightClickModule; diff --git a/src/main/java/net/machinemuse/api/electricity/AE2ElectricAdapter.java b/src/main/java/net/machinemuse/api/electricity/AE2ElectricAdapter.java new file mode 100644 index 0000000..0b4c4e8 --- /dev/null +++ b/src/main/java/net/machinemuse/api/electricity/AE2ElectricAdapter.java @@ -0,0 +1,50 @@ +package net.machinemuse.api.electricity; + +import appeng.api.config.AccessRestriction; +import appeng.api.implementations.items.IAEItemPowerStorage; +import net.minecraft.item.ItemStack; + +/** + * Ported to Java by lehjr on 11/4/16. + */ +public class AE2ElectricAdapter extends ElectricAdapter { + private final ItemStack stack; + private final IAEItemPowerStorage item; + + public AE2ElectricAdapter(final ItemStack stack) { + this.stack = stack; + this.item = (IAEItemPowerStorage)stack.getItem(); + } + + public ItemStack stack() { + return this.stack; + } + + public IAEItemPowerStorage item() { + return this.item; + } + + @Override + public double getCurrentEnergy() { + return ElectricConversions.museEnergyFromAE(this.item().getAECurrentPower(this.stack())); + } + + @Override + public double getMaxEnergy() { + return ElectricConversions.museEnergyFromAE(this.item().getAEMaxPower(this.stack())); + } + + @Override + public double drainEnergy(final double requested) { + return ElectricConversions.museEnergyFromAE(this.item().extractAEPower(this.stack(), ElectricConversions.museEnergyToAE(requested))); + } + + @Override + public double giveEnergy(final double provided) { + return ElectricConversions.museEnergyFromAE(this.item().injectAEPower(this.stack(), ElectricConversions.museEnergyToAE(provided))); + } + + public AccessRestriction getPowerFlow(final ItemStack stack) { + return AccessRestriction.READ_WRITE; + } +} \ No newline at end of file diff --git a/src/main/java/net/machinemuse/api/electricity/ElectricAdapter.java b/src/main/java/net/machinemuse/api/electricity/ElectricAdapter.java new file mode 100644 index 0000000..bc2c55c --- /dev/null +++ b/src/main/java/net/machinemuse/api/electricity/ElectricAdapter.java @@ -0,0 +1,29 @@ +package net.machinemuse.api.electricity; + +import appeng.api.implementations.items.IAEItemPowerStorage; +import cofh.api.energy.IEnergyContainerItem; +import ic2.api.item.IElectricItem; +import net.machinemuse.powersuits.common.ModCompatibility; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +/** + * Ported to Java by lehjr on 11/4/16. + */ +public abstract class ElectricAdapter { + public static ElectricAdapter wrap(final ItemStack stack) { + if (stack == null) { + return null; + } + final Item i = stack.getItem(); + return (i instanceof MuseElectricItem) ? new MuseElectricAdapter(stack) : ((ModCompatibility.isRFAPILoaded() && i instanceof IEnergyContainerItem) ? new TEElectricAdapter(stack) : ((ModCompatibility.isIndustrialCraftLoaded() && i instanceof IElectricItem) ? new IC2ElectricAdapter(stack) : ((ModCompatibility.isAppengLoaded() && i instanceof IAEItemPowerStorage) ? new AE2ElectricAdapter(stack) : null))); + } + + public abstract double getCurrentEnergy(); + + public abstract double getMaxEnergy(); + + public abstract double drainEnergy(double requested); + + public abstract double giveEnergy(double provided); +} \ No newline at end of file diff --git a/src/main/java/net/machinemuse/api/electricity/ElectricConversions.java b/src/main/java/net/machinemuse/api/electricity/ElectricConversions.java new file mode 100644 index 0000000..cb68b41 --- /dev/null +++ b/src/main/java/net/machinemuse/api/electricity/ElectricConversions.java @@ -0,0 +1,49 @@ +package net.machinemuse.api.electricity; + +import net.machinemuse.api.ModuleManager; +import net.machinemuse.powersuits.common.ModCompatibility; +import net.minecraft.item.ItemStack; + +/** + * Author: MachineMuse (Claire Semple) + * Created: 4:51 AM, 4/28/13 + * + * Ported to Java by lehjr on 11/4/16. + */ +public final class ElectricConversions { + + /* Industrialcraft 2 -------------------------------------------------------------------------- */ + public static final String IC2_TIER = "IC2 Tier"; + + public static int getTier(final ItemStack stack) { + return (int) ModuleManager.computeModularProperty(stack, IC2_TIER); + } + + public static double museEnergyToEU(final double museEnergy) { + return museEnergy / ModCompatibility.getIC2Ratio(); + } + + public static double museEnergyFromEU(final double eu) { + return eu * ModCompatibility.getIC2Ratio(); + } + + + /* Thermal Expansion -------------------------------------------------------------------------- */ + public static int museEnergyToRF(final double museEnergy) { + return (int)Math.ceil(museEnergy / ModCompatibility.getRFRatio()); + } + + public static double museEnergyFromRF(final int rf) { + return rf * ModCompatibility.getRFRatio(); + } + + + /* Applied Energistics 2 ---------------------------------------------------------------------- */ + public static double museEnergyFromAE(final double ae) { + return ae * ModCompatibility.getAE2Ratio(); + } + + public static double museEnergyToAE(final double museEnergy) { + return museEnergy / ModCompatibility.getAE2Ratio(); + } +} \ No newline at end of file diff --git a/src/main/java/net/machinemuse/api/electricity/IC2ElectricAdapter.java b/src/main/java/net/machinemuse/api/electricity/IC2ElectricAdapter.java new file mode 100644 index 0000000..6c75de3 --- /dev/null +++ b/src/main/java/net/machinemuse/api/electricity/IC2ElectricAdapter.java @@ -0,0 +1,50 @@ +package net.machinemuse.api.electricity; + +import ic2.api.item.ElectricItem; +import ic2.api.item.IElectricItem; +import net.minecraft.item.ItemStack; + +/** + * Ported to Java by lehjr on 11/4/16. + */ +public class IC2ElectricAdapter extends ElectricAdapter { + private final ItemStack stack; + private final IElectricItem item; + + public IC2ElectricAdapter(final ItemStack stack) { + this.stack = stack; + this.item = (IElectricItem)stack.getItem(); + } + + public ItemStack stack() { + return this.stack; + } + + public IElectricItem item() { + return this.item; + } + + @Override + public double getCurrentEnergy() { + return ElectricConversions.museEnergyFromEU(ElectricItem.manager.getCharge(this.stack())); + } + + @Override + public double getMaxEnergy() { + return ElectricConversions.museEnergyFromEU(this.item().getMaxCharge(this.stack())); + } + + @Override + public double drainEnergy(final double requested) { + return ElectricConversions.museEnergyFromEU(ElectricItem.manager.discharge(this.stack(), ElectricConversions.museEnergyToEU(requested), this.getTier(), true, false, false)); + } + + @Override + public double giveEnergy(final double provided) { + return ElectricConversions.museEnergyFromEU(ElectricItem.manager.charge(this.stack(), ElectricConversions.museEnergyToEU(provided), this.getTier(), true, false)); + } + + public int getTier() { + return this.item().getTier(this.stack()); + } +} diff --git a/src/main/java/net/machinemuse/api/electricity/IModularItem.java b/src/main/java/net/machinemuse/api/electricity/IModularItem.java new file mode 100644 index 0000000..3b80af8 --- /dev/null +++ b/src/main/java/net/machinemuse/api/electricity/IModularItem.java @@ -0,0 +1,51 @@ +package net.machinemuse.api.electricity; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import java.util.List; + +/** + * Interface for ItemPowerArmor and ItemPowerTool to share. + * + * @author MachineMuse + * + * Ported to Java by lehjr on 11/3/16. + */ +public interface IModularItem { + /** + * Gets the item's extended summary for displaying in the gui. + * + * @param stack + * @return + */ + List getLongInfo(EntityPlayer player, ItemStack stack); + + /** + * Returns the amount of energy contained in the player's inventory. + * + * @param player + * @return + */ + double getPlayerEnergy(EntityPlayer player); + + /** + * Drains the amount of energy from the player's inventory. + * + * @param player + * @param drainAmount + * @return + */ + void drainPlayerEnergy(EntityPlayer player, double drainAmount); + + + /** + * Adds the amount of energy to the player's inventory. + * + * @param player + * @param joulesToGive + * @return + */ + void givePlayerEnergy(EntityPlayer player, double joulesToGive); +} \ No newline at end of file diff --git a/src/main/java/net/machinemuse/api/electricity/IMuseElectricItem.java b/src/main/java/net/machinemuse/api/electricity/IMuseElectricItem.java new file mode 100644 index 0000000..edb08ad --- /dev/null +++ b/src/main/java/net/machinemuse/api/electricity/IMuseElectricItem.java @@ -0,0 +1,128 @@ +package net.machinemuse.api.electricity; + +import appeng.api.config.AccessRestriction; +import appeng.api.implementations.items.IAEItemPowerStorage; +import cofh.api.energy.IEnergyContainerItem; +import cpw.mods.fml.common.Optional; +import ic2.api.item.IElectricItemManager; +import ic2.api.item.ISpecialElectricItem; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +/** + * Author: MachineMuse (Claire Semple) + * Created: 10:12 PM, 4/20/13 + * + * Ported to Java by lehjr on 11/3/16. + */ +@Optional.InterfaceList({ + @Optional.Interface(iface = "cofh.api.energy.IEnergyContainerItem", modid = "CoFHAPI|energy", striprefs = true), + @Optional.Interface(iface = "ic2.api.item.IElectricItemManager", modid = "IC2", striprefs = true), + @Optional.Interface(iface = "ic2.api.item.ISpecialElectricItem", modid = "IC2", striprefs = true), + @Optional.Interface(iface = "appeng.api.implementations.items.IAEItemPowerStorage", modid = "AE2", striprefs = true)}) +public interface IMuseElectricItem + extends IEnergyContainerItem, + ISpecialElectricItem, + IElectricItemManager, + IAEItemPowerStorage { + /** + * Call to get the energy of an item + * + * @param stack ItemStack to set + * @return Current energy level + */ + double getCurrentEnergy(ItemStack stack); + + /** + * Call to set the energy of an item + * + * @param stack ItemStack to set + * @return Maximum energy level + */ + double getMaxEnergy(ItemStack stack); + + /** + * Call to set the energy of an item + * + * @param stack ItemStack to set + * @param energy Level to set it to + */ + void setCurrentEnergy(ItemStack stack, double energy); + + /** + * Call to drain energy from an item + * + * @param stack ItemStack being requested for energy + * @param requested Amount of energy to drain + * @return Amount of energy successfully drained + */ + double drainEnergyFrom(ItemStack stack, double requested); + + /** + * Call to give energy to an item + * + * @param stack ItemStack being provided with energy + * @param provided Amount of energy to add + * @return Amount of energy added + */ + double giveEnergyTo(ItemStack stack, double provided); + + /* Industrialcraft 2 -------------------------------------------------------------------------- */ + IMuseElectricItem getManager(ItemStack stack); + + @Override + void chargeFromArmor(ItemStack itemStack, EntityLivingBase entity); + + @Override + boolean use(ItemStack itemStack, double amount, EntityLivingBase entity); + + boolean canProvideEnergy(ItemStack itemStack); + + @Override + double getCharge(ItemStack itemStack); + + double getMaxCharge(ItemStack itemStack); + + int getTier(ItemStack itemStack); + + double getTransferLimit(ItemStack itemStack); + + @Override + double charge(ItemStack itemStack, double amount, int tier, boolean ignoreTransferLimit, boolean simulate); + + @Override + double discharge(ItemStack itemStack, double amount, int tier, boolean ignoreTransferLimit, boolean externally, boolean simulate); + + @Override + boolean canUse(ItemStack itemStack, double amount); + + @Override + String getToolTip(ItemStack itemStack); + + Item getChargedItem(ItemStack itemStack); + + Item getEmptyItem(ItemStack itemStack); + + /* Thermal Expansion -------------------------------------------------------------------------- */ + int receiveEnergy(ItemStack stack, int energy, boolean simulate); + + int extractEnergy(ItemStack stack, int energy, boolean simulate); + + int getEnergyStored(ItemStack theItem); + + int getMaxEnergyStored(ItemStack theItem); + + int getMaxDamage(ItemStack itemStack); + + /* Applied Energistics 2 ---------------------------------------------------------------------- */ + double injectAEPower(ItemStack stack, double ae); + + double extractAEPower(ItemStack stack, double ae); + + double getAEMaxPower(ItemStack stack); + + double getAECurrentPower(ItemStack stack); + + AccessRestriction getPowerFlow(ItemStack stack); +} \ No newline at end of file diff --git a/src/main/java/net/machinemuse/api/electricity/MuseElectricAdapter.java b/src/main/java/net/machinemuse/api/electricity/MuseElectricAdapter.java new file mode 100644 index 0000000..8e6d35e --- /dev/null +++ b/src/main/java/net/machinemuse/api/electricity/MuseElectricAdapter.java @@ -0,0 +1,44 @@ +package net.machinemuse.api.electricity; + +import net.minecraft.item.ItemStack; + +/** + * Ported to Java by lehjr on 11/4/16. + */ +public class MuseElectricAdapter extends ElectricAdapter { + private final ItemStack stack; + private final MuseElectricItem item; + + public MuseElectricAdapter(final ItemStack stack) { + this.stack = stack; + this.item = (MuseElectricItem)stack.getItem(); + } + + public ItemStack stack() { + return this.stack; + } + + public MuseElectricItem item() { + return this.item; + } + + @Override + public double getCurrentEnergy() { + return this.item().getCurrentEnergy(this.stack()); + } + + @Override + public double getMaxEnergy() { + return this.item().getMaxEnergy(this.stack()); + } + + @Override + public double drainEnergy(final double requested) { + return this.item().drainEnergyFrom(this.stack(), requested); + } + + @Override + public double giveEnergy(final double provided) { + return this.item().giveEnergyTo(this.stack(), provided); + } +} diff --git a/src/main/java/net/machinemuse/api/electricity/MuseElectricItem.java b/src/main/java/net/machinemuse/api/electricity/MuseElectricItem.java new file mode 100644 index 0000000..1e3ebff --- /dev/null +++ b/src/main/java/net/machinemuse/api/electricity/MuseElectricItem.java @@ -0,0 +1,233 @@ +package net.machinemuse.api.electricity; + +import appeng.api.config.AccessRestriction; +import ic2.api.item.ElectricItem; +import net.machinemuse.api.ModuleManager; +import net.machinemuse.numina.item.ModeChangingItem; +import net.machinemuse.utils.ElectricItemUtils; +import net.machinemuse.utils.MuseItemUtils; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.machinemuse.api.electricity.ElectricConversions; + +/** + * Author: MachineMuse (Claire Semple) + * Created: 10:12 PM, 4/20/13 + * + * Ported to Java by lehjr on 11/3/16. + */ +public class MuseElectricItem extends Item implements IMuseElectricItem { + private static MuseElectricItem INSTANCE; + + public static MuseElectricItem getInstance() { + if (INSTANCE == null) + INSTANCE = new MuseElectricItem(); + return INSTANCE; + } + + /** + * Call to get the energy of an item + * + * @param stack ItemStack to set + * @return Current energy level + */ + public double getCurrentEnergy(ItemStack stack) { + return MuseItemUtils.getDoubleOrZero(stack, ElectricItemUtils.CURRENT_ENERGY); + } + + /** + * Call to set the energy of an item + * + * @param stack ItemStack to set + * @return Maximum energy level + */ + public double getMaxEnergy(ItemStack stack) { + return ModuleManager.computeModularProperty(stack, ElectricItemUtils.MAXIMUM_ENERGY); + } + + /** + * Call to set the energy of an item + * + * @param stack ItemStack to set + * @param energy Level to set it to + */ + public void setCurrentEnergy(ItemStack stack, double energy) { + MuseItemUtils.setDoubleOrRemove(stack, ElectricItemUtils.CURRENT_ENERGY, Math.min(energy, getMaxEnergy(stack))); + } + + /** + * Call to drain energy from an item + * + * @param stack ItemStack being requested for energy + * @param requested Amount of energy to drain + * @return Amount of energy successfully drained + */ + public double drainEnergyFrom(ItemStack stack, double requested) { + double available = getCurrentEnergy(stack); + if (available > requested) { + setCurrentEnergy(stack, available - requested); + return requested; + } else { + setCurrentEnergy(stack, 0); + return available; + } + } + + /** + * Call to give energy to an item + * + * @param stack ItemStack being provided with energy + * @param provided Amount of energy to add + * @return Amount of energy added + */ + public double giveEnergyTo(ItemStack stack, double provided) { + double available = getCurrentEnergy(stack); + double max = getMaxEnergy(stack); + + if (available + provided < max) { + setCurrentEnergy(stack, available + provided); + return provided; + } else { + setCurrentEnergy(stack, max); + return max - available; + } + } + + /* Industrialcraft 2 -------------------------------------------------------------------------- */ + public IMuseElectricItem getManager(ItemStack stack) { + return this; + } + + @Override + public void chargeFromArmor(ItemStack itemStack, EntityLivingBase entity) { + ElectricItem.rawManager.chargeFromArmor(itemStack, entity); + } + + @Override + public boolean use(ItemStack itemStack, double amount, EntityLivingBase entity) { + return ElectricItem.rawManager.use(itemStack, ElectricConversions.museEnergyToEU(amount), entity); + } + + public boolean canProvideEnergy(ItemStack itemStack) { + return true; + } + + @Override + public double getCharge(ItemStack itemStack) { + return ElectricConversions.museEnergyToEU(getCurrentEnergy(itemStack)); + } + + public double getMaxCharge(ItemStack itemStack) { + return ElectricConversions.museEnergyToEU(getMaxEnergy(itemStack)); + } + + public int getTier(ItemStack itemStack) { + return ElectricConversions.getTier(itemStack); + } + + public double getTransferLimit(ItemStack itemStack) { + return ElectricConversions.museEnergyToEU(Math.sqrt(getMaxEnergy(itemStack))); + } + + @Override + public double charge(ItemStack itemStack, double amount, int tier, boolean ignoreTransferLimit, boolean simulate){ + double current = getCurrentEnergy(itemStack); + double transfer = (ignoreTransferLimit || amount < getTransferLimit(itemStack)) ? ElectricConversions.museEnergyFromEU(amount) : getTransferLimit(itemStack); + double given = giveEnergyTo(itemStack, transfer); + if (simulate) { + setCurrentEnergy(itemStack, current); + } + return ElectricConversions.museEnergyToEU(given); + } + + @Override + public double discharge(ItemStack itemStack, double amount, int tier, boolean ignoreTransferLimit, boolean externally, boolean simulate) { + double current = getCurrentEnergy(itemStack); + double transfer = (ignoreTransferLimit || amount < getTransferLimit(itemStack)) ? ElectricConversions.museEnergyFromEU(amount) : getTransferLimit(itemStack); + double taken = drainEnergyFrom(itemStack, transfer); + if (simulate) { + setCurrentEnergy(itemStack, current); + } + return ElectricConversions.museEnergyToEU(taken); + } + + @Override + public boolean canUse(ItemStack itemStack, double amount) { + return ElectricConversions.museEnergyFromEU(amount) < getCurrentEnergy(itemStack); + } + + @Override + public String getToolTip(ItemStack itemStack) { + return itemStack.getTooltip(Minecraft.getMinecraft().thePlayer, false).toString(); + } + + public Item getChargedItem(ItemStack itemStack) { + return this; + } + + public Item getEmptyItem(ItemStack itemStack) { + return this; + } + + /* Thermal Expansion -------------------------------------------------------------------------- */ + public int receiveEnergy(ItemStack stack, int energy, boolean simulate) { + double current = getCurrentEnergy(stack); + double receivedME = ElectricConversions.museEnergyFromRF(energy); + double eatenME = giveEnergyTo(stack, receivedME); + if (simulate) { + setCurrentEnergy(stack, current); + } + return ElectricConversions.museEnergyToRF(eatenME); + } + + public int extractEnergy(ItemStack stack, int energy, boolean simulate) { + double current = getCurrentEnergy(stack); + double requesteddME = ElectricConversions.museEnergyFromRF(energy); + double takenME = drainEnergyFrom(stack, requesteddME); + if (simulate) { + setCurrentEnergy(stack, current); + } + return ElectricConversions.museEnergyToRF(takenME); + } + + public int getEnergyStored(ItemStack theItem) { + return ElectricConversions.museEnergyToRF(getCurrentEnergy(theItem)); + } + + public int getMaxEnergyStored(ItemStack theItem) { + return ElectricConversions.museEnergyToRF(getMaxEnergy(theItem)); + } + + public int getMaxDamage(ItemStack itemStack) { + return 0; + } + + /* Applied Energistics 2 ---------------------------------------------------------------------- */ + public double injectAEPower(ItemStack stack, double ae) { + double current = getCurrentEnergy(stack); + double recieved = ElectricConversions.museEnergyFromAE(ae); + setCurrentEnergy(stack, current); + return ElectricConversions.museEnergyToAE(recieved); + } + + public double extractAEPower(ItemStack stack, double ae) { + double current = getCurrentEnergy(stack); + double taken = ElectricConversions.museEnergyFromAE(ae); + setCurrentEnergy(stack, current); + return ElectricConversions.museEnergyToAE(taken); + } + + public double getAEMaxPower(ItemStack stack) { + return ElectricConversions.museEnergyToAE(getCurrentEnergy(stack)); + } + + public double getAECurrentPower(ItemStack stack) { + return ElectricConversions.museEnergyToAE(getCurrentEnergy(stack)); + } + + public AccessRestriction getPowerFlow(ItemStack stack) { + return AccessRestriction.READ_WRITE; + } +} diff --git a/src/main/java/net/machinemuse/api/electricity/TEElectricAdapter.java b/src/main/java/net/machinemuse/api/electricity/TEElectricAdapter.java new file mode 100644 index 0000000..3348d35 --- /dev/null +++ b/src/main/java/net/machinemuse/api/electricity/TEElectricAdapter.java @@ -0,0 +1,45 @@ +package net.machinemuse.api.electricity; + +import cofh.api.energy.IEnergyContainerItem; +import net.minecraft.item.ItemStack; + +/** + * Ported to Java by lehjr on 11/4/16. + */ +public class TEElectricAdapter extends ElectricAdapter { + private final ItemStack stack; + private final IEnergyContainerItem item; + + public TEElectricAdapter(final ItemStack stack) { + this.stack = stack; + this.item = (IEnergyContainerItem)stack.getItem(); + } + + public ItemStack stack() { + return this.stack; + } + + public IEnergyContainerItem item() { + return this.item; + } + + @Override + public double getCurrentEnergy() { + return ElectricConversions.museEnergyFromRF(this.item().getEnergyStored(this.stack())); + } + + @Override + public double getMaxEnergy() { + return ElectricConversions.museEnergyFromRF(this.item().getMaxEnergyStored(this.stack())); + } + + @Override + public double drainEnergy(final double requested) { + return ElectricConversions.museEnergyFromRF(this.item().extractEnergy(this.stack(), ElectricConversions.museEnergyToRF(requested), false)); + } + + @Override + public double giveEnergy(final double provided) { + return ElectricConversions.museEnergyFromRF(this.item().receiveEnergy(this.stack(), ElectricConversions.museEnergyToRF(provided), false)); + } +} diff --git a/src/main/java/net/machinemuse/general/gui/frame/ItemInfoFrame.java b/src/main/java/net/machinemuse/general/gui/frame/ItemInfoFrame.java index 2808cfa..bce0649 100644 --- a/src/main/java/net/machinemuse/general/gui/frame/ItemInfoFrame.java +++ b/src/main/java/net/machinemuse/general/gui/frame/ItemInfoFrame.java @@ -1,6 +1,6 @@ package net.machinemuse.general.gui.frame; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.general.gui.clickable.ClickableItem; import net.machinemuse.numina.geometry.Colour; import net.machinemuse.numina.geometry.MusePoint2D; diff --git a/src/main/scala/net/machinemuse/general/gui/frame/ItemModelViewFrame.java b/src/main/java/net/machinemuse/general/gui/frame/ItemModelViewFrame.java similarity index 100% rename from src/main/scala/net/machinemuse/general/gui/frame/ItemModelViewFrame.java rename to src/main/java/net/machinemuse/general/gui/frame/ItemModelViewFrame.java diff --git a/src/main/java/net/machinemuse/powersuits/client/render/item/ToolRenderer.java b/src/main/java/net/machinemuse/powersuits/client/render/item/ToolRenderer.java index 4793b23..cc35d93 100644 --- a/src/main/java/net/machinemuse/powersuits/client/render/item/ToolRenderer.java +++ b/src/main/java/net/machinemuse/powersuits/client/render/item/ToolRenderer.java @@ -4,6 +4,7 @@ import net.machinemuse.numina.geometry.Colour; import net.machinemuse.numina.render.MuseIconUtils; import net.machinemuse.powersuits.client.render.entity.MuseRender; import net.machinemuse.powersuits.common.MPSItems; +import net.machinemuse.powersuits.item.IModularItemBase; import net.machinemuse.powersuits.item.ItemPowerFist; import net.minecraft.client.Minecraft; import net.minecraft.client.entity.EntityClientPlayerMP; @@ -59,8 +60,11 @@ public class ToolRenderer extends MuseRender implements IItemRenderer { boolean drawIcon = false; ItemPowerFist item = (ItemPowerFist) itemStack.getItem(); - Colour colour = item.getColorFromItemStack(itemStack); - Colour glow = item.getColorFromItemStack(itemStack); + Colour colour = ((IModularItemBase) item).getColorFromItemStack(itemStack); + Colour glow = ((IModularItemBase) item).getColorFromItemStack(itemStack); + + + switch (type) { case ENTITY: RenderBlocks renderEntity = (RenderBlocks) data[0]; diff --git a/src/main/java/net/machinemuse/powersuits/common/MPSCreativeTab.java b/src/main/java/net/machinemuse/powersuits/common/MPSCreativeTab.java new file mode 100644 index 0000000..a35e23b --- /dev/null +++ b/src/main/java/net/machinemuse/powersuits/common/MPSCreativeTab.java @@ -0,0 +1,18 @@ +package net.machinemuse.powersuits.common; + +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; + +/** + * Ported to Java by lehjr on 11/3/16. + */ +public class MPSCreativeTab extends CreativeTabs { + public MPSCreativeTab() { + super(CreativeTabs.getNextID(), "powersuits"); + } + + @Override + public Item getTabIconItem() { + return MPSItems.INSTANCE.powerArmorHead; + } +} \ No newline at end of file diff --git a/src/main/java/net/machinemuse/powersuits/common/MPSGuiHandler.java b/src/main/java/net/machinemuse/powersuits/common/MPSGuiHandler.java new file mode 100644 index 0000000..edf15b3 --- /dev/null +++ b/src/main/java/net/machinemuse/powersuits/common/MPSGuiHandler.java @@ -0,0 +1,56 @@ +package net.machinemuse.powersuits.common; + +import cpw.mods.fml.common.network.IGuiHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.machinemuse.general.gui.*; +import net.machinemuse.general.gui.frame.PortableCraftingContainer; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.stats.AchievementList; +import net.minecraft.world.World; + +/** + * Gui handler for this mod. Mainly just takes an ID according to what was + * passed to player.OpenGUI, and opens the corresponding GUI. + * + * @author MachineMuse + * + * Ported to Java by lehjr on 11/3/16. + */ +public final class MPSGuiHandler implements IGuiHandler { + private static MPSGuiHandler INSTANCE; + + public static MPSGuiHandler getInstance() { + if (INSTANCE == null) + INSTANCE = new MPSGuiHandler(); + return INSTANCE; + } + + @Override + public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { + if (ID == 4) + return new PortableCraftingContainer(player.inventory, world, x, y, z); + return null; + } + + @SideOnly(Side.CLIENT) + @Override + public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { + Minecraft.getMinecraft().thePlayer.addStat(AchievementList.openInventory, 1); + switch (ID) { + case 0: + return new GuiTinkerTable(player, x, y, z); + case 1: + return new KeyConfigGui(player, x, y, z); + case 2: + return new GuiFieldTinker(player); + case 3: + return new CosmeticGui(player, x, y, z); + case 4: + return new PortableCraftingGui(player, world, x, y, z); + default: + return null; + } + } +} \ No newline at end of file diff --git a/src/main/java/net/machinemuse/powersuits/common/ModCompatibility.java b/src/main/java/net/machinemuse/powersuits/common/ModCompatibility.java index 319e6fd..c33876c 100644 --- a/src/main/java/net/machinemuse/powersuits/common/ModCompatibility.java +++ b/src/main/java/net/machinemuse/powersuits/common/ModCompatibility.java @@ -2,7 +2,7 @@ package net.machinemuse.powersuits.common; import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.ModAPIManager; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.numina.general.MuseLogger; import net.machinemuse.powersuits.powermodule.armor.ApiaristArmorModule; diff --git a/src/main/java/net/machinemuse/powersuits/event/HarvestEventHandler.java b/src/main/java/net/machinemuse/powersuits/event/HarvestEventHandler.java index 469033d..cf87ca9 100644 --- a/src/main/java/net/machinemuse/powersuits/event/HarvestEventHandler.java +++ b/src/main/java/net/machinemuse/powersuits/event/HarvestEventHandler.java @@ -1,7 +1,7 @@ package net.machinemuse.powersuits.event; import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IBlockBreakingModule; import net.machinemuse.powersuits.item.ItemPowerFist; diff --git a/src/main/scala/net/machinemuse/powersuits/item/IModeChangingModularItem.java b/src/main/java/net/machinemuse/powersuits/item/IModeChangingModularItem.java similarity index 89% rename from src/main/scala/net/machinemuse/powersuits/item/IModeChangingModularItem.java rename to src/main/java/net/machinemuse/powersuits/item/IModeChangingModularItem.java index 98ddc71..61df1f1 100644 --- a/src/main/scala/net/machinemuse/powersuits/item/IModeChangingModularItem.java +++ b/src/main/java/net/machinemuse/powersuits/item/IModeChangingModularItem.java @@ -8,6 +8,9 @@ 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{ diff --git a/src/main/java/net/machinemuse/powersuits/item/IModularItemBase.java b/src/main/java/net/machinemuse/powersuits/item/IModularItemBase.java new file mode 100644 index 0000000..552ada9 --- /dev/null +++ b/src/main/java/net/machinemuse/powersuits/item/IModularItemBase.java @@ -0,0 +1,44 @@ +package net.machinemuse.powersuits.item; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.machinemuse.api.electricity.IModularItem; +import net.machinemuse.api.electricity.IMuseElectricItem; +import net.machinemuse.numina.geometry.Colour; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + +import java.util.List; + +/** + * Author: MachineMuse (Claire Semple) + * Created: 7:49 PM, 4/23/13 + * + * Ported to Java by lehjr on 11/4/16. + */ +public interface IModularItemBase extends IModularItem, IMuseElectricItem { + @SideOnly(Side.CLIENT) + int getColorFromItemStack(final ItemStack stack, final int p1); + + Colour getGlowFromItemStack(final ItemStack stack); + + Colour getColorFromItemStack(final ItemStack stack); + + @SideOnly(Side.CLIENT) + boolean requiresMultipleRenderPasses(); + + @SideOnly(Side.CLIENT) + void addInformation(final ItemStack stack, final EntityPlayer player, final List currentTipList, final boolean advancedToolTips); + + String formatInfo(final String string, final double value); + + List getLongInfo(final EntityPlayer player, final ItemStack stack); + + double getArmorDouble(final EntityPlayer player, final ItemStack stack); + + double getPlayerEnergy(final EntityPlayer player); + + void drainPlayerEnergy(final EntityPlayer player, final double drainEnergy); + + void givePlayerEnergy(final EntityPlayer player, final double joulesToGive); +} \ No newline at end of file diff --git a/src/main/scala/net/machinemuse/powersuits/item/ItemElectricArmor.java b/src/main/java/net/machinemuse/powersuits/item/ItemElectricArmor.java similarity index 58% rename from src/main/scala/net/machinemuse/powersuits/item/ItemElectricArmor.java rename to src/main/java/net/machinemuse/powersuits/item/ItemElectricArmor.java index a1f53a3..4874dfb 100644 --- a/src/main/scala/net/machinemuse/powersuits/item/ItemElectricArmor.java +++ b/src/main/java/net/machinemuse/powersuits/item/ItemElectricArmor.java @@ -1,24 +1,23 @@ package net.machinemuse.powersuits.item; -import ic2.api.item.IElectricItemManager; import appeng.api.config.AccessRestriction; -import net.minecraft.item.Item; -import net.minecraft.entity.EntityLivingBase; -import net.machinemuse.api.electricity.MuseElectricItem; -import net.machinemuse.api.electricity.MuseElectricItem$class; -import java.util.List; -import net.minecraft.entity.player.EntityPlayer; -import net.machinemuse.numina.geometry.Colour; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.item.ItemStack; -import scala.reflect.ScalaSignature; +import net.machinemuse.api.electricity.IMuseElectricItem; +import net.machinemuse.api.electricity.MuseElectricItem; +import net.machinemuse.numina.geometry.Colour; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; import net.minecraft.item.ItemArmor; +import net.minecraft.item.ItemStack; + +import java.util.List; /** * Ported to Java by lehjr on 10/26/16. */ -public abstract class ItemElectricArmor extends ItemArmor implements ModularItemBase +public abstract class ItemElectricArmor extends ItemArmor implements IModularItemBase { public ItemElectricArmor(final ItemArmor.ArmorMaterial material, final int index1, final int index2) { super(material, index1, index2); @@ -33,20 +32,20 @@ public abstract class ItemElectricArmor extends ItemArmor implements ModularItem @SideOnly(Side.CLIENT) public int getColorFromItemStack(final ItemStack stack, final int par2) { - return ModularItemBase$class.getColorFromItemStack(this, stack, par2); + return ModularItemBase.getInstance().getColorFromItemStack(stack, par2); } public Colour getGlowFromItemStack(final ItemStack stack) { - return ModularItemBase$class.getGlowFromItemStack(this, stack); + return ModularItemBase.getInstance().getGlowFromItemStack(stack); } public Colour getColorFromItemStack(final ItemStack stack) { - return ModularItemBase$class.getColorFromItemStack(this, stack); + return ModularItemBase.getInstance().getColorFromItemStack(stack); } @SideOnly(Side.CLIENT) public boolean requiresMultipleRenderPasses() { - return ModularItemBase$class.requiresMultipleRenderPasses(this); + return ModularItemBase.getInstance().requiresMultipleRenderPasses(); } // @SideOnly(Side.CLIENT) @@ -55,138 +54,139 @@ public abstract class ItemElectricArmor extends ItemArmor implements ModularItem // } public String formatInfo(final String string, final double value) { - return ModularItemBase$class.formatInfo(this, string, value); + return ModularItemBase.getInstance().formatInfo(string, value); } public List getLongInfo(final EntityPlayer player, final ItemStack stack) { - return (List)ModularItemBase$class.getLongInfo(this, player, stack); + return (List) ModularItemBase.getInstance().getLongInfo(player, stack); } public double getArmorDouble(final EntityPlayer player, final ItemStack stack) { - return ModularItemBase$class.getArmorDouble(this, player, stack); + return ModularItemBase.getInstance().getArmorDouble(player, stack); } public double getPlayerEnergy(final EntityPlayer player) { - return ModularItemBase$class.getPlayerEnergy(this, player); + return ModularItemBase.getInstance().getPlayerEnergy(player); } public void drainPlayerEnergy(final EntityPlayer player, final double drainEnergy) { - ModularItemBase$class.drainPlayerEnergy(this, player, drainEnergy); + ModularItemBase.getInstance().drainPlayerEnergy(player, drainEnergy); } public void givePlayerEnergy(final EntityPlayer player, final double joulesToGive) { - ModularItemBase$class.givePlayerEnergy(this, player, joulesToGive); + ModularItemBase.getInstance().givePlayerEnergy(player, joulesToGive); } public double getCurrentEnergy(final ItemStack stack) { - return MuseElectricItem$class.getCurrentEnergy(this, stack); + return MuseElectricItem.getInstance().getCurrentEnergy(stack); } public double getMaxEnergy(final ItemStack stack) { - return MuseElectricItem$class.getMaxEnergy(this, stack); + return MuseElectricItem.getInstance().getMaxEnergy(stack); } public void setCurrentEnergy(final ItemStack stack, final double energy) { - MuseElectricItem$class.setCurrentEnergy(this, stack, energy); + MuseElectricItem.getInstance().setCurrentEnergy(stack, energy); } public double drainEnergyFrom(final ItemStack stack, final double requested) { - return MuseElectricItem$class.drainEnergyFrom(this, stack, requested); + return MuseElectricItem.getInstance().drainEnergyFrom(stack, requested); } public double giveEnergyTo(final ItemStack stack, final double provided) { - return MuseElectricItem$class.giveEnergyTo(this, stack, provided); + return MuseElectricItem.getInstance().giveEnergyTo(stack, provided); } - public MuseElectricItem getManager(final ItemStack itemStack) { - return MuseElectricItem$class.getManager(this, itemStack); + public IMuseElectricItem getManager(final ItemStack itemStack) { + return MuseElectricItem.getInstance().getManager(itemStack); } public void chargeFromArmor(final ItemStack itemStack, final EntityLivingBase entity) { - MuseElectricItem$class.chargeFromArmor(this, itemStack, entity); + MuseElectricItem.getInstance().chargeFromArmor(itemStack, entity); } public boolean use(final ItemStack itemStack, final double amount, final EntityLivingBase entity) { - return MuseElectricItem$class.use(this, itemStack, amount, entity); + return MuseElectricItem.getInstance().use(itemStack, amount, entity); } public boolean canProvideEnergy(final ItemStack itemStack) { - return MuseElectricItem$class.canProvideEnergy(this, itemStack); + return MuseElectricItem.getInstance().canProvideEnergy(itemStack); } public double getCharge(final ItemStack itemStack) { - return MuseElectricItem$class.getCharge(this, itemStack); + return MuseElectricItem.getInstance().getCharge(itemStack); } public double getMaxCharge(final ItemStack itemStack) { - return MuseElectricItem$class.getMaxCharge(this, itemStack); + return MuseElectricItem.getInstance().getMaxCharge(itemStack); } public int getTier(final ItemStack itemStack) { - return MuseElectricItem$class.getTier(this, itemStack); + return MuseElectricItem.getInstance().getTier(itemStack); } public double getTransferLimit(final ItemStack itemStack) { - return MuseElectricItem$class.getTransferLimit(this, itemStack); + return MuseElectricItem.getInstance().getTransferLimit(itemStack); } public double charge(final ItemStack itemStack, final double amount, final int tier, final boolean ignoreTransferLimit, final boolean simulate) { - return MuseElectricItem$class.charge(this, itemStack, amount, tier, ignoreTransferLimit, simulate); + return MuseElectricItem.getInstance().charge(itemStack, amount, tier, ignoreTransferLimit, simulate); } public double discharge(final ItemStack itemStack, final double amount, final int tier, final boolean ignoreTransferLimit, final boolean externally, final boolean simulate) { - return MuseElectricItem$class.discharge(this, itemStack, amount, tier, ignoreTransferLimit, externally, simulate); + return MuseElectricItem.getInstance().discharge(itemStack, amount, tier, ignoreTransferLimit, externally, simulate); } public boolean canUse(final ItemStack itemStack, final double amount) { - return MuseElectricItem$class.canUse(this, itemStack, amount); + return MuseElectricItem.getInstance().canUse(itemStack, amount); } public Item getChargedItem(final ItemStack itemStack) { - return MuseElectricItem$class.getChargedItem(this, itemStack); + return MuseElectricItem.getInstance().getChargedItem(itemStack); } public Item getEmptyItem(final ItemStack itemStack) { - return MuseElectricItem$class.getEmptyItem(this, itemStack); + return MuseElectricItem.getInstance().getEmptyItem(itemStack); } public int receiveEnergy(final ItemStack stack, final int energy, final boolean simulate) { - return MuseElectricItem$class.receiveEnergy(this, stack, energy, simulate); + return MuseElectricItem.getInstance().receiveEnergy(stack, energy, simulate); } public int extractEnergy(final ItemStack stack, final int energy, final boolean simulate) { - return MuseElectricItem$class.extractEnergy(this, stack, energy, simulate); + return MuseElectricItem.getInstance().extractEnergy(stack, energy, simulate); } public int getEnergyStored(final ItemStack theItem) { - return MuseElectricItem$class.getEnergyStored(this, theItem); + return MuseElectricItem.getInstance().getEnergyStored(theItem); } public int getMaxEnergyStored(final ItemStack theItem) { - return MuseElectricItem$class.getMaxEnergyStored(this, theItem); + return MuseElectricItem.getInstance().getMaxEnergyStored(theItem); } public int getMaxDamage(final ItemStack itemStack) { - return MuseElectricItem$class.getMaxDamage(this, itemStack); + return MuseElectricItem.getInstance().getMaxDamage(itemStack); } + /* Applied Energistics 2 ---------------------------------------------------------------------- */ public double injectAEPower(final ItemStack stack, final double ae) { - return MuseElectricItem$class.injectAEPower(this, stack, ae); + return MuseElectricItem.getInstance().injectAEPower(stack, ae); } public double extractAEPower(final ItemStack stack, final double ae) { - return MuseElectricItem$class.extractAEPower(this, stack, ae); + return MuseElectricItem.getInstance().extractAEPower(stack, ae); } public double getAEMaxPower(final ItemStack stack) { - return MuseElectricItem$class.getAEMaxPower(this, stack); + return MuseElectricItem.getInstance().getAEMaxPower(stack); } public double getAECurrentPower(final ItemStack stack) { - return MuseElectricItem$class.getAECurrentPower(this, stack); + return MuseElectricItem.getInstance().getAECurrentPower(stack); } public AccessRestriction getPowerFlow(final ItemStack stack) { - return MuseElectricItem$class.getPowerFlow(this, stack); + return MuseElectricItem.getInstance().getPowerFlow(stack); } } \ No newline at end of file diff --git a/src/main/java/net/machinemuse/powersuits/item/ItemPowerArmor.java b/src/main/java/net/machinemuse/powersuits/item/ItemPowerArmor.java new file mode 100644 index 0000000..966dc5f --- /dev/null +++ b/src/main/java/net/machinemuse/powersuits/item/ItemPowerArmor.java @@ -0,0 +1,195 @@ +package net.machinemuse.powersuits.item; + +import com.google.common.collect.Multimap; +import cpw.mods.fml.common.Optional; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.machinemuse.api.ApiaristArmor; +import net.machinemuse.api.IArmorTraits; +import net.machinemuse.api.ModuleManager; +import net.machinemuse.numina.geometry.Colour; +import net.machinemuse.powersuits.client.render.item.ArmorModel; +import net.machinemuse.powersuits.client.render.item.ArmorModel$; +import net.machinemuse.powersuits.common.Config; +import net.machinemuse.powersuits.powermodule.misc.InvisibilityModule; +import net.machinemuse.utils.ElectricItemUtils; +import net.machinemuse.utils.MuseCommonStrings; +import net.machinemuse.utils.MuseHeatUtils; +import net.machinemuse.utils.MuseItemUtils; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.ai.attributes.AttributeModifier; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemArmor; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.DamageSource; +import net.minecraftforge.common.ISpecialArmor; + +import java.util.UUID; + +/** + * Describes the 4 different modular armor pieces - head, torso, legs, feet. + * + * @author MachineMuse + * + * Ported to Java by lehjr on 11/4/16. + */ +public abstract class ItemPowerArmor extends ItemElectricArmor implements ISpecialArmor, IArmorTraits { + public ItemPowerArmor(final int renderIndex, final int armorType) { + super(ItemArmor.ArmorMaterial.IRON, renderIndex, armorType); + this.setMaxStackSize(1); + this.setCreativeTab(Config.getCreativeTab()); + } + + public ISpecialArmor.ArmorProperties getProperties(final EntityLivingBase player, final ItemStack armor, final DamageSource source, final double damage, final int slot) { + final int priority = 0; + Label_0057: { + if (source.isFireDamage()) { + final DamageSource overheatDamage = MuseHeatUtils.overheatDamage; + if (source == null) { + if (overheatDamage == null) { + break Label_0057; + } + } + else if (source.equals(overheatDamage)) { + break Label_0057; + } + return new ISpecialArmor.ArmorProperties(priority, 0.25, (int)(25 * damage)); + } + } + if (ModuleManager.itemHasModule(armor, "Radiation Shielding") && (source.damageType.equals("electricity") || source.damageType.equals("radiation"))) { + return new ISpecialArmor.ArmorProperties(priority, 0.25, (int)(25 * damage)); + } + double armorDouble2; + if (player instanceof EntityPlayer) { + armorDouble2 = this.getArmorDouble((EntityPlayer)player, armor); + } + else { + armorDouble2 = 2.0; + } + final double armorDouble = armorDouble2; + double absorbRatio = 0.04 * armorDouble; + int absorbMax = (int)armorDouble * 75; + if (source.isUnblockable()) { + absorbMax = 0; + absorbRatio = 0.0; + } + return new ISpecialArmor.ArmorProperties(priority, absorbRatio, absorbMax); + } + + public String getArmorTexture(final ItemStack itemstack, final Entity entity, final int slot, final int layer) { + return Config.BLANK_ARMOR_MODEL_PATH(); + } + + public int getColor(final ItemStack stack) { + final Colour c = this.getColorFromItemStack(stack); + return c.getInt(); + } + + @SideOnly(Side.CLIENT) + public ModelBiped getArmorModel(final EntityLivingBase entity, final ItemStack itemstack, final int armorSlot) { + final ArmorModel model = ArmorModel$.MODULE$.instance(); + model.visibleSection_$eq(armorSlot); + if (itemstack != null) { + if (entity instanceof EntityPlayer) { + ItemStack armorChest = ((EntityPlayer)entity).getCurrentArmor(2); + + if (!armorChest.equals(null) && armorChest.getItem() instanceof ItemPowerArmor) + if (ModuleManager.itemHasActiveModule(armorChest, InvisibilityModule.MODULE_ACTIVE_CAMOUFLAGE)) model.visibleSection_$eq(99); + + } + + if (ModuleManager.itemHasActiveModule(itemstack, "Transparent Armor")) { + model.visibleSection_$eq(99); + } + model.renderSpec_$eq(MuseItemUtils.getMuseRenderTag(itemstack, armorSlot)); + } + return (ModelBiped)model; + } + + public Multimap getAttributeModifiers(final ItemStack stack) { + final Multimap parent = super.getAttributeModifiers(stack); + parent.put((Object)"generic.knockbackResistance", (Object)new AttributeModifier(UUID.fromString("448ef0e9-9b7c-4e56-bf3a-6b52aeabff8d"), "generic.knockbackResistance", 0.25, 0)); + return (Multimap)parent; + } + + public int getItemEnchantability() { + return 0; + } + + public boolean hasColor(final ItemStack stack) { + final NBTTagCompound itemTag = MuseItemUtils.getMuseItemTag(stack); + return ModuleManager.tagHasModule(itemTag, "Red Tint") || ModuleManager.tagHasModule(itemTag, "Green Tint") || ModuleManager.tagHasModule(itemTag, "Blue Tint"); + } + + public int getArmorDisplay(final EntityPlayer player, final ItemStack armor, final int slot) { + return (int)this.getArmorDouble(player, armor); + } + + public double getHeatResistance(final EntityPlayer player, final ItemStack stack) { + return MuseHeatUtils.getMaxHeat(stack); + } + + @Override + public double getArmorDouble(final EntityPlayer player, final ItemStack stack) { + double totalArmor = 0.0; + final NBTTagCompound props = MuseItemUtils.getMuseItemTag(stack); + final double energy = ElectricItemUtils.getPlayerEnergy(player); + final double physArmor = ModuleManager.computeModularProperty(stack, MuseCommonStrings.ARMOR_VALUE_PHYSICAL); + final double enerArmor = ModuleManager.computeModularProperty(stack, MuseCommonStrings.ARMOR_VALUE_ENERGY); + final double enerConsum = ModuleManager.computeModularProperty(stack, MuseCommonStrings.ARMOR_ENERGY_CONSUMPTION); + totalArmor += physArmor; + if (energy > enerConsum) { + totalArmor += enerArmor; + } + totalArmor = Math.min(Config.getMaximumArmorPerPiece(), totalArmor); + return totalArmor; + } + + /** + * Inherited from ISpecialArmor, allows us to customize how the armor + * handles being damaged. + */ + public void damageArmor(final EntityLivingBase entity, final ItemStack stack, final DamageSource source, final int damage, final int slot) { + final NBTTagCompound itemProperties = MuseItemUtils.getMuseItemTag(stack); + if (entity instanceof EntityPlayer) { + final DamageSource overheatDamage = MuseHeatUtils.overheatDamage; + if (source == null) { + if (overheatDamage == null) { + return; + } + } + else if (source.equals(overheatDamage)) { + return; + } + if (source.isFireDamage()) { + final EntityPlayer player = (EntityPlayer)entity; + if (!source.equals(DamageSource.onFire) || MuseHeatUtils.getPlayerHeat(player) < MuseHeatUtils.getMaxHeat(player)) { + MuseHeatUtils.heatPlayer(player, damage); + } + } + else { + final double enerConsum = ModuleManager.computeModularProperty(stack, MuseCommonStrings.ARMOR_ENERGY_CONSUMPTION); + final double drain = enerConsum * damage; + if (entity instanceof EntityPlayer) { + ElectricItemUtils.drainPlayerEnergy((EntityPlayer)entity, drain); + } + else { + this.drainEnergyFrom(stack, drain); + } + } + } + } + + @Optional.Method(modid = "Forestry") + public boolean protectPlayer(final EntityPlayer player, final ItemStack armor, final String cause, final boolean doProtect) { + return ApiaristArmor.getInstance().protectPlayer(player, armor, cause, doProtect); + } + + @Optional.Method(modid = "Forestry") + public boolean protectEntity(final EntityLivingBase player, final ItemStack armor, final String cause, final boolean doProtect) { + return ApiaristArmor.getInstance().protectEntity(player, armor, cause, doProtect); + } +} \ No newline at end of file diff --git a/src/main/java/net/machinemuse/powersuits/item/ItemPowerArmorBoots.java b/src/main/java/net/machinemuse/powersuits/item/ItemPowerArmorBoots.java index 095a3e9..78b401e 100644 --- a/src/main/java/net/machinemuse/powersuits/item/ItemPowerArmorBoots.java +++ b/src/main/java/net/machinemuse/powersuits/item/ItemPowerArmorBoots.java @@ -4,8 +4,10 @@ import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import ic2.api.item.IMetalArmor; +import net.machinemuse.api.ApiaristArmor; import net.machinemuse.utils.render.MuseRenderer; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; diff --git a/src/main/java/net/machinemuse/powersuits/item/ItemPowerArmorChestplate.java b/src/main/java/net/machinemuse/powersuits/item/ItemPowerArmorChestplate.java index f7d8d34..9954d88 100644 --- a/src/main/java/net/machinemuse/powersuits/item/ItemPowerArmorChestplate.java +++ b/src/main/java/net/machinemuse/powersuits/item/ItemPowerArmorChestplate.java @@ -8,8 +8,7 @@ import net.minecraft.client.renderer.texture.IIconRegister; /** * Ported to Java by lehjr on 10/26/16. */ -public class ItemPowerArmorChestplate extends ItemPowerArmor -{ +public class ItemPowerArmorChestplate extends ItemPowerArmor { private final String iconpath = MuseRenderer.ICON_PREFIX + "armortorso"; public ItemPowerArmorChestplate() { diff --git a/src/main/java/net/machinemuse/powersuits/item/ItemPowerFist.java b/src/main/java/net/machinemuse/powersuits/item/ItemPowerFist.java index d6b738f..279af3d 100644 --- a/src/main/java/net/machinemuse/powersuits/item/ItemPowerFist.java +++ b/src/main/java/net/machinemuse/powersuits/item/ItemPowerFist.java @@ -13,6 +13,7 @@ import mekanism.api.IMekWrench; import mods.railcraft.api.core.items.IToolCrowbar; import net.machinemuse.api.IPowerModule; import net.machinemuse.api.ModuleManager; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.moduletrigger.IBlockBreakingModule; import net.machinemuse.api.moduletrigger.IRightClickModule; import net.machinemuse.general.gui.MuseIcon; @@ -32,16 +33,16 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumAction; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemTool; import net.minecraft.util.DamageSource; import net.minecraft.util.IIcon; import net.minecraft.util.Vec3; import net.minecraft.world.World; import powercrystals.minefactoryreloaded.api.IMFRHammer; - - import javax.annotation.Nullable; import java.util.List; + /** * Describes the modular power tool. * @@ -61,7 +62,19 @@ import java.util.List; @Optional.Interface(iface = "cofh.api.item.IToolHammer", modid = "CoFHCore", striprefs = true), @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 ItemElectricTool implements IToolGrafter, IToolHammer, IMFRHammer, IToolCrowbar, IAEWrench, IToolWrench, IScrewdriver, mrtjp.projectred.api.IScrewdriver, ITool, IMekWrench, IModeChangingModularItem +public class ItemPowerFist extends MPSItemElectricTool +implements + IToolGrafter, + IToolHammer, + IMFRHammer, + IToolCrowbar, + IAEWrench, + IToolWrench, + IScrewdriver, + mrtjp.projectred.api.IScrewdriver, + ITool, IMekWrench, + IModularItem, + IModeChangingModularItem { private final String iconpath = MuseIcon.ICON_PREFIX + "handitem"; public ItemPowerFist() { @@ -425,4 +438,26 @@ public class ItemPowerFist extends ItemElectricTool implements IToolGrafter, ITo public String getActiveMode(ItemStack stack) { return ModeChangingModularItem.getInstance().getActiveMode(stack); } + + + /* IModularItem ------------------------------------------------------------------------------- */ + @Override + public List getLongInfo(EntityPlayer player, ItemStack stack) { + return null; + } + + @Override + public double getPlayerEnergy(EntityPlayer player) { + return ElectricItemUtils.getPlayerEnergy(player); + } + + @Override + public void drainPlayerEnergy(EntityPlayer player, double drainAmount) { + ElectricItemUtils.drainPlayerEnergy(player, drainAmount); + } + + @Override + public void givePlayerEnergy(EntityPlayer player, double joulesToGive) { + ElectricItemUtils.givePlayerEnergy(player, joulesToGive); + } } \ No newline at end of file diff --git a/src/main/java/net/machinemuse/powersuits/item/MPSItemElectricTool.java b/src/main/java/net/machinemuse/powersuits/item/MPSItemElectricTool.java new file mode 100644 index 0000000..befe391 --- /dev/null +++ b/src/main/java/net/machinemuse/powersuits/item/MPSItemElectricTool.java @@ -0,0 +1,224 @@ +package net.machinemuse.powersuits.item; + +import appeng.api.config.AccessRestriction; +import com.google.common.collect.Sets; +import net.machinemuse.api.electricity.IMuseElectricItem; +import net.machinemuse.api.electricity.MuseElectricItem; +import net.machinemuse.numina.geometry.Colour; +import net.minecraft.block.Block; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemTool; + +import java.util.List; +import java.util.Set; + +/** + * Ported to Java by lehjr on 11/4/16. + */ +public class MPSItemElectricTool extends ItemTool implements IModularItemBase, IMuseElectricItem { + public static final Set blocksEffectiveOn = Sets.newHashSet(new Block[] { + Blocks.cobblestone, Blocks.double_stone_slab, Blocks.stone_slab, Blocks.stone, Blocks.sandstone, Blocks.mossy_cobblestone, + Blocks.iron_ore, Blocks.iron_block, Blocks.coal_ore, Blocks.gold_block, Blocks.gold_ore, Blocks.diamond_ore, + Blocks.diamond_block, Blocks.ice, Blocks.netherrack, Blocks.lapis_ore, Blocks.lapis_block, Blocks.redstone_ore, + Blocks.lit_redstone_ore, Blocks.rail, Blocks.detector_rail, Blocks.golden_rail, Blocks.activator_rail}); + + + protected MPSItemElectricTool(float damageBonus, ToolMaterial material) { + super(damageBonus, material, blocksEffectiveOn); + + } + + @Override + public String getToolTip(ItemStack itemStack) { + return null; + } + + @Override + public double getCurrentEnergy(ItemStack stack) { + return MuseElectricItem.getInstance().getCurrentEnergy(stack); + } + + @Override + public double getMaxEnergy(ItemStack stack) { + return MuseElectricItem.getInstance().getMaxEnergy(stack); + } + + @Override + public void setCurrentEnergy(ItemStack stack, double energy) { + MuseElectricItem.getInstance().setCurrentEnergy(stack, energy); + } + + @Override + public double drainEnergyFrom(ItemStack stack, double requested) { + return MuseElectricItem.getInstance().drainEnergyFrom(stack, requested); + } + + @Override + public double giveEnergyTo(ItemStack stack, double provided) { + return MuseElectricItem.getInstance().giveEnergyTo(stack, provided); + } + + + /* Industrialcraft 2 -------------------------------------------------------------------------- */ + @Override + public IMuseElectricItem getManager(ItemStack stack) { + return MuseElectricItem.getInstance().getManager(stack); + } + + @Override + public void chargeFromArmor(ItemStack itemStack, EntityLivingBase entity) { + MuseElectricItem.getInstance().chargeFromArmor(itemStack, entity); + } + + @Override + public boolean use(ItemStack itemStack, double amount, EntityLivingBase entity) { + return MuseElectricItem.getInstance().use(itemStack, amount, entity); + } + + @Override + public boolean canProvideEnergy(ItemStack itemStack) { + return MuseElectricItem.getInstance().canProvideEnergy(itemStack); + } + + @Override + public double getCharge(ItemStack itemStack) { + return MuseElectricItem.getInstance().getCharge(itemStack); + } + + @Override + public double getMaxCharge(ItemStack itemStack) { + return MuseElectricItem.getInstance().getMaxCharge(itemStack); + } + + @Override + public int getTier(ItemStack itemStack) { + return MuseElectricItem.getInstance().getTier(itemStack); + } + + @Override + public double getTransferLimit(ItemStack itemStack) { + return MuseElectricItem.getInstance().getTransferLimit(itemStack); + } + + @Override + public double charge(ItemStack itemStack, double amount, int tier, boolean ignoreTransferLimit, boolean simulate) { + return MuseElectricItem.getInstance().charge(itemStack, amount, tier, ignoreTransferLimit, simulate); + } + + @Override + public double discharge(ItemStack itemStack, double amount, int tier, boolean ignoreTransferLimit, boolean externally, boolean simulate) { + return MuseElectricItem.getInstance().discharge(itemStack, amount, tier, ignoreTransferLimit, externally, simulate); + } + + @Override + public boolean canUse(ItemStack itemStack, double amount) { + return MuseElectricItem.getInstance().canUse(itemStack, amount); + } + + @Override + public Item getChargedItem(ItemStack itemStack) { + return MuseElectricItem.getInstance().getChargedItem(itemStack); + } + + @Override + public Item getEmptyItem(ItemStack itemStack) { + return MuseElectricItem.getInstance().getEmptyItem(itemStack); + } + + + /* Thermal Expansion -------------------------------------------------------------------------- */ + @Override + public int receiveEnergy(ItemStack stack, int energy, boolean simulate) { + return MuseElectricItem.getInstance().receiveEnergy(stack, energy, simulate); + } + + @Override + public int extractEnergy(ItemStack stack, int energy, boolean simulate) { + return MuseElectricItem.getInstance().extractEnergy(stack, energy, simulate); + } + + @Override + public int getEnergyStored(ItemStack theItem) { + return MuseElectricItem.getInstance().getEnergyStored(theItem); + } + + @Override + public int getMaxEnergyStored(ItemStack theItem) { + return MuseElectricItem.getInstance().getMaxEnergyStored(theItem); + } + + + /* Applied Energistics 2 ---------------------------------------------------------------------- */ + @Override + public double injectAEPower(ItemStack stack, double ae) { + return MuseElectricItem.getInstance().injectAEPower(stack, ae); + } + + @Override + public double extractAEPower(ItemStack stack, double ae) { + return MuseElectricItem.getInstance().extractAEPower(stack, ae); + } + + @Override + public double getAEMaxPower(ItemStack stack) { + return MuseElectricItem.getInstance().getAEMaxPower(stack); + } + + @Override + public double getAECurrentPower(ItemStack stack) { + return MuseElectricItem.getInstance().getAECurrentPower(stack); + } + + @Override + public AccessRestriction getPowerFlow(ItemStack stack) { + return MuseElectricItem.getInstance().getPowerFlow(stack); + } + + + /* IModularItemBase ------------------------------------------------------------------------------ */ + @Override + public Colour getGlowFromItemStack(ItemStack stack) { + return ModularItemBase.getInstance().getGlowFromItemStack(stack); + } + + @Override + public Colour getColorFromItemStack(ItemStack stack) { + return ModularItemBase.getInstance().getColorFromItemStack(stack); + } + + @Override + public String formatInfo(String string, double value) { + return ModularItemBase.getInstance().formatInfo(string, value); + } + + @Override + public List getLongInfo(EntityPlayer player, ItemStack stack) { + return ModularItemBase.getInstance().getLongInfo(player, stack); + } + + @Override + public double getArmorDouble(EntityPlayer player, ItemStack stack) { + return 0; + } + + + /* MPSItemElectricTool ------------------------------------------------------------------------ */ + @Override + public double getPlayerEnergy(EntityPlayer player) { + return 0; + } + + @Override + public void drainPlayerEnergy(EntityPlayer player, double drainEnergy) { + + } + + @Override + public void givePlayerEnergy(EntityPlayer player, double joulesToGive) { + + } +} diff --git a/src/main/scala/net/machinemuse/powersuits/item/ModeChangingModularItem.java b/src/main/java/net/machinemuse/powersuits/item/ModeChangingModularItem.java similarity index 97% rename from src/main/scala/net/machinemuse/powersuits/item/ModeChangingModularItem.java rename to src/main/java/net/machinemuse/powersuits/item/ModeChangingModularItem.java index fa75910..21fb30e 100644 --- a/src/main/scala/net/machinemuse/powersuits/item/ModeChangingModularItem.java +++ b/src/main/java/net/machinemuse/powersuits/item/ModeChangingModularItem.java @@ -9,7 +9,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; -import scala.Option; import javax.annotation.Nullable; import java.util.ArrayList; @@ -81,7 +80,7 @@ public class ModeChangingModularItem implements IModeChangingModularItem { } } - /* I M O D E C H A N G I N G I T E M ---------------------------------------------------------- */ + /* IModeChangingItem -------------------------------------------------------------------------- */ @Override public void setActiveMode(ItemStack stack, String newMode) { diff --git a/src/main/java/net/machinemuse/powersuits/item/ModularItemBase.java b/src/main/java/net/machinemuse/powersuits/item/ModularItemBase.java new file mode 100644 index 0000000..7ee414a --- /dev/null +++ b/src/main/java/net/machinemuse/powersuits/item/ModularItemBase.java @@ -0,0 +1,263 @@ +package net.machinemuse.powersuits.item; + +import appeng.api.config.AccessRestriction; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.machinemuse.api.ModuleManager; +import net.machinemuse.api.electricity.IMuseElectricItem; +import net.machinemuse.api.electricity.MuseElectricItem; +import net.machinemuse.numina.geometry.Colour; +import net.machinemuse.powersuits.powermodule.misc.CosmeticGlowModule; +import net.machinemuse.powersuits.powermodule.misc.TintModule; +import net.machinemuse.utils.ElectricItemUtils; +import net.machinemuse.utils.MuseCommonStrings; +import net.machinemuse.utils.MuseStringUtils; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import java.util.ArrayList; +import java.util.List; + +import static net.machinemuse.numina.general.MuseMathUtils.clampDouble; + +/** + * Author: MachineMuse (Claire Semple) + * Created: 7:49 PM, 4/23/13 + * + * Ported to Java by lehjr on 11/4/16. + */ +public class ModularItemBase extends Item implements IModularItemBase { + private static ModularItemBase INSTANCE; + + public static ModularItemBase getInstance() { + if (INSTANCE == null) { + INSTANCE = new ModularItemBase(); + } + return INSTANCE; + } + + @SideOnly(Side.CLIENT) + @Override + public int getColorFromItemStack(ItemStack stack, int par2) { + return getColorFromItemStack(stack).getInt(); + } + + @Override + public Colour getGlowFromItemStack(ItemStack stack) { + if (!ModuleManager.itemHasActiveModule(stack, CosmeticGlowModule.MODULE_GLOW)) { + return Colour.LIGHTBLUE; + } + double computedred = ModuleManager.computeModularProperty(stack, CosmeticGlowModule.RED_GLOW); + double computedgreen = ModuleManager.computeModularProperty(stack, CosmeticGlowModule.GREEN_GLOW); + double computedblue = ModuleManager.computeModularProperty(stack, CosmeticGlowModule.BLUE_GLOW); + Colour colour = new Colour(clampDouble(computedred, 0, 1), clampDouble(computedgreen, 0, 1), clampDouble(computedblue, 0, 1), 0.8); + return colour; + } + + @Override + public Colour getColorFromItemStack(ItemStack stack) { + if (!ModuleManager.itemHasActiveModule(stack, TintModule.MODULE_TINT)) { + return Colour.WHITE; + } + double computedred = ModuleManager.computeModularProperty(stack, TintModule.RED_TINT); + double computedgreen = ModuleManager.computeModularProperty(stack, TintModule.GREEN_TINT); + double computedblue = ModuleManager.computeModularProperty(stack, TintModule.BLUE_TINT); + Colour colour = new Colour(clampDouble(computedred, 0, 1), clampDouble(computedgreen, 0, 1), clampDouble(computedblue, 0, 1), 1.0F); + return colour; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List currentTipList, boolean advancedToolTips) { + MuseCommonStrings.addInformation(stack, player, currentTipList, advancedToolTips); + } + + @Override + public String formatInfo(String string, double value) { + return string + '\t' + MuseStringUtils.formatNumberShort(value); + } + + + + /* IModularItem ------------------------------------------------------------------------------- */ + @Override + public List getLongInfo(EntityPlayer player, ItemStack stack) { + 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 + public double getArmorDouble(EntityPlayer player, ItemStack stack) { + return 0; + } + + @Override + public double getPlayerEnergy(EntityPlayer player) { + return ElectricItemUtils.getPlayerEnergy(player); + } + + @Override + public void drainPlayerEnergy(EntityPlayer player, double drainEnergy) { + ElectricItemUtils.drainPlayerEnergy(player, drainEnergy); + } + + @Override + public void givePlayerEnergy(EntityPlayer player, double joulesToGive) { + ElectricItemUtils.drainPlayerEnergy(player, joulesToGive); + } + + + /* MuseElectricItem --------------------------------------------------------------------------- */ + @Override + public double getCurrentEnergy(ItemStack stack) { + return MuseElectricItem.getInstance().getCurrentEnergy(stack); + } + + @Override + public double getMaxEnergy(ItemStack stack) { + return MuseElectricItem.getInstance().getCurrentEnergy(stack); + } + + @Override + public void setCurrentEnergy(ItemStack stack, double energy) { + MuseElectricItem.getInstance().setCurrentEnergy(stack, energy); + } + + @Override + public double drainEnergyFrom(ItemStack stack, double requested) { + return MuseElectricItem.getInstance().drainEnergyFrom(stack, requested); + } + + @Override + public double giveEnergyTo(ItemStack stack, double provided) { + return MuseElectricItem.getInstance().giveEnergyTo(stack, provided); + } + + @SideOnly(Side.CLIENT) + @Override + public String getToolTip(ItemStack itemStack) { + return itemStack.getTooltip(Minecraft.getMinecraft().thePlayer, false).toString(); + } + + /* Industrialcraft 2 -------------------------------------------------------------------------- */ + @Override + public IMuseElectricItem getManager(ItemStack stack) { + return MuseElectricItem.getInstance().getManager(stack); + } + + @Override + public void chargeFromArmor(ItemStack itemStack, EntityLivingBase entity) { + MuseElectricItem.getInstance().chargeFromArmor(itemStack, entity); + } + + @Override + public boolean use(ItemStack itemStack, double amount, EntityLivingBase entity) { + return MuseElectricItem.getInstance().use(itemStack, amount, entity); + } + + @Override + public boolean canProvideEnergy(ItemStack itemStack) { + return MuseElectricItem.getInstance().canProvideEnergy(itemStack); + } + + @Override + public double getCharge(ItemStack itemStack) { + return MuseElectricItem.getInstance().getCharge(itemStack); + } + + @Override + public double getMaxCharge(ItemStack itemStack) { + return MuseElectricItem.getInstance().getMaxCharge(itemStack); + } + + @Override + public int getTier(ItemStack itemStack) { + return MuseElectricItem.getInstance().getTier(itemStack); + } + + @Override + public double getTransferLimit(ItemStack itemStack) { + return MuseElectricItem.getInstance().getTransferLimit(itemStack); + } + + @Override + public double charge(ItemStack itemStack, double amount, int tier, boolean ignoreTransferLimit, boolean simulate) { + return MuseElectricItem.getInstance().charge(itemStack, amount, tier, ignoreTransferLimit, simulate); + } + + @Override + public double discharge(ItemStack itemStack, double amount, int tier, boolean ignoreTransferLimit, boolean externally, boolean simulate) { + return MuseElectricItem.getInstance().discharge(itemStack, amount, tier, ignoreTransferLimit, externally, simulate); + } + + @Override + public boolean canUse(ItemStack itemStack, double amount) { + return MuseElectricItem.getInstance().canUse(itemStack, amount); + } + + @Override + public Item getChargedItem(ItemStack itemStack) { + return MuseElectricItem.getInstance().getChargedItem(itemStack); + } + + @Override + public Item getEmptyItem(ItemStack itemStack) { + return MuseElectricItem.getInstance().getEmptyItem(itemStack); + } + + + /* Thermal Expansion -------------------------------------------------------------------------- */ + @Override + public int receiveEnergy(ItemStack stack, int energy, boolean simulate) { + return MuseElectricItem.getInstance().receiveEnergy(stack, energy, simulate); + } + + @Override + public int extractEnergy(ItemStack stack, int energy, boolean simulate) { + return MuseElectricItem.getInstance().extractEnergy(stack, energy, simulate); + } + + @Override + public int getEnergyStored(ItemStack theItem) { + return MuseElectricItem.getInstance().getEnergyStored(theItem); + } + + @Override + public int getMaxEnergyStored(ItemStack theItem) { + return MuseElectricItem.getInstance().getMaxEnergyStored(theItem); + } + + + /* Applied Energistics 2 ---------------------------------------------------------------------- */ + @Override + public double injectAEPower(ItemStack stack, double ae) { + return MuseElectricItem.getInstance().injectAEPower(stack, ae); + } + + @Override + public double extractAEPower(ItemStack stack, double ae) { + return MuseElectricItem.getInstance().extractAEPower(stack, ae); + } + + @Override + public double getAEMaxPower(ItemStack stack) { + return MuseElectricItem.getInstance().getAEMaxPower(stack); + } + + @Override + public double getAECurrentPower(ItemStack stack) { + return MuseElectricItem.getInstance().getAECurrentPower(stack); + } + + @Override + public AccessRestriction getPowerFlow(ItemStack stack) { + return MuseElectricItem.getInstance().getPowerFlow(stack); + } +} diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/PowerModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/PowerModule.java index 736d1e7..e7a880c 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/PowerModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/PowerModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import java.util.List; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/PowerModuleBase.java b/src/main/java/net/machinemuse/powersuits/powermodule/PowerModuleBase.java index 84a715e..548c479 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/PowerModuleBase.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/PowerModuleBase.java @@ -1,6 +1,7 @@ package net.machinemuse.powersuits.powermodule; import net.machinemuse.api.*; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.general.gui.MuseIcon; import net.machinemuse.numina.render.MuseTextureUtils; import net.machinemuse.powersuits.common.Config; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/RightClickPowerModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/RightClickPowerModule.java index 800b0af..529f65e 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/RightClickPowerModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/RightClickPowerModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.moduletrigger.IRightClickModule; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/ToggleablePowerModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/ToggleablePowerModule.java index 9a1f435..447ea23 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/ToggleablePowerModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/ToggleablePowerModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.moduletrigger.IToggleableModule; import java.util.List; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/armor/ApiaristArmorModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/armor/ApiaristArmorModule.java index f976a99..a9b4d56 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/armor/ApiaristArmorModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/armor/ApiaristArmorModule.java @@ -1,7 +1,7 @@ package net.machinemuse.powersuits.powermodule.armor; import cpw.mods.fml.common.registry.GameRegistry; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.powersuits.powermodule.PowerModuleBase; import net.machinemuse.utils.MuseCommonStrings; import net.minecraft.item.ItemStack; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/armor/BasicPlatingModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/armor/BasicPlatingModule.java index 61bf509..723ac97 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/armor/BasicPlatingModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/armor/BasicPlatingModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.armor; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.powersuits.item.ItemComponent; import net.machinemuse.powersuits.powermodule.PowerModuleBase; import net.machinemuse.utils.MuseCommonStrings; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/armor/DiamondPlatingModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/armor/DiamondPlatingModule.java index ea62448..77e5380 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/armor/DiamondPlatingModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/armor/DiamondPlatingModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.armor; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.powersuits.item.ItemComponent; import net.machinemuse.powersuits.powermodule.PowerModuleBase; import net.machinemuse.utils.MuseCommonStrings; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/armor/EnergyShieldModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/armor/EnergyShieldModule.java index 52af6f0..21e318e 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/armor/EnergyShieldModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/armor/EnergyShieldModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.armor; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.powersuits.item.ItemComponent; import net.machinemuse.powersuits.powermodule.PowerModuleBase; import net.machinemuse.utils.MuseCommonStrings; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/armor/HazmatModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/armor/HazmatModule.java index a733f2f..2714a5d 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/armor/HazmatModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/armor/HazmatModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.armor; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.powersuits.item.ItemComponent; import net.machinemuse.powersuits.powermodule.PowerModuleBase; import net.machinemuse.utils.MuseCommonStrings; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/armor/HeatSinkModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/armor/HeatSinkModule.java index 8b90b09..2f5b1ea 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/armor/HeatSinkModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/armor/HeatSinkModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.armor; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.powersuits.item.ItemComponent; import net.machinemuse.powersuits.powermodule.PowerModuleBase; import net.machinemuse.utils.MuseCommonStrings; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/armor/MechanicalAssistance.java b/src/main/java/net/machinemuse/powersuits/powermodule/armor/MechanicalAssistance.java index 86271ee..f2668cf 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/armor/MechanicalAssistance.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/armor/MechanicalAssistance.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.armor; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IPlayerTickModule; import net.machinemuse.api.moduletrigger.IToggleableModule; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/armor/NitrogenCoolingSystem.java b/src/main/java/net/machinemuse/powersuits/powermodule/armor/NitrogenCoolingSystem.java index fc96f84..1074113 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/armor/NitrogenCoolingSystem.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/armor/NitrogenCoolingSystem.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.armor; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IPlayerTickModule; import net.machinemuse.api.moduletrigger.IToggleableModule; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/armor/WaterTankModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/armor/WaterTankModule.java index a24f965..ec9931d 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/armor/WaterTankModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/armor/WaterTankModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.armor; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IPlayerTickModule; import net.machinemuse.powersuits.item.ItemComponent; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/energy/AdvancedBatteryModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/energy/AdvancedBatteryModule.java index 2c84e3a..2d8f892 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/energy/AdvancedBatteryModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/energy/AdvancedBatteryModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.energy; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.electricity.ElectricConversions; import net.machinemuse.powersuits.item.ItemComponent; import net.machinemuse.powersuits.powermodule.PowerModuleBase; @@ -20,8 +20,8 @@ public class AdvancedBatteryModule extends PowerModuleBase { addBaseProperty(MuseCommonStrings.WEIGHT, 2000, "g"); addTradeoffProperty("Battery Size", ElectricItemUtils.MAXIMUM_ENERGY, 400000); addTradeoffProperty("Battery Size", MuseCommonStrings.WEIGHT, 8000); - addBaseProperty(ElectricConversions.IC2_TIER(), 1); - addTradeoffProperty("IC2 Tier", ElectricConversions.IC2_TIER(), 2); + addBaseProperty(ElectricConversions.IC2_TIER, 1); + addTradeoffProperty("IC2 Tier", ElectricConversions.IC2_TIER, 2); } @Override diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/energy/AdvancedSolarGenerator.java b/src/main/java/net/machinemuse/powersuits/powermodule/energy/AdvancedSolarGenerator.java index cd3ca8d..b637599 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/energy/AdvancedSolarGenerator.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/energy/AdvancedSolarGenerator.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.energy; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IPlayerTickModule; import net.machinemuse.powersuits.item.ItemComponent; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/energy/BasicBatteryModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/energy/BasicBatteryModule.java index c70ca57..9f67b48 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/energy/BasicBatteryModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/energy/BasicBatteryModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.energy; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.electricity.ElectricConversions; import net.machinemuse.powersuits.item.ItemComponent; import net.machinemuse.powersuits.powermodule.PowerModuleBase; @@ -20,8 +20,8 @@ public class BasicBatteryModule extends PowerModuleBase { addBaseProperty(MuseCommonStrings.WEIGHT, 2000, "g"); addTradeoffProperty("Battery Size", ElectricItemUtils.MAXIMUM_ENERGY, 80000); addTradeoffProperty("Battery Size", MuseCommonStrings.WEIGHT, 8000); - addBaseProperty(ElectricConversions.IC2_TIER(), 1); - addTradeoffProperty("IC2 Tier", ElectricConversions.IC2_TIER(), 2); + addBaseProperty(ElectricConversions.IC2_TIER, 1); + addTradeoffProperty("IC2 Tier", ElectricConversions.IC2_TIER, 2); } @Override diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/energy/CoalGenerator.java b/src/main/java/net/machinemuse/powersuits/powermodule/energy/CoalGenerator.java index 3459fba..120cc12 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/energy/CoalGenerator.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/energy/CoalGenerator.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.energy; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IPlayerTickModule; import net.machinemuse.api.moduletrigger.IToggleableModule; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/energy/EliteBatteryModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/energy/EliteBatteryModule.java index 578f9f0..cc15379 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/energy/EliteBatteryModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/energy/EliteBatteryModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.energy; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.electricity.ElectricConversions; import net.machinemuse.powersuits.item.ItemComponent; import net.machinemuse.powersuits.powermodule.PowerModuleBase; @@ -20,8 +20,8 @@ public class EliteBatteryModule extends PowerModuleBase { addBaseProperty(MuseCommonStrings.WEIGHT, 2000, "g"); addTradeoffProperty("Battery Size", ElectricItemUtils.MAXIMUM_ENERGY, 4250000); addTradeoffProperty("Battery Size", MuseCommonStrings.WEIGHT, 8000); - addBaseProperty(ElectricConversions.IC2_TIER(), 1); - addTradeoffProperty("IC2 Tier", ElectricConversions.IC2_TIER(), 2); + addBaseProperty(ElectricConversions.IC2_TIER, 1); + addTradeoffProperty("IC2 Tier", ElectricConversions.IC2_TIER, 2); } @Override diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/energy/KineticGeneratorModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/energy/KineticGeneratorModule.java index 6487402..a009e6f 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/energy/KineticGeneratorModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/energy/KineticGeneratorModule.java @@ -1,7 +1,7 @@ package net.machinemuse.powersuits.powermodule.energy; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IPlayerTickModule; import net.machinemuse.api.moduletrigger.IToggleableModule; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/energy/SolarGeneratorModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/energy/SolarGeneratorModule.java index 504c65f..64aad5f 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/energy/SolarGeneratorModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/energy/SolarGeneratorModule.java @@ -1,7 +1,7 @@ package net.machinemuse.powersuits.powermodule.energy; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IPlayerTickModule; import net.machinemuse.powersuits.item.ItemComponent; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/energy/ThermalGeneratorModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/energy/ThermalGeneratorModule.java index 91cded4..66cb3d7 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/energy/ThermalGeneratorModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/energy/ThermalGeneratorModule.java @@ -1,7 +1,7 @@ package net.machinemuse.powersuits.powermodule.energy; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IPlayerTickModule; import net.machinemuse.powersuits.item.ItemComponent; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/misc/AirtightSealModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/misc/AirtightSealModule.java index 3d5b88d..0947b58 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/misc/AirtightSealModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/misc/AirtightSealModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.misc; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.powersuits.powermodule.PowerModuleBase; import net.machinemuse.utils.MuseCommonStrings; import net.minecraft.init.Blocks; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/misc/AutoFeederModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/misc/AutoFeederModule.java index bb68e70..25f41ad 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/misc/AutoFeederModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/misc/AutoFeederModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.misc; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IPlayerTickModule; import net.machinemuse.api.moduletrigger.IToggleableModule; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/misc/BinocularsModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/misc/BinocularsModule.java index 1b2a771..15cf872 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/misc/BinocularsModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/misc/BinocularsModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.misc; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.moduletrigger.IToggleableModule; import net.machinemuse.powersuits.item.ItemComponent; import net.machinemuse.powersuits.powermodule.PowerModuleBase; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/misc/CitizenJoeStyle.java b/src/main/java/net/machinemuse/powersuits/powermodule/misc/CitizenJoeStyle.java index c78e624..ee9e5ac 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/misc/CitizenJoeStyle.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/misc/CitizenJoeStyle.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.misc; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.powersuits.powermodule.PowerModuleBase; import net.machinemuse.utils.MuseCommonStrings; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/misc/ClockModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/misc/ClockModule.java index 4ec1677..e120994 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/misc/ClockModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/misc/ClockModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.misc; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.moduletrigger.IToggleableModule; import net.machinemuse.powersuits.item.ItemComponent; import net.machinemuse.powersuits.powermodule.PowerModuleBase; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/misc/CompassModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/misc/CompassModule.java index d3b2d65..3514924 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/misc/CompassModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/misc/CompassModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.misc; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.moduletrigger.IToggleableModule; import net.machinemuse.powersuits.item.ItemComponent; import net.machinemuse.powersuits.powermodule.PowerModuleBase; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/misc/CoolingSystemModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/misc/CoolingSystemModule.java index 409cdc3..ab1642f 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/misc/CoolingSystemModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/misc/CoolingSystemModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.misc; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IPlayerTickModule; import net.machinemuse.api.moduletrigger.IToggleableModule; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/misc/CosmeticGlowModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/misc/CosmeticGlowModule.java index 3da73b8..e54a395 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/misc/CosmeticGlowModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/misc/CosmeticGlowModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.misc; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.powersuits.powermodule.PowerModuleBase; import net.machinemuse.utils.MuseCommonStrings; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/misc/InPlaceAssemblerModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/misc/InPlaceAssemblerModule.java index 35955ca..ce7782c 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/misc/InPlaceAssemblerModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/misc/InPlaceAssemblerModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.misc; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.moduletrigger.IRightClickModule; import net.machinemuse.powersuits.common.ModularPowersuits; import net.machinemuse.powersuits.item.ItemComponent; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/misc/InvisibilityModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/misc/InvisibilityModule.java index b2f055c..7461eba 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/misc/InvisibilityModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/misc/InvisibilityModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.misc; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.moduletrigger.IPlayerTickModule; import net.machinemuse.api.moduletrigger.IToggleableModule; import net.machinemuse.powersuits.item.ItemComponent; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/misc/MagnetModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/misc/MagnetModule.java index 5134060..b5f4cd3 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/misc/MagnetModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/misc/MagnetModule.java @@ -3,7 +3,7 @@ package net.machinemuse.powersuits.powermodule.misc; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.relauncher.Side; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IPlayerTickModule; import net.machinemuse.api.moduletrigger.IToggleableModule; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/misc/MobRepulsorModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/misc/MobRepulsorModule.java index aaed913..671a931 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/misc/MobRepulsorModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/misc/MobRepulsorModule.java @@ -1,7 +1,7 @@ package net.machinemuse.powersuits.powermodule.misc; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IPlayerTickModule; import net.machinemuse.api.moduletrigger.IToggleableModule; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/misc/NightVisionModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/misc/NightVisionModule.java index 5080014..7d35ebf 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/misc/NightVisionModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/misc/NightVisionModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.misc; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.moduletrigger.IPlayerTickModule; import net.machinemuse.api.moduletrigger.IToggleableModule; import net.machinemuse.powersuits.item.ItemComponent; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/misc/ThaumGogglesModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/misc/ThaumGogglesModule.java index 1d04291..3564164 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/misc/ThaumGogglesModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/misc/ThaumGogglesModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.misc; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.moduletrigger.IToggleableModule; import net.machinemuse.powersuits.item.ItemComponent; import net.machinemuse.powersuits.powermodule.PowerModuleBase; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/misc/TintModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/misc/TintModule.java index 64942fb..3598e1a 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/misc/TintModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/misc/TintModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.misc; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.powersuits.powermodule.PowerModuleBase; import net.machinemuse.utils.MuseCommonStrings; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/misc/TransparentArmorModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/misc/TransparentArmorModule.java index 62af9c2..204a2e5 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/misc/TransparentArmorModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/misc/TransparentArmorModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.misc; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.powersuits.item.ItemComponent; import net.machinemuse.powersuits.powermodule.PowerModuleBase; import net.machinemuse.utils.MuseCommonStrings; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/misc/WaterElectrolyzerModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/misc/WaterElectrolyzerModule.java index 4297785..ea7c3a1 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/misc/WaterElectrolyzerModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/misc/WaterElectrolyzerModule.java @@ -2,7 +2,7 @@ package net.machinemuse.powersuits.powermodule.misc; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.relauncher.Side; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IPlayerTickModule; import net.machinemuse.api.moduletrigger.IToggleableModule; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/movement/BlinkDriveModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/movement/BlinkDriveModule.java index ea0f69f..f9c59a8 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/movement/BlinkDriveModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/movement/BlinkDriveModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.movement; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IRightClickModule; import net.machinemuse.numina.player.NuminaPlayerUtils; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/movement/ClimbAssistModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/movement/ClimbAssistModule.java index 045fb61..6debe99 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/movement/ClimbAssistModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/movement/ClimbAssistModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.movement; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.moduletrigger.IPlayerTickModule; import net.machinemuse.api.moduletrigger.IToggleableModule; import net.machinemuse.powersuits.item.ItemComponent; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/movement/FlightControlModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/movement/FlightControlModule.java index e7f1876..a3d58fd 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/movement/FlightControlModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/movement/FlightControlModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.movement; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.moduletrigger.IToggleableModule; import net.machinemuse.powersuits.item.ItemComponent; import net.machinemuse.powersuits.powermodule.PowerModuleBase; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/movement/GliderModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/movement/GliderModule.java index cda568c..a2df39b 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/movement/GliderModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/movement/GliderModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.movement; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IPlayerTickModule; import net.machinemuse.api.moduletrigger.IToggleableModule; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/movement/JetBootsModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/movement/JetBootsModule.java index 9d0a7f7..a0911ce 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/movement/JetBootsModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/movement/JetBootsModule.java @@ -2,7 +2,7 @@ package net.machinemuse.powersuits.powermodule.movement; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.relauncher.Side; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IPlayerTickModule; import net.machinemuse.api.moduletrigger.IToggleableModule; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/movement/JetPackModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/movement/JetPackModule.java index 74fc540..867bbd8 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/movement/JetPackModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/movement/JetPackModule.java @@ -2,7 +2,7 @@ package net.machinemuse.powersuits.powermodule.movement; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.relauncher.Side; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IPlayerTickModule; import net.machinemuse.api.moduletrigger.IToggleableModule; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/movement/JumpAssistModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/movement/JumpAssistModule.java index 22e3726..4102d63 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/movement/JumpAssistModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/movement/JumpAssistModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.movement; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.moduletrigger.IPlayerTickModule; import net.machinemuse.api.moduletrigger.IToggleableModule; import net.machinemuse.numina.player.NuminaPlayerUtils; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/movement/ParachuteModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/movement/ParachuteModule.java index 6198a0b..b6e2bf6 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/movement/ParachuteModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/movement/ParachuteModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.movement; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IPlayerTickModule; import net.machinemuse.api.moduletrigger.IToggleableModule; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/movement/ShockAbsorberModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/movement/ShockAbsorberModule.java index d62acb7..ab84632 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/movement/ShockAbsorberModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/movement/ShockAbsorberModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.movement; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.moduletrigger.IToggleableModule; import net.machinemuse.powersuits.item.ItemComponent; import net.machinemuse.powersuits.powermodule.PowerModuleBase; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/movement/SprintAssistModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/movement/SprintAssistModule.java index 20af427..cfa6182 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/movement/SprintAssistModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/movement/SprintAssistModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.movement; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IPlayerTickModule; import net.machinemuse.api.moduletrigger.IToggleableModule; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/movement/SwimAssistModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/movement/SwimAssistModule.java index 9648ce8..c800910 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/movement/SwimAssistModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/movement/SwimAssistModule.java @@ -2,7 +2,7 @@ package net.machinemuse.powersuits.powermodule.movement; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.relauncher.Side; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IPlayerTickModule; import net.machinemuse.api.moduletrigger.IToggleableModule; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/tool/AOEPickUpgradeModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/tool/AOEPickUpgradeModule.java index de9c0bb..85823f2 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/tool/AOEPickUpgradeModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/tool/AOEPickUpgradeModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.tool; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.moduletrigger.IBlockBreakingModule; import net.machinemuse.api.moduletrigger.IToggleableModule; import net.machinemuse.powersuits.item.ItemComponent; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/tool/AppEngWirelessFluidModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/tool/AppEngWirelessFluidModule.java index 6819520..e6eb9c3 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/tool/AppEngWirelessFluidModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/tool/AppEngWirelessFluidModule.java @@ -2,7 +2,7 @@ package net.machinemuse.powersuits.powermodule.tool; import com.google.common.base.Optional; import extracells.api.ECApi; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.moduletrigger.IRightClickModule; import net.machinemuse.powersuits.item.ItemComponent; import net.machinemuse.powersuits.powermodule.PowerModuleBase; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/tool/AppEngWirelessModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/tool/AppEngWirelessModule.java index 6e1a266..7381f77 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/tool/AppEngWirelessModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/tool/AppEngWirelessModule.java @@ -2,7 +2,7 @@ package net.machinemuse.powersuits.powermodule.tool; import appeng.api.AEApi; import com.google.common.base.Optional; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.moduletrigger.IRightClickModule; import net.machinemuse.powersuits.item.ItemComponent; import net.machinemuse.powersuits.powermodule.PowerModuleBase; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/tool/AquaAffinityModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/tool/AquaAffinityModule.java index f9cd9dc..3f52294 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/tool/AquaAffinityModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/tool/AquaAffinityModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.tool; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IBlockBreakingModule; import net.machinemuse.api.moduletrigger.IToggleableModule; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/tool/AxeModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/tool/AxeModule.java index 53b61ae..90bbb30 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/tool/AxeModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/tool/AxeModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.tool; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IBlockBreakingModule; import net.machinemuse.api.moduletrigger.IToggleableModule; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/tool/ChiselModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/tool/ChiselModule.java index 7d54fbd..6ac64df 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/tool/ChiselModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/tool/ChiselModule.java @@ -1,7 +1,7 @@ package net.machinemuse.powersuits.powermodule.tool; import cpw.mods.fml.common.registry.GameRegistry; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IBlockBreakingModule; import net.machinemuse.api.moduletrigger.IToggleableModule; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/tool/DiamondPickUpgradeModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/tool/DiamondPickUpgradeModule.java index a0a6ddd..5b19441 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/tool/DiamondPickUpgradeModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/tool/DiamondPickUpgradeModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.tool; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IBlockBreakingModule; import net.machinemuse.api.moduletrigger.IToggleableModule; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/tool/DimensionalRiftModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/tool/DimensionalRiftModule.java index 391461f..07e8427 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/tool/DimensionalRiftModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/tool/DimensionalRiftModule.java @@ -1,7 +1,7 @@ package net.machinemuse.powersuits.powermodule.tool; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IRightClickModule; import net.machinemuse.powersuits.item.ItemComponent; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/tool/FieldTinkerModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/tool/FieldTinkerModule.java index 2c6597a..6b4ba74 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/tool/FieldTinkerModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/tool/FieldTinkerModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.tool; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.moduletrigger.IRightClickModule; import net.machinemuse.powersuits.common.ModularPowersuits; import net.machinemuse.powersuits.item.ItemComponent; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/tool/FlintAndSteelModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/tool/FlintAndSteelModule.java index a4fb6a7..16f600e 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/tool/FlintAndSteelModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/tool/FlintAndSteelModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.tool; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IRightClickModule; import net.machinemuse.powersuits.item.ItemComponent; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/tool/GrafterModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/tool/GrafterModule.java index 8eb71be..5b26017 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/tool/GrafterModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/tool/GrafterModule.java @@ -1,7 +1,7 @@ package net.machinemuse.powersuits.powermodule.tool; import cpw.mods.fml.common.registry.GameRegistry; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.powersuits.powermodule.PowerModuleBase; import net.machinemuse.utils.MuseCommonStrings; import net.minecraft.item.ItemStack; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/tool/HoeModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/tool/HoeModule.java index 4707a9c..f0f4705 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/tool/HoeModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/tool/HoeModule.java @@ -1,7 +1,7 @@ package net.machinemuse.powersuits.powermodule.tool; import cpw.mods.fml.common.eventhandler.Event; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.IPowerModule; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IRightClickModule; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/tool/LeafBlowerModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/tool/LeafBlowerModule.java index b893f58..6a2a5f2 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/tool/LeafBlowerModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/tool/LeafBlowerModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.tool; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IRightClickModule; import net.machinemuse.powersuits.item.ItemComponent; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/tool/LuxCapacitor.java b/src/main/java/net/machinemuse/powersuits/powermodule/tool/LuxCapacitor.java index d9f6fbc..31dcf4a 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/tool/LuxCapacitor.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/tool/LuxCapacitor.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.tool; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IRightClickModule; import net.machinemuse.powersuits.entity.EntityLuxCapacitor; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/tool/MFFSFieldTeleporterModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/tool/MFFSFieldTeleporterModule.java index 4626d61..6d08c7e 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/tool/MFFSFieldTeleporterModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/tool/MFFSFieldTeleporterModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.tool; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.powersuits.item.ItemComponent; import net.machinemuse.powersuits.powermodule.PowerModuleBase; import net.machinemuse.utils.MuseCommonStrings; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/tool/OCTerminalModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/tool/OCTerminalModule.java index 6f1342a..1eb8f74 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/tool/OCTerminalModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/tool/OCTerminalModule.java @@ -3,7 +3,7 @@ package net.machinemuse.powersuits.powermodule.tool;// package andrew.powersuits // import cpw.mods.fml.common.registry.GameRegistry; // import cpw.mods.fml.common.network.NetworkRegistry; // import cpw.mods.fml.common.Loader; -// import net.machinemuse.api.IModularItem; +// import net.machinemuse.api.electricity.IModularItem; // import net.machinemuse.api.moduletrigger.IRightClickModule; // import net.machinemuse.powersuits.item.ItemComponent; // import net.machinemuse.powersuits.powermodule.PowerModuleBase; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/tool/OmniProbeModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/tool/OmniProbeModule.java index 994d2c9..ab3eae7 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/tool/OmniProbeModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/tool/OmniProbeModule.java @@ -2,7 +2,7 @@ package net.machinemuse.powersuits.powermodule.tool; import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.registry.GameRegistry; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.moduletrigger.IPlayerTickModule; import net.machinemuse.api.moduletrigger.IRightClickModule; import net.machinemuse.powersuits.common.ModCompatibility; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/tool/OmniWrenchModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/tool/OmniWrenchModule.java index 904700b..d75c9cc 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/tool/OmniWrenchModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/tool/OmniWrenchModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.tool; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.moduletrigger.IRightClickModule; import net.machinemuse.powersuits.item.ItemComponent; import net.machinemuse.powersuits.powermodule.PowerModuleBase; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/tool/OreScannerModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/tool/OreScannerModule.java index cb2dbf2..bc86b49 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/tool/OreScannerModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/tool/OreScannerModule.java @@ -1,7 +1,7 @@ package net.machinemuse.powersuits.powermodule.tool; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IRightClickModule; import net.machinemuse.powersuits.common.Config; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/tool/PersonalShrinkingModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/tool/PersonalShrinkingModule.java index 6e7050d..6a399b8 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/tool/PersonalShrinkingModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/tool/PersonalShrinkingModule.java @@ -1,7 +1,7 @@ package net.machinemuse.powersuits.powermodule.tool; import cpw.mods.fml.common.registry.GameRegistry; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.moduletrigger.IPlayerTickModule; import net.machinemuse.api.moduletrigger.IRightClickModule; import net.machinemuse.powersuits.item.ItemComponent; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/tool/PickaxeModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/tool/PickaxeModule.java index 3194616..06746ee 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/tool/PickaxeModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/tool/PickaxeModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.tool; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IBlockBreakingModule; import net.machinemuse.api.moduletrigger.IToggleableModule; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/tool/ScoopModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/tool/ScoopModule.java index 344c298..f2e777b 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/tool/ScoopModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/tool/ScoopModule.java @@ -1,7 +1,7 @@ package net.machinemuse.powersuits.powermodule.tool; import cpw.mods.fml.common.registry.GameRegistry; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IBlockBreakingModule; import net.machinemuse.powersuits.item.ItemComponent; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/tool/ShearsModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/tool/ShearsModule.java index 9bcd11a..b8aa888 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/tool/ShearsModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/tool/ShearsModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.tool; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IBlockBreakingModule; import net.machinemuse.api.moduletrigger.IRightClickModule; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/tool/ShovelModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/tool/ShovelModule.java index 7fa7f2d..c064f53 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/tool/ShovelModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/tool/ShovelModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.tool; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IBlockBreakingModule; import net.machinemuse.api.moduletrigger.IToggleableModule; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/weapon/BladeLauncherModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/weapon/BladeLauncherModule.java index d87c43c..d213b31 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/weapon/BladeLauncherModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/weapon/BladeLauncherModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.weapon; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IRightClickModule; import net.machinemuse.powersuits.entity.EntitySpinningBlade; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/weapon/LightningModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/weapon/LightningModule.java index 726b4c3..b688a4c 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/weapon/LightningModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/weapon/LightningModule.java @@ -1,7 +1,7 @@ package net.machinemuse.powersuits.powermodule.weapon; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IRightClickModule; import net.machinemuse.powersuits.item.ItemComponent; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/weapon/MeleeAssistModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/weapon/MeleeAssistModule.java index 64703bd..a918952 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/weapon/MeleeAssistModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/weapon/MeleeAssistModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.weapon; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.powersuits.item.ItemComponent; import net.machinemuse.powersuits.powermodule.PowerModuleBase; import net.machinemuse.utils.MuseCommonStrings; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/weapon/PlasmaCannonModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/weapon/PlasmaCannonModule.java index 76fdc58..ddc0675 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/weapon/PlasmaCannonModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/weapon/PlasmaCannonModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.weapon; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IRightClickModule; import net.machinemuse.numina.general.MuseMathUtils; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/weapon/RailgunModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/weapon/RailgunModule.java index 9847094..7c49c6d 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/weapon/RailgunModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/weapon/RailgunModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.weapon; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.moduletrigger.IPlayerTickModule; import net.machinemuse.api.moduletrigger.IRightClickModule; diff --git a/src/main/java/net/machinemuse/powersuits/powermodule/weapon/SonicWeaponModule.java b/src/main/java/net/machinemuse/powersuits/powermodule/weapon/SonicWeaponModule.java index e81b049..8bd7ccb 100644 --- a/src/main/java/net/machinemuse/powersuits/powermodule/weapon/SonicWeaponModule.java +++ b/src/main/java/net/machinemuse/powersuits/powermodule/weapon/SonicWeaponModule.java @@ -1,6 +1,6 @@ package net.machinemuse.powersuits.powermodule.weapon; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.moduletrigger.IRightClickModule; import net.machinemuse.powersuits.powermodule.PowerModuleBase; import net.machinemuse.utils.MuseCommonStrings; diff --git a/src/main/java/net/machinemuse/utils/MuseItemUtils.java b/src/main/java/net/machinemuse/utils/MuseItemUtils.java index 1b91c36..3c93203 100644 --- a/src/main/java/net/machinemuse/utils/MuseItemUtils.java +++ b/src/main/java/net/machinemuse/utils/MuseItemUtils.java @@ -2,7 +2,7 @@ package net.machinemuse.utils; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.relauncher.Side; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.IPowerModule; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.MuseItemTag; diff --git a/src/main/java/net/machinemuse/utils/MusePlayerUtils.java b/src/main/java/net/machinemuse/utils/MusePlayerUtils.java index d81756a..b869f38 100644 --- a/src/main/java/net/machinemuse/utils/MusePlayerUtils.java +++ b/src/main/java/net/machinemuse/utils/MusePlayerUtils.java @@ -1,6 +1,6 @@ package net.machinemuse.utils; -import net.machinemuse.api.IModularItem; +import net.machinemuse.api.electricity.IModularItem; import net.machinemuse.api.ModuleManager; import net.machinemuse.numina.general.MuseLogger; import net.machinemuse.numina.general.MuseMathUtils; diff --git a/src/main/scala/net/machinemuse/api/ArmorTraits.scala b/src/main/scala/net/machinemuse/api/ArmorTraits.scala deleted file mode 100644 index 9b61f18..0000000 --- a/src/main/scala/net/machinemuse/api/ArmorTraits.scala +++ /dev/null @@ -1,54 +0,0 @@ -package net.machinemuse.api - -import cpw.mods.fml.common.Optional -import forestry.api.apiculture.IArmorApiarist -import net.machinemuse.powersuits.powermodule.armor.ApiaristArmorModule -import net.machinemuse.utils.ElectricItemUtils -import net.minecraft.entity.EntityLivingBase -import net.minecraft.entity.player.EntityPlayer -import net.minecraft.item.{ItemArmor, ItemStack} -//import atomicscience.api.IAntiPoisonArmor - -/** - * Author: MachineMuse (Claire Semple) - * Created: 6:54 AM, 4/28/13 - */ -trait ArmorTraits extends ItemArmor with IModularItem - with ApiaristArmor { - //with RadiationArmor { - -} - -@Optional.Interface(iface = "forestry.api.apiculture.IArmorApiarist", modid = "Forestry", striprefs = true) -trait ApiaristArmor extends IArmorApiarist { - - // @deprecated - @Optional.Method(modid = "Forestry") - def protectPlayer(player: EntityPlayer, armor: ItemStack, cause: String, doProtect: Boolean): Boolean = { - if (ModuleManager.itemHasActiveModule(armor, ApiaristArmorModule.MODULE_APIARIST_ARMOR)) { - ElectricItemUtils.drainPlayerEnergy(player, ModuleManager.computeModularProperty(armor, ApiaristArmorModule.APIARIST_ARMOR_ENERGY_CONSUMPTION)) - true - } else false - } - - @Optional.Method(modid = "Forestry") - def protectEntity(player: EntityLivingBase, armor: ItemStack, cause: String, doProtect: Boolean): Boolean = { - if (ModuleManager.itemHasActiveModule(armor, ApiaristArmorModule.MODULE_APIARIST_ARMOR)) { - ElectricItemUtils.drainPlayerEnergy(player.asInstanceOf[EntityPlayer], ModuleManager.computeModularProperty(armor, ApiaristArmorModule.APIARIST_ARMOR_ENERGY_CONSUMPTION)) - true - } else false - } -} - -/* -trait RadiationArmor extends ItemArmor with IAntiPoisonArmor { - def isProtectedFromPoison(itemStack: ItemStack, EntityLivingBase: EntityLivingBase, poisontype: String): Boolean = { - ModuleManager.itemHasActiveModule(itemStack, HazmatModule.MODULE_HAZMAT) - } - - - def getArmorType:Int = this.armorType - - def onProtectFromPoison(itemStack: ItemStack, EntityLivingBase: EntityLivingBase, poisontype: String) {} -} -*/ diff --git a/src/main/scala/net/machinemuse/api/IModularItem.scala b/src/main/scala/net/machinemuse/api/IModularItem.scala deleted file mode 100644 index 2cf262d..0000000 --- a/src/main/scala/net/machinemuse/api/IModularItem.scala +++ /dev/null @@ -1,46 +0,0 @@ -package net.machinemuse.api - -import java.util.List - -import net.minecraft.entity.player.EntityPlayer -import net.minecraft.item.ItemStack - -/** - * Interface for ItemPowerArmor and ItemPowerTool to share. - * - * @author MachineMuse - */ -trait IModularItem extends net.minecraft.item.Item { - /** - * Gets the item's extended summary for displaying in the gui. - * - * @param stack - * @return - */ - def getLongInfo(player: EntityPlayer, stack: ItemStack): List[String] - - /** - * Returns the amount of energy contained in the player's inventory. - * - * @param player - * @return - */ - def getPlayerEnergy(player: EntityPlayer): Double - - /** - * Drains the amount of energy from the player's inventory. - * - * @param player - * @return - */ - def drainPlayerEnergy(player: EntityPlayer, drainAmount: Double) - - /** - * Adds the amount of energy to the player's inventory. - * - * @param player - * @return - */ - def givePlayerEnergy(player: EntityPlayer, joulesToGive: Double) - -} \ No newline at end of file diff --git a/src/main/scala/net/machinemuse/api/electricity/ElectricAdapter.scala b/src/main/scala/net/machinemuse/api/electricity/ElectricAdapter.scala deleted file mode 100644 index 0a5d116..0000000 --- a/src/main/scala/net/machinemuse/api/electricity/ElectricAdapter.scala +++ /dev/null @@ -1,94 +0,0 @@ -package net.machinemuse.api.electricity - -import appeng.api.config.AccessRestriction -import appeng.api.implementations.items.IAEItemPowerStorage -import cofh.api.energy.IEnergyContainerItem -import ic2.api.item.{ElectricItem, IElectricItem} -import net.machinemuse.powersuits.common.ModCompatibility -import net.minecraft.item.ItemStack - -object ElectricAdapter { - def wrap(stack: ItemStack): ElectricAdapter = { - if (stack == null) return null - val i = stack.getItem - if (i.isInstanceOf[MuseElectricItem]) { - new MuseElectricAdapter(stack) - } else if (ModCompatibility.isRFAPILoaded && i.isInstanceOf[IEnergyContainerItem]) { - new TEElectricAdapter(stack) - } else if (ModCompatibility.isIndustrialCraftLoaded && i.isInstanceOf[IElectricItem]) { - new IC2ElectricAdapter(stack) - } else if (ModCompatibility.isAppengLoaded && i.isInstanceOf[IAEItemPowerStorage]) { - new AE2ElectricAdapter(stack) - } else { - null - } - } -} - -abstract class ElectricAdapter { - def getCurrentEnergy: Double - - def getMaxEnergy: Double - - def drainEnergy(requested: Double): Double - - def giveEnergy(provided: Double): Double -} - -class MuseElectricAdapter(val stack: ItemStack) extends ElectricAdapter { - val item = stack.getItem.asInstanceOf[MuseElectricItem] - - def getCurrentEnergy = item.getCurrentEnergy(stack) - - def getMaxEnergy = item.getMaxEnergy(stack) - - def drainEnergy(requested: Double) = item.drainEnergyFrom(stack, requested) - - def giveEnergy(provided: Double) = item.giveEnergyTo(stack, provided) -} - - -class IC2ElectricAdapter(val stack: ItemStack) extends ElectricAdapter { - val item = stack.getItem.asInstanceOf[IElectricItem] - - import net.machinemuse.api.electricity.ElectricConversions._ - - def getCurrentEnergy: Double = museEnergyFromEU(ElectricItem.manager.getCharge(stack)) - - def getMaxEnergy: Double = museEnergyFromEU(item.getMaxCharge(stack)) - - def drainEnergy(requested: Double): Double = museEnergyFromEU(ElectricItem.manager.discharge(stack, museEnergyToEU(requested), getTier, true, false, false)) - - def giveEnergy(provided: Double): Double = museEnergyFromEU(ElectricItem.manager.charge(stack, museEnergyToEU(provided), getTier, true, false)) - - def getTier = item.getTier(stack) -} - -class TEElectricAdapter(val stack: ItemStack) extends ElectricAdapter { - val item = stack.getItem.asInstanceOf[IEnergyContainerItem] - - import net.machinemuse.api.electricity.ElectricConversions._ - - def getCurrentEnergy: Double = museEnergyFromRF(item.getEnergyStored(stack)) - - def getMaxEnergy: Double = museEnergyFromRF(item.getMaxEnergyStored(stack)) - - def drainEnergy(requested: Double): Double = museEnergyFromRF(item.extractEnergy(stack, museEnergyToRF(requested), false)) - - def giveEnergy(provided: Double): Double = museEnergyFromRF(item.receiveEnergy(stack, museEnergyToRF(provided), false)) -} - -class AE2ElectricAdapter(val stack: ItemStack) extends ElectricAdapter { - val item = stack.getItem.asInstanceOf[IAEItemPowerStorage] - import net.machinemuse.api.electricity.ElectricConversions._ - - def getCurrentEnergy: Double = museEnergyFromAE(item.getAECurrentPower(stack)) - - def getMaxEnergy: Double = museEnergyFromAE(item.getAEMaxPower(stack)) - - def drainEnergy(requested: Double): Double = museEnergyFromAE(item.extractAEPower(stack, museEnergyToAE(requested))) - - def giveEnergy(provided: Double): Double = museEnergyFromAE(item.injectAEPower(stack,museEnergyToAE(provided))) - - def getPowerFlow(stack: ItemStack): AccessRestriction = AccessRestriction.READ_WRITE -} \ No newline at end of file diff --git a/src/main/scala/net/machinemuse/api/electricity/ElectricConversions.scala b/src/main/scala/net/machinemuse/api/electricity/ElectricConversions.scala deleted file mode 100644 index 80b216c..0000000 --- a/src/main/scala/net/machinemuse/api/electricity/ElectricConversions.scala +++ /dev/null @@ -1,30 +0,0 @@ -package net.machinemuse.api.electricity - -import net.machinemuse.api.ModuleManager -import net.machinemuse.powersuits.common.ModCompatibility -import net.minecraft.item.ItemStack - -/** - * Author: MachineMuse (Claire Semple) - * Created: 4:51 AM, 4/28/13 - */ -object ElectricConversions { - // IC2 - final val IC2_TIER: String = "IC2 Tier" - - def getTier(stack: ItemStack): Int = ModuleManager.computeModularProperty(stack, IC2_TIER).toInt - - def museEnergyToEU(museEnergy: Double): Double = museEnergy / ModCompatibility.getIC2Ratio - - def museEnergyFromEU(eu: Double): Double = eu * ModCompatibility.getIC2Ratio - - // TE - def museEnergyToRF(museEnergy: Double): Int = Math.ceil(museEnergy / ModCompatibility.getRFRatio).toInt - - def museEnergyFromRF(rf: Int): Double = rf * ModCompatibility.getRFRatio - - //AE2 - def museEnergyFromAE(ae: Double): Double = ae * ModCompatibility.getAE2Ratio - - def museEnergyToAE(museEnergy: Double): Double = museEnergy / ModCompatibility.getAE2Ratio -} diff --git a/src/main/scala/net/machinemuse/api/electricity/MuseElectricItem.scala b/src/main/scala/net/machinemuse/api/electricity/MuseElectricItem.scala deleted file mode 100644 index 2ba44e4..0000000 --- a/src/main/scala/net/machinemuse/api/electricity/MuseElectricItem.scala +++ /dev/null @@ -1,195 +0,0 @@ -package net.machinemuse.api.electricity - -import appeng.api.config.AccessRestriction -import appeng.api.implementations.items.IAEItemPowerStorage -import cofh.api.energy.IEnergyContainerItem -import cpw.mods.fml.common.Optional -import ic2.api.item.{ElectricItem, IElectricItem, IElectricItemManager, ISpecialElectricItem} -import net.machinemuse.api.ModuleManager -import net.machinemuse.api.electricity.ElectricConversions._ -import net.machinemuse.utils.{ElectricItemUtils, MuseItemUtils} -import net.minecraft.entity.EntityLivingBase -import net.minecraft.item.{Item, ItemStack} - -/** - * Author: MachineMuse (Claire Semple) - * Created: 10:12 PM, 4/20/13 - */ - -@Optional.InterfaceList(Array( - new Optional.Interface(iface = "cofh.api.energy.IEnergyContainerItem", modid = "CoFHAPI|energy", striprefs = true), - new Optional.Interface(iface = "ic2.api.item.IElectricItemManager", modid = "IC2", striprefs = true), - new Optional.Interface(iface = "ic2.api.item.ISpecialElectricItem", modid = "IC2", striprefs = true), - new Optional.Interface(iface = "appeng.api.implementations.items.IAEItemPowerStorage", modid = "AE2", striprefs = true))) -trait MuseElectricItem extends Item -with IEnergyContainerItem -with ISpecialElectricItem -with IElectricItemManager -with IElectricItem -with IAEItemPowerStorage { - /** - * Call to get the energy of an item - * - * @param stack ItemStack to set - * @return Current energy level - */ - def getCurrentEnergy(stack: ItemStack): Double = MuseItemUtils.getDoubleOrZero(stack, ElectricItemUtils.CURRENT_ENERGY) - - - /** - * Call to set the energy of an item - * - * @param stack ItemStack to set - * @return Maximum energy level - */ - def getMaxEnergy(stack: ItemStack): Double = ModuleManager.computeModularProperty(stack, ElectricItemUtils.MAXIMUM_ENERGY) - - /** - * Call to set the energy of an item - * - * @param stack ItemStack to set - * @param energy Level to set it to - */ - def setCurrentEnergy(stack: ItemStack, energy: Double) { - MuseItemUtils.setDoubleOrRemove(stack, ElectricItemUtils.CURRENT_ENERGY, Math.min(energy, getMaxEnergy(stack))) - } - - /** - * Call to drain energy from an item - * - * @param stack ItemStack being requested for energy - * @param requested Amount of energy to drain - * @return Amount of energy successfully drained - */ - def drainEnergyFrom(stack: ItemStack, requested: Double): Double = { - val available = getCurrentEnergy(stack) - if (available > requested) { - setCurrentEnergy(stack, available - requested) - requested - } else { - setCurrentEnergy(stack, 0) - available - } - } - - /** - * Call to give energy to an item - * - * @param stack ItemStack being provided with energy - * @param provided Amount of energy to add - * @return Amount of energy added - */ - def giveEnergyTo(stack: ItemStack, provided: Double): Double = { - val available = getCurrentEnergy(stack) - val max = getMaxEnergy(stack) - if (available + provided < max) { - setCurrentEnergy(stack, available + provided) - provided - } else { - setCurrentEnergy(stack, max) - max - available - } - } - - // IC2 - def getManager(itemStack: ItemStack) = this - - def chargeFromArmor(itemStack: ItemStack, entity: EntityLivingBase) = ElectricItem.rawManager.chargeFromArmor(itemStack, entity) - - def use(itemStack: ItemStack, amount: Double, entity: EntityLivingBase) = ElectricItem.rawManager.use(itemStack, museEnergyToEU(amount), entity) - - def canProvideEnergy(itemStack: ItemStack): Boolean = true - - def getCharge(itemStack: ItemStack): Double = museEnergyToEU(getCurrentEnergy(itemStack)) - - def getMaxCharge(itemStack: ItemStack): Double = museEnergyToEU(getMaxEnergy(itemStack)) - - def getTier(itemStack: ItemStack): Int = ElectricConversions.getTier(itemStack) - - def getTransferLimit(itemStack: ItemStack): Double = museEnergyToEU(Math.sqrt(getMaxEnergy(itemStack))) - - def charge(itemStack: ItemStack, amount: Double, tier: Int, ignoreTransferLimit: Boolean, simulate: Boolean): Double = { - val current: Double = getCurrentEnergy(itemStack) - val transfer = { - if (ignoreTransferLimit || amount < getTransferLimit(itemStack)) - museEnergyFromEU(amount) - else - getTransferLimit(itemStack) - } - val given: Double = giveEnergyTo(itemStack, transfer) - if (simulate) { - setCurrentEnergy(itemStack, current) - } - museEnergyToEU(given) - } - - def discharge(itemStack: ItemStack, amount: Double, tier: Int, ignoreTransferLimit: Boolean, externally: Boolean, simulate: Boolean): Double = { - val current: Double = getCurrentEnergy(itemStack) - val transfer = { - if (ignoreTransferLimit || amount < getTransferLimit(itemStack)) - museEnergyFromEU(amount) - else - getTransferLimit(itemStack) - } - val taken: Double = drainEnergyFrom(itemStack, transfer) - if (simulate) { - setCurrentEnergy(itemStack, current) - } - museEnergyToEU(taken) - } - - def canUse(itemStack: ItemStack, amount: Double): Boolean = museEnergyFromEU(amount) < getCurrentEnergy(itemStack) - - def getToolTip(itemStack: ItemStack): String = this.getToolTip(itemStack) - - def getChargedItem(itemStack: ItemStack) : Item = this - def getEmptyItem(itemStack: ItemStack) : Item = this - - // TE - def receiveEnergy(stack: ItemStack, energy: Int, simulate: Boolean): Int = { - val current: Double = getCurrentEnergy(stack) - val receivedME: Double = museEnergyFromRF(energy) - val eatenME: Double = giveEnergyTo(stack, receivedME) - if (simulate) { - setCurrentEnergy(stack, current) - } - museEnergyToRF(eatenME) - } - - def extractEnergy(stack: ItemStack, energy: Int, simulate: Boolean): Int = { - val current: Double = getCurrentEnergy(stack) - val requesteddME: Double = museEnergyFromRF(energy) - val takenME: Double = drainEnergyFrom(stack, requesteddME) - if (simulate) { - setCurrentEnergy(stack, current) - } - museEnergyToRF(takenME) - } - - def getEnergyStored(theItem: ItemStack) = museEnergyToRF(getCurrentEnergy(theItem)).toInt - - def getMaxEnergyStored(theItem: ItemStack) = museEnergyToRF(getMaxEnergy(theItem)).toInt - - override def getMaxDamage(itemStack: ItemStack) = 0 - - // AE2 - def injectAEPower(stack: ItemStack, ae: Double): Double = { - val current: Double = getCurrentEnergy(stack) - val recieved: Double = museEnergyFromAE(ae) - setCurrentEnergy(stack, current) - museEnergyToAE(recieved) - } - - def extractAEPower(stack: ItemStack, ae: Double): Double = { - val current: Double = getCurrentEnergy(stack) - val taken: Double = museEnergyFromAE(ae) - setCurrentEnergy(stack, current) - museEnergyToAE(taken) - } - - def getAEMaxPower(stack: ItemStack) = museEnergyToAE(getCurrentEnergy(stack)).toInt - - def getAECurrentPower(stack: ItemStack) = museEnergyToAE(getCurrentEnergy(stack)).toInt - - def getPowerFlow(stack: ItemStack): AccessRestriction = AccessRestriction.READ_WRITE -} \ No newline at end of file diff --git a/src/main/scala/net/machinemuse/general/gui/frame/ColourPickerFrame.java b/src/main/scala/net/machinemuse/general/gui/frame/ColourPickerFrame.java new file mode 100644 index 0000000..5f67dd0 --- /dev/null +++ b/src/main/scala/net/machinemuse/general/gui/frame/ColourPickerFrame.java @@ -0,0 +1,253 @@ +//package net.machinemuse.general.gui.frame; +// +//import net.minecraft.util.StatCollector; +//import net.machinemuse.numina.geometry.MusePoint2D; +//import net.machinemuse.numina.general.MuseLogger; +//import java.util.List; +//import net.machinemuse.utils.render.GuiIcons; +//import scala.Predef$; +//import scala.collection.mutable.Buffer$; +//import scala.collection.mutable.Buffer; +//import net.minecraft.nbt.NBTBase; +//import net.minecraft.client.entity.EntityClientPlayerMP; +//import net.minecraft.item.Item; +//import net.minecraft.nbt.NBTTagCompound; +//import net.machinemuse.numina.network.MusePacket; +//import net.machinemuse.numina.network.PacketSender; +//import net.minecraft.entity.player.EntityPlayer; +//import net.machinemuse.powersuits.network.packets.MusePacketColourInfo; +//import net.minecraft.client.Minecraft; +//import scala.reflect.ClassTag$; +//import scala.Array$; +//import scala.runtime.BoxedUnit; +//import net.machinemuse.powersuits.item.ItemPowerArmor; +//import scala.Some; +//import net.machinemuse.utils.MuseItemUtils; +//import scala.None$; +//import net.minecraft.nbt.NBTTagIntArray; +//import scala.Function0; +//import scala.Function1; +//import scala.Option; +//import net.machinemuse.general.gui.clickable.ClickableSlider; +//import net.machinemuse.numina.geometry.DrawableMuseRect; +//import net.machinemuse.numina.geometry.Colour; +//import net.machinemuse.numina.geometry.MuseRect; +//import scala.reflect.ScalaSignature; +// +///** +// * Author: MachineMuse (Claire Semple) +// * Created: 4:19 AM, 03/05/13 +// * +// * Ported to Java by lehjr on 11/2/16. +// */ +// +//public class ColourPickerFrame implements IGuiFrame { +// private final MuseRect borderRef; +// private final Colour insideColour; +// private final Colour borderColour; +// private final ItemSelectionFrame itemSelector; +// private final DrawableMuseRect border; +// private final ClickableSlider rslider; +// private final ClickableSlider gslider; +// private final ClickableSlider bslider; +// private ClickableSlider selectedSlider; +// private int selectedColour; +// private int decrAbove; +// +// public ColourPickerFrame(final MuseRect borderRef, final Colour insideColour, final Colour borderColour, final ItemSelectionFrame itemSelector) { +// this.borderRef = borderRef; +// this.insideColour = insideColour; +// this.borderColour = borderColour; +// this.itemSelector = itemSelector; +// this.border = new DrawableMuseRect(borderRef, insideColour, borderColour); +// this.rslider = new ClickableSlider(new MusePoint2D(this.border().centerx(), this.border().top() + 8), this.border().width() - 10, StatCollector.translateToLocal("gui.red")); +// this.gslider = new ClickableSlider(new MusePoint2D(this.border().centerx(), this.border().top() + 24), this.border().width() - 10, StatCollector.translateToLocal("gui.green")); +// this.bslider = new ClickableSlider(new MusePoint2D(this.border().centerx(), this.border().top() + 40), this.border().width() - 10, StatCollector.translateToLocal("gui.blue")); +// this.selectedSlider = null; +// this.selectedColour = 0; +// this.decrAbove = -1; +// } +// +// public Colour borderColour() { +// return this.borderColour; +// } +// +// public ItemSelectionFrame itemSelector() { +// return this.itemSelector; +// } +// +// public DrawableMuseRect border() { +// return this.border; +// } +// +// public ClickableSlider rslider() { +// return this.rslider; +// } +// +// public ClickableSlider gslider() { +// return this.gslider; +// } +// +// public ClickableSlider bslider() { +// return this.bslider; +// } +// +// public int selectedColour() { +// return this.selectedColour; +// } +// +// public int[] colours() { +// return (getOrCreateColourTag() != null) ? getOrCreateColourTag().func_150302_c() /*getIntArray()*/ : new int[0]; +// } +// +// public NBTTagIntArray getOrCreateColourTag() { +// if (this.itemSelector().getSelectedItem() == null) { +// return null; +// } +// final NBTTagCompound renderSpec = MuseItemUtils.getMuseRenderTag(this.itemSelector().getSelectedItem().getItem()); +// Some some; +// if (renderSpec.hasKey("colours") && renderSpec.getTag("colours") instanceof NBTTagIntArray) { +// some = new Some((Object)renderSpec.getTag("colours")); +// } +// else { +// final Item item = this.itemSelector().getSelectedItem().getItem().getItem(); +// if (item instanceof ItemPowerArmor) { +// final ItemPowerArmor itemPowerArmor = (ItemPowerArmor)item; +// final int[] intArray = { itemPowerArmor.getColorFromItemStack(this.itemSelector().getSelectedItem().getItem()).getInt(), itemPowerArmor.getGlowFromItemStack(this.itemSelector().getSelectedItem().getItem()).getInt() }; +// renderSpec.setIntArray("colours", intArray); +// final BoxedUnit unit = BoxedUnit.UNIT; +// } +// else { +// final int[] intArray2 = (int[])Array$.MODULE$.empty(ClassTag$.MODULE$.Int()); +// renderSpec.setIntArray("colours", intArray2); +// final BoxedUnit unit2 = BoxedUnit.UNIT; +// } +// final EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer; +// if (player.worldObj.isRemote) { +// PacketSender.sendToServer(new MusePacketColourInfo((EntityPlayer)player, this.itemSelector().getSelectedItem().inventorySlot, this.colours())); +// } +// some = new Some((Object)renderSpec.getTag("colours")); +// } +// return (Option)some; +// } +// +// public Option setColourTagMaybe(final int[] newarray) { +// if (this.itemSelector().getSelectedItem() == null) { +// return (Option)None$.MODULE$; +// } +// final NBTTagCompound renderSpec = MuseItemUtils.getMuseRenderTag(this.itemSelector().getSelectedItem().getItem()); +// renderSpec.setTag("colours", (NBTBase)new NBTTagIntArray(newarray)); +// final EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer; +// if (player.worldObj.isRemote) { +// PacketSender.sendToServer(new MusePacketColourInfo((EntityPlayer)player, this.itemSelector().getSelectedItem().inventorySlot, this.colours())); +// } +// return (Option)new Some((Object)renderSpec.getTag("colours")); +// } +// +// public Buffer importColours() { +// final Buffer colours = (Buffer)Buffer$.MODULE$.empty(); +// return (Buffer)colours; +// } +// +// public void refreshColours() { +// } +// +// @Override +// public void onMouseUp(final double x, final double y, final int button) { +// this.selectedSlider = null; +// } +// +// @Override +// public void update(final double mousex, final double mousey) { +// if (this.selectedSlider != null) { +// this.selectedSlider.setValueByX(mousex); +// if (colours().length > selectedColour) { +// colours(selectedColour) = Colour.getInt(rslider.value(), gslider.value(), bslider.value(), 1.0); +// EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer; +// if (player.worldObj.isRemote) +// PacketSender.sendToServer(new MusePacketColourInfo(player, itemSelector.getSelectedItem().inventorySlot, colours())); +// } +// } +// } +// +// +// // def update(mousex: Double, mousey: Double) { +//// selectedSlider.foreach(s => { +//// s.setValueByX(mousex) +//// if (colours.size > selectedColour) { +//// colours(selectedColour) = Colour.getInt(rslider.value, gslider.value, bslider.value, 1.0) +//// val player = Minecraft.getMinecraft.thePlayer +//// if (player.worldObj.isRemote) +//// PacketSender.sendToServer(new MusePacketColourInfo(player, itemSelector.getSelectedItem.inventorySlot, colours)) +//// } +//// }) +//// } +// +// +// +// @Override +// public void draw() { +// this.border().draw(); +// this.rslider().draw(); +// this.gslider().draw(); +// this.bslider().draw(); +// Predef$.MODULE$.intArrayOps(this.colours()).indices().foreach((Function1)new ColourPickerFrame$$anonfun$draw.ColourPickerFrame$$anonfun$draw$1(this)); +// new GuiIcons.ArmourColourPatch(this.border().left() + 8 + Predef$.MODULE$.intArrayOps(this.colours()).size() * 8, this.border().bottom() - 16, Colour.WHITE, null, null, null, null); +// new GuiIcons.SelectedArmorOverlay(this.border().left() + 8 + this.selectedColour() * 8, this.border().bottom() - 16, Colour.WHITE, null, null, null, null); +// new GuiIcons.MinusSign(this.border().left() + 8 + this.selectedColour() * 8, this.border().bottom() - 24, Colour.RED, null, null, null, null); +// new GuiIcons.PlusSign(this.border().left() + 8 + Predef$.MODULE$.intArrayOps(this.colours()).size() * 8, this.border().bottom() - 16, Colour.GREEN, null, null, null, null); +// } +// +// @Override +// public List getToolTip(final int x, final int y) { +// return null; +// } +// +// public void onSelectColour(final int i) { +// final Colour c = new Colour(this.colours()[i]); +// this.rslider().setValue(c.r); +// this.gslider().setValue(c.g); +// this.bslider().setValue(c.b); +// this.selectedColour_$eq(i); +// } +// +// @Override +// public void onMouseDown(final double x, final double y, final int button) { +// if (this.rslider().hitBox(x, y)) { +// this.selectedSlider = this.rslider(); +// } +// else if (this.gslider().hitBox(x, y)) { +// this.selectedSlider = this.gslider(); +// } +// else if (this.bslider().hitBox(x, y)) { +// this.selectedSlider = this.bslider(); +// } +// else { +// this.selectedSlider = null; +// } +// if (y > this.border().bottom() - 16 && y < this.border().bottom() - 8) { +// final int colourCol = (int)(x - this.border().left() - 8.0) / 8; +// if (colourCol >= 0 && colourCol < Predef$.MODULE$.intArrayOps(this.colours()).size()) { +// this.onSelectColour(colourCol); +// final BoxedUnit boxedUnit = BoxedUnit.UNIT; +// } +// else if (colourCol == Predef$.MODULE$.intArrayOps(this.colours()).size()) { +// MuseLogger.logDebug("Adding"); +// this.getOrCreateColourTag().map((Function1)new ColourPickerFrame$$anonfun$onMouseDown.ColourPickerFrame$$anonfun$onMouseDown$1(this)); +// } +// else { +// final BoxedUnit boxedUnit = BoxedUnit.UNIT; +// } +// } +// else { +// final BoxedUnit boxedUnit = BoxedUnit.UNIT; +// } +// if (y > this.border().bottom() - 24 && y < this.border().bottom() - 16 && x > this.border().left() + 8 + this.selectedColour() * 8 && x < this.border().left() + 16 + this.selectedColour() * 8) { +// this.getOrCreateColourTag().foreach((Function1)new ColourPickerFrame$$anonfun$onMouseDown.ColourPickerFrame$$anonfun$onMouseDown$2(this)); +// } +// } +// +// public int[] getIntArray(final NBTTagIntArray e) { +// return e.func_150302_c(); +// } +//} \ No newline at end of file diff --git a/src/main/scala/net/machinemuse/general/gui/frame/PartManipContainer.scala b/src/main/scala/net/machinemuse/general/gui/frame/PartManipContainer.scala index 145180f..0d1dc9b 100644 --- a/src/main/scala/net/machinemuse/general/gui/frame/PartManipContainer.scala +++ b/src/main/scala/net/machinemuse/general/gui/frame/PartManipContainer.scala @@ -17,7 +17,10 @@ class PartManipContainer(val itemSelect: ItemSelectionFrame, val colourSelect: C def getItemSlot = Option(itemSelect.getSelectedItem).map(e => e.inventorySlot) var lastItemSlot: Option[Int] = None - def getColour = if(getItem != None && colourSelect.selectedColour < colourSelect.colours.size && colourSelect.selectedColour >= 0) colourSelect.colours(colourSelect.selectedColour) else Colour.WHITE.getInt + def getColour = if(getItem != None && colourSelect.selectedColour < colourSelect.colours.size && colourSelect.selectedColour >= 0) + colourSelect.colours(colourSelect.selectedColour) + else + Colour.WHITE.getInt var lastColour = getColour def getColourIndex = colourSelect.selectedColour diff --git a/src/main/scala/net/machinemuse/general/gui/frame/PartManipSubFrame.java b/src/main/scala/net/machinemuse/general/gui/frame/PartManipSubFrame.java index 3be8cec..73568c8 100644 --- a/src/main/scala/net/machinemuse/general/gui/frame/PartManipSubFrame.java +++ b/src/main/scala/net/machinemuse/general/gui/frame/PartManipSubFrame.java @@ -24,10 +24,14 @@ //import net.minecraft.nbt.NBTTagCompound; //import org.lwjgl.opengl.GL11; //import scala.*; +//import scala.collection.Iterable; +//import scala.collection.Iterator; //import scala.collection.TraversableOnce; //import scala.reflect.ClassTag$; // //import java.io.Serializable; +//import java.util.ArrayList; +//import java.util.List; // ///** // * Author: MachineMuse (Claire Semple) @@ -36,15 +40,6 @@ // * Ported to Java by lehjr on 11/2/16. // */ //public class PartManipSubFrame { -//// Array specs; -//// boolean open; -//// double mousex; -//// double mousey; -//// ModelSpec model; -//// ColourPickerFrame colourframe; -//// ItemSelectionFrame itemSelector; -//// MuseRelativeRect border; -// // private ModelSpec model; // private ColourPickerFrame colourframe; // private ItemSelectionFrame itemSelector; @@ -60,29 +55,36 @@ // this.itemSelector = itemSelector; // this.border = border; // +// /* TODO: cleanup and simplify in 1.10.2 +// * Scala method of filtering the list and building a new array based on boolean values. // -// -// this.specs = (ModelPartSpec[])((TraversableOnce)model.apply().values().filter((Function1)new Serializable() { -// public boolean apply(ModelPartSpec spec) { -// return PartManipSubFrame.this.isValidArmor(PartManipSubFrame.this.getSelectedItem(), spec.slot()); -// } -// })).toArray(ClassTag$.MODULE$.apply((Class)ModelPartSpec.class)); -// -// -// +// var specs: Array[ModelPartSpec] = model.apply.values.filter(spec => isValidArmor(getSelectedItem, spec.slot)).toArray +// model.apply().values().filter(Function1 p) */ +// this.specs = getSpecs(); // // this.open = true; // this.mousex = 0.0; // this.mousey = 0.0; // } // +// private ModelPartSpec[] getSpecs() { +// List specsArray = new ArrayList<>(); +// Iterator specIt = model.apply().values().iterator(); +// ModelPartSpec spec; +// while (specIt.hasNext()) { +// spec = specIt.next(); +// if (isValidArmor(getSelectedItem(), spec.slot())) +// specsArray.add(spec); +// } +// return (ModelPartSpec[]) specsArray.toArray(); +// } +// // public int getArmorSlot() { // return ((ItemArmor)this.getSelectedItem().getItem().getItem()).armorType; // } // -// // def getSelectedItem = itemSelector.getSelectedItem // public ClickableItem getSelectedItem() { -// return this.itemSelector().getSelectedItem(); +// return this.itemSelector.getSelectedItem(); // } // // public NBTTagCompound getRenderTag() { @@ -101,32 +103,11 @@ // return this.getRenderTag().getCompoundTag(ModelRegistry.makeName(spec)); // } // -// -//// def getOrDontGetSpecTag(spec: ModelPartSpec): Option[NBTTagCompound] = { -//// val name = ModelRegistry.makeName(spec) -//// if (!getRenderTag.hasKey(name)) None -//// else Some(getRenderTag.getCompoundTag(name)) -//// } -// -// public Option getOrDontGetSpecTag(ModelPartSpec spec) { +// public NBTTagCompound getOrDontGetSpecTag(ModelPartSpec spec) { // String name = ModelRegistry.makeName(spec); -// return (Option)(this.getRenderTag().hasKey(name) ? new Some((Object)this.getRenderTag().getCompoundTag(name)) : None$.MODULE$); +// return this.getRenderTag().hasKey(name) ? this.getRenderTag().getCompoundTag(name) : null; // } // -// -// -// // def getOrMakeSpecTag(spec: ModelPartSpec): NBTTagCompound = { -//// val name = ModelRegistry.makeName(spec) -//// if (!getRenderTag.hasKey(name)) { -//// val k = new NBTTagCompound() -//// spec.multiSet(k, None, None, None) -//// getRenderTag.setTag(name, k) -//// k -//// } else { -//// getRenderTag.getCompoundTag(name) -//// } -//// } -// // public NBTTagCompound getOrMakeSpecTag(ModelPartSpec spec) { // String name = ModelRegistry.makeName(spec); // NBTTagCompound compoundTag; @@ -135,21 +116,16 @@ // } // else { // NBTTagCompound k = new NBTTagCompound(); -// spec.multiSet(k, (Option)None$.MODULE$, (Option)None$.MODULE$, (Option)None$.MODULE$); +// spec.multiSet(k, null, None$.MODULE$, None$.MODULE$); // FIXME!! null will probably fail // this.getRenderTag().setTag(name, (NBTBase)k); // compoundTag = k; // } // return compoundTag; // } // -//// def updateItems() { -//// specs = model.apply.values.filter(spec => isValidArmor(getSelectedItem, spec.slot)).toArray -//// border.setHeight(if (specs.size > 0) specs.size * 8 + 10 else 0) -//// } -// // public void updateItems() { -// this.specs = ((ModelPartSpec[])((TraversableOnce)this.model().apply().values().filter((Function1)new PartManipSubFrame$$anonfun$updateItems.PartManipSubFrame$$anonfun$updateItems$1(this))).toArray(ClassTag$.MODULE$.apply((Class)ModelPartSpec.class))); -// this.border().setHeight((Predef$.MODULE$.refArrayOps((Object[])this.specs()).size() > 0) ? (Predef$.MODULE$.refArrayOps((Object[])this.specs()).size() * 8 + 10) : 0.0); +// this.specs = getSpecs(); +// this.border.setHeight((specs.length > 0) ? (specs.length * 8 + 10) : 0); // } // // @@ -169,7 +145,32 @@ //// } // // public void drawPartial(double min, double max) { -// if (Predef$.MODULE$.refArrayOps((Object[])this.specs()).size() > 0) { +//// if (specs.length > 0) { +//// +//// +//// ((MuseBiMap)ModelRegistry.getName((T)this.model()) +//// ModelRegistry.getName(model); +//// +//// +//// +//// +//// .foreach(s => MuseRenderer.drawString(/* STRING */s, border.left() + 8, border.top())) +//// drawOpenArrow(min, max); +//// if (open) { +//// ((border.top + 8) /: specs) { +//// case (y, spec) => { +//// drawSpecPartial(border.left, y, spec, min, max); +//// y + 8 +//// } +//// } +//// } +//// } +//// } +// +// +// +// +// if (specs.length > 0) { // ((MuseBiMap)ModelRegistry.getName((T)this.model()).foreach((Function1)new PartManipSubFrame$$anonfun$drawPartial.PartManipSubFrame$$anonfun$drawPartial$1(this)); // this.drawOpenArrow(min, max); // if (this.open()) { @@ -178,28 +179,29 @@ // } // } // -// // def decrAbove(index: Int) { -//// for (spec <- specs) { -//// val tagname = ModelRegistry.makeName(spec) -//// val player = Minecraft.getMinecraft.thePlayer -//// val tagdata = getOrDontGetSpecTag(spec) -//// tagdata.foreach(e => { -//// val oldindex = spec.getColourIndex(e) -//// if (oldindex >= index && oldindex > 0) { -//// spec.setColourIndex(e, oldindex - 1) -//// if (player.worldObj.isRemote) PacketSender.sendToServer(new MusePacketCosmeticInfo(player, getSelectedItem.inventorySlot, tagname, e).getPacket131) -//// } -//// }) -//// -//// } -//// } -// -// -// // // public void decrAbove(int index) { -// Predef$.MODULE$.refArrayOps((Object[])this.specs()).foreach((Function1)new PartManipSubFrame$$anonfun$decrAbove.PartManipSubFrame$$anonfun$decrAbove$1(this, index)); +// for (ModelPartSpec spec : specs) { +// String tagname = ModelRegistry.makeName(spec); +// EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer; +// NBTTagCompound tagdata = getOrDontGetSpecTag(spec); +// +// if (tagdata != null) { +// int oldindex = spec.getColourIndex(tagdata); +// if (oldindex >= index && oldindex > 0) { +// spec.setColourIndex(tagdata, oldindex - 1); +// if (player.worldObj.isRemote) +// PacketSender.sendToServer(new MusePacketCosmeticInfo(player, getSelectedItem().inventorySlot, tagname, tagdata).getPacket131()); +// } +// } +// } // } // +// +// +// +// +// +// //// def drawSpecPartial(x: Double, y: Double, spec: ModelPartSpec, ymino: Double, ymaxo: Double) = { //// val tag = getSpecTag(spec) //// val selcomp = if (tag.hasNoTags) 0 else if (spec.getGlow(tag)) 2 else 1 @@ -208,6 +210,9 @@ //// new GuiIcons.NormalArmor(x + 8, y, null, null, ymino, null, ymaxo) //// new GuiIcons.GlowArmor(x + 16, y, null, null, ymino, null, ymaxo) //// new GuiIcons.SelectedArmorOverlay(x + selcomp * 8, y, null, null, ymino, null, ymaxo) +// +// /* /: fold left operator */ +// //// val textstartx = ((x + 28) /: colourframe.colours) { //// case (acc, colour) => //// new GuiIcons.ArmourColourPatch(acc, y, new Colour(colour), null, ymino, null, ymaxo) @@ -223,16 +228,32 @@ // NBTTagCompound tag = this.getSpecTag(spec); // int selcomp = tag.hasNoTags() ? 0 : (spec.getGlow(tag) ? 2 : 1); // int selcolour = spec.getColourIndex(tag); -// new GuiIcons.TransparentArmor(x, y, null, null, Predef$.MODULE$.double2Double(ymino), null, Predef$.MODULE$.double2Double(ymaxo)); -// new GuiIcons.NormalArmor(x + 8, y, null, null, Predef$.MODULE$.double2Double(ymino), null, Predef$.MODULE$.double2Double(ymaxo)); -// new GuiIcons.GlowArmor(x + 16, y, null, null, Predef$.MODULE$.double2Double(ymino), null, Predef$.MODULE$.double2Double(ymaxo)); -// new GuiIcons.SelectedArmorOverlay(x + selcomp * 8, y, null, null, Predef$.MODULE$.double2Double(ymino), null, Predef$.MODULE$.double2Double(ymaxo)); -// double textstartx = BoxesRunTime.unboxToDouble(Predef$.MODULE$.intArrayOps(this.colourframe().colours()).$div$colon((Object)BoxesRunTime.boxToDouble(x + 28), (Function2)new PartManipSubFrame$$anonfun.PartManipSubFrame$$anonfun$1(this, y, ymino, ymaxo))); +// new GuiIcons.TransparentArmor(x, y, null, null, ymino, null, ymaxo); +// new GuiIcons.NormalArmor(x + 8, y, null, null, ymino, null, ymaxo); +// new GuiIcons.GlowArmor(x + 16, y, null, null, ymino, null, ymaxo); +// new GuiIcons.SelectedArmorOverlay(x + selcomp * 8, y, null, null, ymino, null, ymaxo); +// +// double textstartx = Predef.Double2double((Predef.intArrayOps(colourframe.colours())./:(scala.runtime.BoxesRunTime.boxToDouble((x.+(28))))) ({ +// case (acc, colour) => +// new GuiIcons.ArmourColourPatch(Predef.Double2double(acc), y, new Colour(colour), null, Predef.double2Double(ymino), null, Predef.double2Double(ymaxo)); +// Predef.double2Double(Predef.Double2double(acc).+(8)) +// })); // if (selcomp > 0) { -// new GuiIcons.SelectedArmorOverlay(x + 28 + selcolour * 8, y, null, null, Predef$.MODULE$.double2Double(ymino), null, Predef$.MODULE$.double2Double(ymaxo)); +// new GuiIcons.SelectedArmorOverlay(x + 28 + selcolour * 8, y, null, null, ymino, null, ymaxo) // } -// else { -// BoxedUnit unit = BoxedUnit.UNIT; +// MuseRenderer.drawString(spec.displayName, textstartx + 4, y) +// +// +// +// +// +// double textstartx = BoxesRunTime.unboxToDouble(Predef$.MODULE$.intArrayOps(this.colourframe.colours()).$div$colon((Object)BoxesRunTime.boxToDouble(x + 28), (Function2)new PartManipSubFrame$$anonfun.PartManipSubFrame$$anonfun$1(this, y, ymino, ymaxo))); +// +// +// +// +// if (selcomp > 0) { +// new GuiIcons.SelectedArmorOverlay(x + 28 + selcolour * 8, y, null, null, ymino, null, ymaxo); // } // MuseRenderer.drawString(spec.displayName(), textstartx + 4, y); // } @@ -260,12 +281,6 @@ // RenderState.texturelessOff(); // } // -//// def getBorder: MuseRect = { -//// if (open) border.setHeight(9 + 9 * specs.size) -//// else border.setHeight(9) -//// border -//// } -// // public MuseRect getBorder() { // if (this.open) { // this.border.setHeight(9 + 9 * this.specs.length); @@ -283,14 +298,18 @@ // } // else if (x > this.border.left() + 2 && x < this.border.left() + 8 && y > this.border.top() + 2 && y < this.border.top() + 8) { // this.open =(!this.open); -// this.getborder; +// this.getBorder(); // b = true; // } // else if (x < this.border.left() + 24 && y > this.border.top() + 8) { // int lineNumber = (int)((y - this.border.top() - 8) / 8); // int columnNumber = (int)((x - this.border.left()) / 8); -// ModelPartSpec spec = this.specs[RichInt$.MODULE$.max$extension(Predef$.MODULE$.intWrapper(RichInt$.MODULE$.min$extension(Predef$.MODULE$.intWrapper(lineNumber), Predef$.MODULE$.refArrayOps((Object[])this.specs()).size() - 1)), 0)]; -// MuseLogger.logDebug(new StringBuilder().append((Object)"Line ").append((Object)BoxesRunTime.boxToInteger(lineNumber)).append((Object)" Column ").append((Object)BoxesRunTime.boxToInteger(columnNumber)).toString()); +// +// +// //TODO: check this, it seems backwards; ie min should be 0 and max should be size -1 +//// val spec = specs(lineNumber.min(specs.size - 1).max(0)) +// ModelPartSpec spec = specs[Math.max(Math.min(lineNumber, specs.length - 1), 0)]; +// MuseLogger.logDebug("Line " + lineNumber + " Column " + columnNumber); // switch (columnNumber) { // default: { // b = false; @@ -302,7 +321,7 @@ // NBTTagCompound tagdata = this.getOrMakeSpecTag(spec); // spec.setGlow(tagdata, true); // if (player.worldObj.isRemote) { -// PacketSender.sendToServer(new MusePacketCosmeticInfo((EntityPlayer)player, this.getSelectedItem().inventorySlot, tagname, tagdata).getPacket131()); +// PacketSender.sendToServer(new MusePacketCosmeticInfo(player, this.getSelectedItem().inventorySlot, tagname, tagdata).getPacket131()); // } // this.updateItems(); // b = true; @@ -314,7 +333,7 @@ // NBTTagCompound tagdata2 = this.getOrMakeSpecTag(spec); // spec.setGlow(tagdata2, false); // if (player2.worldObj.isRemote) { -// PacketSender.sendToServer(new MusePacketCosmeticInfo((EntityPlayer)player2, this.getSelectedItem().inventorySlot, tagname2, tagdata2).getPacket131()); +// PacketSender.sendToServer(new MusePacketCosmeticInfo(player2, this.getSelectedItem().inventorySlot, tagname2, tagdata2).getPacket131()); // } // this.updateItems(); // b = true; @@ -326,7 +345,7 @@ // EntityClientPlayerMP player3 = Minecraft.getMinecraft().thePlayer; // renderTag.removeTag(ModelRegistry.makeName(spec)); // if (player3.worldObj.isRemote) { -// PacketSender.sendToServer(new MusePacketCosmeticInfo((EntityPlayer)player3, this.getSelectedItem().inventorySlot, tagname3, new NBTTagCompound()).getPacket131()); +// PacketSender.sendToServer(new MusePacketCosmeticInfo(player3, this.getSelectedItem().inventorySlot, tagname3, new NBTTagCompound()).getPacket131()); // } // this.updateItems(); // b = true; @@ -337,7 +356,7 @@ // else if (x > this.border.left() + 28 && x < this.border.left() + 28 + Predef$.MODULE$.intArrayOps(this.colourframe.colours()).size() * 8) { // int lineNumber2 = (int)((y - this.border.top() - 8) / 8); // int columnNumber2 = (int)((x - this.border.left() - 28) / 8); -// ModelPartSpec spec2 = this.specs[RichInt$.MODULE$.max$extension(Predef$.MODULE$.intWrapper(RichInt$.MODULE$.min$extension(Predef$.MODULE$.intWrapper(lineNumber2), Predef$.MODULE$.refArrayOps((Object[])this.specs()).size() - 1)), 0)]; +// ModelPartSpec spec2 = specs[Math.max(Math.min(lineNumber2, specs.length - 1), 0)]; // String tagname4 = ModelRegistry.makeName(spec2); // EntityClientPlayerMP player4 = Minecraft.getMinecraft().thePlayer; // NBTTagCompound tagdata3 = this.getOrMakeSpecTag(spec2); @@ -352,195 +371,4 @@ // } // return b; // } -// -// -// -//// class PartManipSubFrame(val model: ModelSpec, val colourframe: ColourPickerFrame, val itemSelector: ItemSelectionFrame, val border: MuseRelativeRect) { -//// var specs: Array[ModelPartSpec] = model.apply.values.filter(spec => isValidArmor(getSelectedItem, spec.slot)).toArray -//// var open: Boolean = true -//// var mousex: Double = 0 -//// var mousey: Double = 0 -//// -// -//// -//// def tryMouseClick(x: Double, y: Double): Boolean = { -//// if (x < border.left || x > border.right || y < border.top || y > border.bottom) false -//// else if (x > border.left + 2 && x < border.left + 8 && y > border.top + 2 && y < border.top + 8) { -//// open = !open -//// getBorder -//// true -//// } else if (x < border.left + 24 && y > border.top + 8) { -//// val lineNumber = ((y - border.top - 8) / 8).toInt -//// val columnNumber = ((x - border.left) / 8).toInt -//// val spec = specs(lineNumber.min(specs.size - 1).max(0)) -//// MuseLogger.logDebug("Line " + lineNumber + " Column " + columnNumber) -//// columnNumber match { -//// case 0 => { -//// val renderTag = getRenderTag -//// val tagname = ModelRegistry.makeName(spec) -//// val player = Minecraft.getMinecraft.thePlayer -//// renderTag.removeTag(ModelRegistry.makeName(spec)) -//// if (player.worldObj.isRemote) PacketSender.sendToServer(new MusePacketCosmeticInfo(player, getSelectedItem.inventorySlot, tagname, new NBTTagCompound()).getPacket131) -//// updateItems() -//// true -//// } -//// case 1 => { -//// val tagname = ModelRegistry.makeName(spec) -//// val player = Minecraft.getMinecraft.thePlayer -//// val tagdata = getOrMakeSpecTag(spec) -//// spec.setGlow(tagdata, false) -//// if (player.worldObj.isRemote) PacketSender.sendToServer(new MusePacketCosmeticInfo(player, getSelectedItem.inventorySlot, tagname, tagdata).getPacket131) -//// updateItems() -//// true -//// } -//// case 2 => { -//// val tagname = ModelRegistry.makeName(spec) -//// val player = Minecraft.getMinecraft.thePlayer -//// val tagdata = getOrMakeSpecTag(spec) -//// spec.setGlow(tagdata, true) -//// if (player.worldObj.isRemote) PacketSender.sendToServer(new MusePacketCosmeticInfo(player, getSelectedItem.inventorySlot, tagname, tagdata).getPacket131) -//// updateItems() -//// true -//// } -//// case _ => false -//// } -//// } else if (x > border.left + 28 && x < border.left + 28 + colourframe.colours.size * 8) { -//// val lineNumber = ((y - border.top - 8) / 8).toInt -//// val columnNumber = ((x - border.left - 28) / 8).toInt -//// val spec = specs(lineNumber.min(specs.size - 1).max(0)) -//// val tagname = ModelRegistry.makeName(spec) -//// val player = Minecraft.getMinecraft.thePlayer -//// val tagdata = getOrMakeSpecTag(spec) -//// spec.setColourIndex(tagdata, columnNumber) -//// if (player.worldObj.isRemote) PacketSender.sendToServer(new MusePacketCosmeticInfo(player, getSelectedItem.inventorySlot, tagname, tagdata).getPacket131) -//// true -//// } -//// else false -//// } -//// -//// } -// -// -//} -// -// -// -// -// -// -// -// -//// -////// -////// Decompiled by Procyon v0.5.30 -////// -//// -////package net.machinemuse.general.gui.frame; -//// -//// import net.machinemuse.numina.scala.MuseBiMap; -//// import scala.runtime.AbstractFunction1; -//// import scala.Serializable; -//// import net.minecraft.client.entity.EntityClientPlayerMP; -//// import net.machinemuse.numina.network.PacketSender; -//// import net.minecraft.entity.player.EntityPlayer; -//// import net.machinemuse.powersuits.network.packets.MusePacketCosmeticInfo; -//// import net.machinemuse.numina.general.MuseLogger; -//// import scala.collection.mutable.StringBuilder; -//// import scala.runtime.RichInt$; -//// import net.machinemuse.numina.geometry.MuseRect; -//// import net.machinemuse.numina.general.MuseMathUtils; -//// import org.lwjgl.opengl.GL11; -//// import net.machinemuse.numina.render.RenderState; -//// import net.machinemuse.utils.render.MuseRenderer; -//// import scala.runtime.BoxedUnit; -//// import net.machinemuse.numina.geometry.Colour; -//// import net.machinemuse.utils.render.GuiIcons; -//// import scala.Function2; -//// import scala.runtime.BoxesRunTime; -//// import scala.Predef$; -//// import scala.reflect.ClassTag$; -//// import scala.Function1; -//// import scala.collection.TraversableOnce; -//// import net.minecraft.nbt.NBTBase; -//// import scala.None$; -//// import scala.Some; -//// import scala.Option; -//// import net.machinemuse.powersuits.client.render.modelspec.ModelRegistry$; -//// import net.minecraft.entity.Entity; -//// import net.minecraft.client.Minecraft; -//// import net.machinemuse.utils.MuseItemUtils; -//// import net.minecraft.nbt.NBTTagCompound; -//// import net.machinemuse.general.gui.clickable.ClickableItem; -//// import net.minecraft.item.ItemArmor; -//// import net.machinemuse.powersuits.client.render.modelspec.ModelPartSpec; -//// import net.machinemuse.numina.geometry.MuseRelativeRect; -//// import net.machinemuse.powersuits.client.render.modelspec.ModelSpec; -//// import scala.reflect.ScalaSignature; -//// -// public class PartManipSubFrame -////{ -// -//// -//// public ModelSpec model() { -//// return this.model; -//// } -//// -//// public ColourPickerFrame colourframe() { -//// return this.colourframe; -//// } -//// -//// public ItemSelectionFrame itemSelector() { -//// return this.itemSelector; -//// } -//// -//// public MuseRelativeRect border() { -//// return this.border; -//// } -//// -//// public ModelPartSpec[] specs() { -//// return this.specs; -//// } -//// -//// public void specs_$eq(ModelPartSpec[] x$1) { -//// this.specs = x$1; -//// } -//// -//// public boolean open() { -//// return this.open; -//// } -//// -//// public void open_$eq(boolean x$1) { -//// this.open = x$1; -//// } -//// -//// public double mousex() { -//// return this.mousex; -//// } -//// -//// public void mousex_$eq(double x$1) { -//// this.mousex = x$1; -//// } -//// -//// public double mousey() { -//// return this.mousey; -//// } -//// -//// public void mousey_$eq(double x$1) { -//// this.mousey = x$1; -//// } -//// -// -//// -// -//// -// -// -//// -// -//// -// -//// -// -//// -// -////} \ No newline at end of file +//} \ No newline at end of file diff --git a/src/main/scala/net/machinemuse/general/gui/frame/PartManipSubFrame.scala b/src/main/scala/net/machinemuse/general/gui/frame/PartManipSubFrame.scala index a5b663c..55caaf0 100644 --- a/src/main/scala/net/machinemuse/general/gui/frame/PartManipSubFrame.scala +++ b/src/main/scala/net/machinemuse/general/gui/frame/PartManipSubFrame.scala @@ -15,9 +15,9 @@ import net.minecraft.nbt.NBTTagCompound import org.lwjgl.opengl.GL11._ /** - * Author: MachineMuse (Claire Semple) - * Created: 1:46 AM, 30/04/13 - */ + * Author: MachineMuse (Claire Semple) + * Created: 1:46 AM, 30/04/13 + */ class PartManipSubFrame(val model: ModelSpec, val colourframe: ColourPickerFrame, val itemSelector: ItemSelectionFrame, val border: MuseRelativeRect) { var specs: Array[ModelPartSpec] = model.apply.values.filter(spec => isValidArmor(getSelectedItem, spec.slot)).toArray var open: Boolean = true @@ -104,6 +104,17 @@ class PartManipSubFrame(val model: ModelSpec, val colourframe: ColourPickerFrame new GuiIcons.ArmourColourPatch(acc, y, new Colour(colour), null, ymino, null, ymaxo) acc + 8 } + + /* + val textstartx = ((x + 28) /: colourframe.colours) { + case (acc, colour) => + new GuiIcons.ArmourColourPatch(acc, y, new Colour(colour), null, ymino, null, ymaxo) + acc + 8 + } + + */ + + if (selcomp > 0) { new GuiIcons.SelectedArmorOverlay(x + 28 + selcolour * 8, y, null, null, ymino, null, ymaxo) } diff --git a/src/main/scala/net/machinemuse/powersuits/common/Config.scala b/src/main/scala/net/machinemuse/powersuits/common/Config.scala index 35b60a4..b7f4cc0 100644 --- a/src/main/scala/net/machinemuse/powersuits/common/Config.scala +++ b/src/main/scala/net/machinemuse/powersuits/common/Config.scala @@ -8,7 +8,8 @@ import com.google.gson.Gson import cpw.mods.fml.common.FMLCommonHandler import cpw.mods.fml.common.registry.GameRegistry import cpw.mods.fml.relauncher.Side -import net.machinemuse.api.{IModularItem, IPowerModule, ModuleManager} +import net.machinemuse.api.electricity.IModularItem +import net.machinemuse.api.{IPowerModule, ModuleManager} import net.machinemuse.numina.basemod.Numina import net.machinemuse.numina.general.MuseLogger import net.machinemuse.powersuits.powermodule.armor._ @@ -109,7 +110,7 @@ object Config { * @return */ def getCreativeTab: CreativeTabs = { - return MPSCreativeTab + return new MPSCreativeTab } /** diff --git a/src/main/scala/net/machinemuse/powersuits/common/MPSCreativeTab.scala b/src/main/scala/net/machinemuse/powersuits/common/MPSCreativeTab.scala deleted file mode 100644 index 3f3dfe4..0000000 --- a/src/main/scala/net/machinemuse/powersuits/common/MPSCreativeTab.scala +++ /dev/null @@ -1,7 +0,0 @@ -package net.machinemuse.powersuits.common - -import net.minecraft.creativetab.CreativeTabs - -object MPSCreativeTab extends CreativeTabs(CreativeTabs.getNextID, "powersuits") { - def getTabIconItem = MPSItems.INSTANCE.powerArmorHead -} \ No newline at end of file diff --git a/src/main/scala/net/machinemuse/powersuits/common/MPSGuiHandler.scala b/src/main/scala/net/machinemuse/powersuits/common/MPSGuiHandler.scala deleted file mode 100644 index 42a07ae..0000000 --- a/src/main/scala/net/machinemuse/powersuits/common/MPSGuiHandler.scala +++ /dev/null @@ -1,41 +0,0 @@ -package net.machinemuse.powersuits.common - -import cpw.mods.fml.common.network.IGuiHandler -import cpw.mods.fml.relauncher.{Side, SideOnly} -import net.machinemuse.general.gui._ -import net.machinemuse.general.gui.frame.PortableCraftingContainer -import net.machinemuse.numina.scala.OptionCast -import net.minecraft.client.Minecraft -import net.minecraft.client.entity.EntityClientPlayerMP -import net.minecraft.entity.player.EntityPlayer -import net.minecraft.stats.AchievementList -import net.minecraft.world.World - -/** - * Gui handler for this mod. Mainly just takes an ID according to what was - * passed to player.OpenGUI, and opens the corresponding GUI. - * - * @author MachineMuse - */ -object MPSGuiHandler extends IGuiHandler { - override def getServerGuiElement(ID: Int, player: EntityPlayer, world: World, x: Int, y: Int, z: Int): AnyRef = { - ID match { - case 4 => new PortableCraftingContainer(player.inventory, world, x, y, z) - case _ => null - } - } - - @SideOnly(Side.CLIENT) - override def getClientGuiElement(ID: Int, player: EntityPlayer, world: World, x: Int, y: Int, z: Int): AnyRef = { - Minecraft.getMinecraft.thePlayer.addStat(AchievementList.openInventory, 1) - OptionCast[EntityClientPlayerMP](player) map (p => - ID match { - case 0 => new GuiTinkerTable(p, x, y, z) - case 1 => new KeyConfigGui(p, x, y, z) - case 2 => new GuiFieldTinker(p) - case 3 => new CosmeticGui(p, x, y, z) - case 4 => new PortableCraftingGui(p, world, x, y, z) - case _ => None - }) getOrElse null - } -} \ No newline at end of file diff --git a/src/main/scala/net/machinemuse/powersuits/common/ModularPowersuits.scala b/src/main/scala/net/machinemuse/powersuits/common/ModularPowersuits.scala index e8afca8..fdbe0ae 100644 --- a/src/main/scala/net/machinemuse/powersuits/common/ModularPowersuits.scala +++ b/src/main/scala/net/machinemuse/powersuits/common/ModularPowersuits.scala @@ -59,7 +59,7 @@ object ModularPowersuits { proxy.registerHandlers() proxy.registerRenderers() MPSPacketList.registerPackets() - NetworkRegistry.INSTANCE.registerGuiHandler(this, MPSGuiHandler) + NetworkRegistry.INSTANCE.registerGuiHandler(this, MPSGuiHandler.getInstance()) TerminalHandler.registerHandler(); } @@ -70,5 +70,4 @@ object ModularPowersuits { Config.addCustomInstallCosts() Config.getConfig.save() } - } \ No newline at end of file diff --git a/src/main/scala/net/machinemuse/powersuits/item/CustomRenderArmorBase.scala b/src/main/scala/net/machinemuse/powersuits/item/CustomRenderArmorBase.scala index 179ccb1..d557a18 100644 --- a/src/main/scala/net/machinemuse/powersuits/item/CustomRenderArmorBase.scala +++ b/src/main/scala/net/machinemuse/powersuits/item/CustomRenderArmorBase.scala @@ -1,11 +1,11 @@ -package net.machinemuse.powersuits.item - -import net.minecraft.item.ItemArmor - -/** - * Author: MachineMuse (Claire Semple) - * Created: 8:09 PM, 4/23/13 - */ -trait CustomRenderArmorBase extends ItemArmor with ModularItemBase { - -} +//package net.machinemuse.powersuits.item +// +//import net.minecraft.item.ItemArmor +// +///** +// * Author: MachineMuse (Claire Semple) +// * Created: 8:09 PM, 4/23/13 +// */ +//trait CustomRenderArmorBase extends ItemArmor with IModularItemBase { +// +//} diff --git a/src/main/scala/net/machinemuse/powersuits/item/IModeChangingModularItem.scala b/src/main/scala/net/machinemuse/powersuits/item/IModeChangingModularItem.scala deleted file mode 100644 index 6c2d66e..0000000 --- a/src/main/scala/net/machinemuse/powersuits/item/IModeChangingModularItem.scala +++ /dev/null @@ -1,57 +0,0 @@ -//package net.machinemuse.powersuits.item -// -//import net.machinemuse.api.ModuleManager -//import net.machinemuse.numina.item.{IModeChangingItem, ModeChangingItem, NuminaItemUtils} -//import net.machinemuse.numina.scala.OptionCast -//import net.minecraft.entity.player.EntityPlayer -//import net.minecraft.item.ItemStack -//import net.minecraft.util.IIcon -// -///** -// * Author: MachineMuse (Claire Semple) -// * Created: 4:52 PM, 9/5/13 -// */ -//object IModeChangingModularItem { -// -// def cycleModeForItem(stack: ItemStack, player: EntityPlayer, dMode: Int) { -// for ( -// s <- Option(stack); -// i <- OptionCast[IModeChangingModularItem](stack.getItem) -// ) { -// i.cycleMode(stack, player, dMode) -// } -// } -//} -// -//trait IModeChangingModularItem extends IModeChangingItem { -// def getModeIcon(mode: String, stack: ItemStack, player: EntityPlayer): Option[IIcon] = Option(ModuleManager.getModule(mode)).map(m => m.getIcon(stack)) -// -// def getValidModes(stack: ItemStack, player: EntityPlayer): Seq[String] = { -// getValidModes(stack) -// } -// -// def getValidModes(stack: ItemStack): Seq[String] = { -// import scala.collection.JavaConversions._ -// for { -// module <- ModuleManager.getRightClickModules -// if module.isValidForItem(stack) -// if ModuleManager.itemHasModule(stack, module.getDataName) -// } yield { -// module.getDataName -// } -// } -// -// def getActiveMode(stack: ItemStack): String = { -// val modeFromNBT = NuminaItemUtils.getTagCompound(stack).getString("mode") -// if (!modeFromNBT.isEmpty) { -// modeFromNBT -// } else { -// val validModes = getValidModes(stack) -// if (validModes.nonEmpty) { -// validModes(0) -// } else { -// "" -// } -// } -// } -//} diff --git a/src/main/scala/net/machinemuse/powersuits/item/ItemElectricArmor.scala b/src/main/scala/net/machinemuse/powersuits/item/ItemElectricArmor.scala deleted file mode 100644 index 0e76e08..0000000 --- a/src/main/scala/net/machinemuse/powersuits/item/ItemElectricArmor.scala +++ /dev/null @@ -1,13 +0,0 @@ -//package net.machinemuse.powersuits.item -// -//import net.machinemuse.api.electricity._ -//import net.minecraft.item.{ItemArmor, ItemStack} -// -//abstract class ItemElectricArmor(material: ItemArmor.ArmorMaterial, index1: Int, index2: Int) -// extends ItemArmor(material, index1, index2) -// with ModularItemBase -// with MuseElectricItem { -// override def getToolTip(stack: ItemStack): String = null -//} -// -// diff --git a/src/main/scala/net/machinemuse/powersuits/item/ItemElectricTool.scala b/src/main/scala/net/machinemuse/powersuits/item/ItemElectricTool.scala deleted file mode 100644 index 47dc8b4..0000000 --- a/src/main/scala/net/machinemuse/powersuits/item/ItemElectricTool.scala +++ /dev/null @@ -1,17 +0,0 @@ -package net.machinemuse.powersuits.item - -import com.google.common.collect.Sets -import net.machinemuse.api.electricity._ -import net.minecraft.block.Block -import net.minecraft.init.Blocks -import net.minecraft.item.{Item, ItemStack, ItemTool} - -object ItemElectricTool { - val blocksEffectiveOn = Sets.newHashSet(Array[Block](Blocks.cobblestone, Blocks.double_stone_slab, Blocks.stone_slab, Blocks.stone, Blocks.sandstone, Blocks.mossy_cobblestone, Blocks.iron_ore, Blocks.iron_block, Blocks.coal_ore, Blocks.gold_block, Blocks.gold_ore, Blocks.diamond_ore, Blocks.diamond_block, Blocks.ice, Blocks.netherrack, Blocks.lapis_ore, Blocks.lapis_block, Blocks.redstone_ore, Blocks.lit_redstone_ore, Blocks.rail, Blocks.detector_rail, Blocks.golden_rail, Blocks.activator_rail)) -} -class ItemElectricTool(damageBonus : Float, material : Item.ToolMaterial) - extends ItemTool(damageBonus, material, ItemElectricTool.blocksEffectiveOn) - with ModularItemBase - with MuseElectricItem { - override def getToolTip(stack: ItemStack): String = null -} \ No newline at end of file diff --git a/src/main/scala/net/machinemuse/powersuits/item/ItemPowerArmor.scala b/src/main/scala/net/machinemuse/powersuits/item/ItemPowerArmor.scala deleted file mode 100644 index 7257ef2..0000000 --- a/src/main/scala/net/machinemuse/powersuits/item/ItemPowerArmor.scala +++ /dev/null @@ -1,166 +0,0 @@ -package net.machinemuse.powersuits.item - -import java.util.UUID - -import com.google.common.collect.Multimap -import cpw.mods.fml.relauncher.{Side, SideOnly} -import net.machinemuse.api.{ArmorTraits, IModularItem, ModuleManager} -import net.machinemuse.numina.geometry.Colour -import net.machinemuse.powersuits.client.render.item.ArmorModel -import net.machinemuse.powersuits.common.Config -import net.machinemuse.powersuits.powermodule.armor.HazmatModule -import net.machinemuse.powersuits.powermodule.misc.{InvisibilityModule, TintModule, TransparentArmorModule} -import net.machinemuse.utils._ -import net.minecraft.client.model.ModelBiped -import net.minecraft.entity.ai.attributes.AttributeModifier -import net.minecraft.entity.player.EntityPlayer -import net.minecraft.entity.{Entity, EntityLivingBase} -import net.minecraft.item.{ItemArmor, ItemStack} -import net.minecraft.nbt.NBTTagCompound -import net.minecraft.util.DamageSource -import net.minecraftforge.common.ISpecialArmor - -/** - * Describes the 4 different modular armor pieces - head, torso, legs, feet. - * - * @author MachineMuse - */ -abstract class ItemPowerArmor(renderIndex: Int, armorType: Int) - extends ItemElectricArmor(ItemArmor.ArmorMaterial.IRON, renderIndex, armorType) - with ISpecialArmor - with ArmorTraits - with IModularItem { - setMaxStackSize(1) - setCreativeTab(Config.getCreativeTab) - - /** - * Inherited from ISpecialArmor, allows significant customization of damage - * calculations. - */ - override def getProperties(player: EntityLivingBase, armor: ItemStack, source: DamageSource, damage: Double, slot: Int): ISpecialArmor.ArmorProperties = { - val priority: Int = 0 - if (source.isFireDamage && !(source == MuseHeatUtils.overheatDamage)) { - return new ISpecialArmor.ArmorProperties(priority, 0.25, (25 * damage).toInt) - } - if(ModuleManager.itemHasModule(armor, HazmatModule.MODULE_HAZMAT)) { - if(source.damageType.equals("electricity") || source.damageType.equals("radiation")) { - return new ISpecialArmor.ArmorProperties(priority, 0.25, (25 * damage).toInt) - } - } - val armorDouble = player match { - case player: EntityPlayer => getArmorDouble(player, armor) - case _ => 2.0 - } - var absorbRatio: Double = 0.04 * armorDouble - var absorbMax: Int = armorDouble.asInstanceOf[Int] * 75 - if (source.isUnblockable) { - absorbMax = 0 - absorbRatio = 0 - } - - return new ISpecialArmor.ArmorProperties(priority, absorbRatio, absorbMax) - } - - def getArmorTexture(itemstack: ItemStack, entity: Entity, slot: Int, layer: Int): String = { - Config.BLANK_ARMOR_MODEL_PATH - } - - override def getColor(stack: ItemStack): Int = { - val c: Colour = getColorFromItemStack(stack) - c.getInt - } - - @SideOnly(Side.CLIENT) - override def getArmorModel(entity: EntityLivingBase, itemstack: ItemStack, armorSlot: Int): ModelBiped = { - val model: ArmorModel = ArmorModel.instance - - model.visibleSection = armorSlot - - if (itemstack != null) { - entity match { - case player: EntityPlayer => - Option(player.getCurrentArmor(2)).foreach(chest => - if (ModuleManager.itemHasActiveModule(chest, InvisibilityModule.MODULE_ACTIVE_CAMOUFLAGE)) model.visibleSection = 99) - case _ => - } - if (ModuleManager.itemHasActiveModule(itemstack, TransparentArmorModule.MODULE_TRANSPARENT_ARMOR)) { - model.visibleSection = 99 - } - model.renderSpec = MuseItemUtils.getMuseRenderTag(itemstack, armorSlot) - } - model - } - - override def getAttributeModifiers(stack: ItemStack): Multimap[_, _] = { - val parent = super.getAttributeModifiers(stack).asInstanceOf[Multimap[String, AttributeModifier]] - parent.put("generic.knockbackResistance", new AttributeModifier(UUID.fromString("448ef0e9-9b7c-4e56-bf3a-6b52aeabff8d"), "generic.knockbackResistance", 0.25, 0)) - parent - } - - override def getItemEnchantability: Int = { - return 0 - } - - /** - * Return whether the specified armor IC2ItemTest has a color. - */ - override def hasColor(stack: ItemStack): Boolean = { - val itemTag: NBTTagCompound = MuseItemUtils.getMuseItemTag(stack) - return ModuleManager.tagHasModule(itemTag, TintModule.RED_TINT) || ModuleManager.tagHasModule(itemTag, TintModule.GREEN_TINT) || ModuleManager.tagHasModule(itemTag, TintModule.BLUE_TINT) - } - - /** - * Inherited from ISpecialArmor, allows us to customize the calculations for - * how much armor will display on the player's HUD. - */ - override def getArmorDisplay(player: EntityPlayer, armor: ItemStack, slot: Int): Int = { - return getArmorDouble(player, armor).asInstanceOf[Int] - } - - def getHeatResistance(player: EntityPlayer, stack: ItemStack): Double = { - return MuseHeatUtils.getMaxHeat(stack) - } - - override def getArmorDouble(player: EntityPlayer, stack: ItemStack): Double = { - var totalArmor: Double = 0 - val props: NBTTagCompound = MuseItemUtils.getMuseItemTag(stack) - val energy: Double = ElectricItemUtils.getPlayerEnergy(player) - val physArmor: Double = ModuleManager.computeModularProperty(stack, MuseCommonStrings.ARMOR_VALUE_PHYSICAL) - val enerArmor: Double = ModuleManager.computeModularProperty(stack, MuseCommonStrings.ARMOR_VALUE_ENERGY) - val enerConsum: Double = ModuleManager.computeModularProperty(stack, MuseCommonStrings.ARMOR_ENERGY_CONSUMPTION) - totalArmor += physArmor - if (energy > enerConsum) { - totalArmor += enerArmor - } - totalArmor = Math.min(Config.getMaximumArmorPerPiece, totalArmor) - return totalArmor - } - - /** - * Inherited from ISpecialArmor, allows us to customize how the armor - * handles being damaged. - */ - override def damageArmor(entity: EntityLivingBase, stack: ItemStack, source: DamageSource, damage: Int, slot: Int) { - val itemProperties: NBTTagCompound = MuseItemUtils.getMuseItemTag(stack) - if (entity.isInstanceOf[EntityPlayer]) { - if (source == MuseHeatUtils.overheatDamage) { - } else if (source.isFireDamage) { - val player: EntityPlayer = entity.asInstanceOf[EntityPlayer] - if (!source.equals(DamageSource.onFire) || MuseHeatUtils.getPlayerHeat(player) < MuseHeatUtils.getMaxHeat(player)) { - MuseHeatUtils.heatPlayer(player, damage) - } - } - else { - val enerConsum: Double = ModuleManager.computeModularProperty(stack, MuseCommonStrings.ARMOR_ENERGY_CONSUMPTION) - val drain: Double = enerConsum * damage - if (entity.isInstanceOf[EntityPlayer]) { - ElectricItemUtils.drainPlayerEnergy(entity.asInstanceOf[EntityPlayer], drain) - } - else { - drainEnergyFrom(stack, drain) - } - } - } - } - -} diff --git a/src/main/scala/net/machinemuse/powersuits/item/ItemPowerFist.scala b/src/main/scala/net/machinemuse/powersuits/item/ItemPowerFist.scala deleted file mode 100644 index 404c5d8..0000000 --- a/src/main/scala/net/machinemuse/powersuits/item/ItemPowerFist.scala +++ /dev/null @@ -1,325 +0,0 @@ -//package net.machinemuse.powersuits.item -// -//import appeng.api.implementations.items.IAEWrench -//import buildcraft.api.tools.IToolWrench -//import cofh.api.item.IToolHammer -//import cpw.mods.fml.common.Optional -//import cpw.mods.fml.relauncher.{Side, SideOnly} -//import crazypants.enderio.api.tool.ITool -//import forestry.api.arboriculture.IToolGrafter -//import mekanism.api.IMekWrench -//import mods.railcraft.api.core.items.IToolCrowbar -//import net.machinemuse.api._ -//import net.machinemuse.api.moduletrigger.IRightClickModule -//import net.machinemuse.general.gui.MuseIcon -//import net.machinemuse.numina.scala.OptionCast -//import net.machinemuse.powersuits.common.Config -//import net.machinemuse.powersuits.powermodule.tool.{GrafterModule, OmniWrenchModule} -//import net.machinemuse.powersuits.powermodule.weapon.MeleeAssistModule -//import net.machinemuse.utils.{ElectricItemUtils, MuseHeatUtils} -//import net.minecraft.block.Block -//import net.minecraft.client.renderer.texture.IIconRegister -//import net.minecraft.entity.item.EntityMinecart -//import net.minecraft.entity.player.EntityPlayer -//import net.minecraft.entity.{Entity, EntityLivingBase} -//import net.minecraft.item.Item.ToolMaterial -//import net.minecraft.item.{EnumAction, ItemStack} -//import net.minecraft.util.{DamageSource, Vec3} -//import net.minecraft.world.World -//import powercrystals.minefactoryreloaded.api.IMFRHammer -// -///** -// * Describes the modular power tool. -// * -// * @author MachineMuse -// */ -//@Optional.InterfaceList(Array( -// new Optional.Interface(iface = "mekanism.api.IMekWrench", modid = "Mekanism", striprefs = true), -// new Optional.Interface(iface = "crazypants.enderio.api.tool.ITool", modid = "EnderIO", striprefs = true), -// new Optional.Interface(iface = "mrtjp.projectred.api.IScrewdriver", modid = "ProjRed|Core", striprefs = true), -// new Optional.Interface(iface = "com.bluepowermod.api.misc.IScrewdriver", modid = "bluepower", striprefs = true), -// new Optional.Interface(iface = "forestry.api.arboriculture.IToolGrafter", modid = "Forestry", striprefs = true), -// new Optional.Interface(iface = "mods.railcraft.api.core.items.IToolCrowbar", modid = "Railcraft", striprefs = true), -// new Optional.Interface(iface = "powercrystals.minefactoryreloaded.api.IMFRHammer", modid = "MineFactoryReloaded", striprefs = true), -// new Optional.Interface(iface = "cofh.api.item.IToolHammer", modid = "CoFHCore", striprefs = true), -// new Optional.Interface(iface = "buildcraft.api.tools.IToolWrench", modid = "BuildCraft|Core", striprefs = true), -// new Optional.Interface(iface = "appeng.api.implementations.items.IAEWrench", modid = "appliedenergistics2", striprefs = true) -//)) -//class ItemPowerFist extends ItemElectricTool(0, ToolMaterial.EMERALD) -//with IModularItem -//with IToolGrafter -//with IToolHammer -//with IMFRHammer -//with IToolCrowbar -//with IAEWrench -//with IToolWrench -//with com.bluepowermod.api.misc.IScrewdriver -//with mrtjp.projectred.api.IScrewdriver -//with ITool -//with IMekWrench -//with IModeChangingModularItem { -// val iconpath: String = MuseIcon.ICON_PREFIX + "handitem" -// setMaxStackSize(1) -// setMaxDamage(0) -// setCreativeTab(Config.getCreativeTab) -// setUnlocalizedName("powerFist") -// -// -// /** -// * Returns the strength of the stack against a given block. 1.0F base, -// * (Quality+1)*2 if correct blocktype, 1.5F if sword -// */ -// def getStrVsBlock(stack: ItemStack, block: Block): Float = getStrVsBlock(stack, block, 0) -// -// /** -// * FORGE: Overridden to allow custom tool effectiveness -// */ -// def getStrVsBlock(stack: ItemStack, block: Block, meta: Int): Float = 1 -// -// @SideOnly(Side.CLIENT) override def registerIcons(iconRegister: IIconRegister) { -// itemIcon = iconRegister.registerIcon(iconpath) -// } -// -// /** -// * Current implementations of this method in child classes do not use the -// * entry argument beside stack. They just raise the damage on the stack. -// */ -// override def hitEntity(stack: ItemStack, entityBeingHit: EntityLivingBase, entityDoingHitting: EntityLivingBase): Boolean = { -// if (ModuleManager.itemHasActiveModule(stack, OmniWrenchModule.MODULE_OMNI_WRENCH)) { -// entityBeingHit.rotationYaw += 90.0F; -// entityBeingHit.rotationYaw %= 360.0F; -// } -// if (entityDoingHitting.isInstanceOf[EntityPlayer] && ModuleManager.itemHasActiveModule(stack, MeleeAssistModule.MODULE_MELEE_ASSIST)) { -// val player: EntityPlayer = entityDoingHitting.asInstanceOf[EntityPlayer] -// val drain: Double = ModuleManager.computeModularProperty(stack, MeleeAssistModule.PUNCH_ENERGY) -// if (ElectricItemUtils.getPlayerEnergy(player) > drain) { -// ElectricItemUtils.drainPlayerEnergy(player, drain) -// val damage: Double = ModuleManager.computeModularProperty(stack, MeleeAssistModule.PUNCH_DAMAGE) -// val knockback: Double = ModuleManager.computeModularProperty(stack, MeleeAssistModule.PUNCH_KNOCKBACK) -// val damageSource: DamageSource = DamageSource.causePlayerDamage(player) -// if (entityBeingHit.attackEntityFrom(damageSource, damage.asInstanceOf[Int])) { -// val lookVec: Vec3 = player.getLookVec -// entityBeingHit.addVelocity(lookVec.xCoord * knockback, Math.abs(lookVec.yCoord + 0.2f) * knockback, lookVec.zCoord * knockback) -// } -// } -// } -// return true -// } -// -// /** -// * Called when a block is destroyed using this tool. -// *

-// * Returns: Whether to increment player use stats with this item -// */ -// override def onBlockDestroyed(stack: ItemStack, world: World, block: Block, x: Int, y: Int, z: Int, entity: EntityLivingBase): Boolean = { -// entity match { -// case player: EntityPlayer => -// import scala.collection.JavaConversions._ -// for (module <- ModuleManager.getBlockBreakingModules) { -// if (ModuleManager.itemHasActiveModule(stack, module.getDataName)) { -// if (module.onBlockDestroyed(stack, world, block, x, y, z, player)) { -// return true -// } -// } -// } -// case _ => -// } -// true -// } -// -// /** -// * An itemstack sensitive version of getDamageVsEntity - allows items to -// * handle damage based on -// * itemstack data, like tags. Falls back to getDamageVsEntity. -// * -// * @param par1Entity The entity being attacked (or the attacking mob, if it's a mob -// * - vanilla bug?) -// * @param itemStack The itemstack -// * @return the damage -// */ -// def getDamageVsEntity(par1Entity: Entity, itemStack: ItemStack): Float = { -// ModuleManager.computeModularProperty(itemStack, MeleeAssistModule.PUNCH_DAMAGE).toFloat -// } -// -// @SideOnly(Side.CLIENT) override def isFull3D: Boolean = { -// return true -// } -// -// /** -// * Return the enchantability factor of the item. In this case, 0. Might add -// * an enchantability module later :P -// */ -// override def getItemEnchantability = 0 -// -// /** -// * Return the name for this tool's material. -// */ -// override def getToolMaterialName = this.toolMaterial.toString -// -// -// /** -// * Return whether this item is repairable in an anvil. -// */ -// override def getIsRepairable(par1ItemStack: ItemStack, par2ItemStack: ItemStack) = false -// -// /** -// * How long it takes to use or consume an item -// */ -// override def getMaxItemUseDuration(par1ItemStack: ItemStack): Int = 72000 -// -// -// /** -// * Called when the right click button is pressed -// */ -// override def onItemRightClick(itemStack: ItemStack, world: World, player: EntityPlayer): ItemStack = { -// import scala.collection.JavaConversions._ -// for (module <- ModuleManager.getRightClickModules) { -// if (module.isValidForItem(itemStack) && ModuleManager.itemHasActiveModule(itemStack, module.getDataName)) { -// module.onRightClick(player, world, itemStack) -// } -// } -// return itemStack -// } -// -// /** -// * returns the action that specifies what animation to play when the items -// * is being used -// */ -// override def getItemUseAction(stack: ItemStack): EnumAction = { -// return EnumAction.bow -// } -// -// /** -// * Called when the right click button is released -// */ -// override def onPlayerStoppedUsing(itemStack: ItemStack, world: World, player: EntityPlayer, par4: Int) { -// val mode: String = getActiveMode(itemStack, player) -// val module: IPowerModule = ModuleManager.getModule(mode) -// OptionCast[IRightClickModule](module) foreach { -// m => m.onPlayerStoppedUsing(itemStack, world, player, par4) -// } -// } -// -// def shouldPassSneakingClickToBlock(world: World, x: Int, y: Int, z: Int): Boolean = true -// -// override def onItemUseFirst(itemStack: ItemStack, player: EntityPlayer, world: World, x: Int, y: Int, z: Int, side: Int, hitX: Float, hitY: Float, hitZ: Float): Boolean = { -// val mode: String = getActiveMode(itemStack, player) -// val module: IPowerModule = ModuleManager.getModule(mode) -// module match { -// case m: IRightClickModule => m.onItemUseFirst(itemStack, player, world, x, y, z, side, hitX, hitY, hitZ) -// case _ => false -// } -// } -// -// override def onItemUse(itemStack: ItemStack, player: EntityPlayer, world: World, x: Int, y: Int, z: Int, side: Int, hitX: Float, hitY: Float, hitZ: Float): Boolean = { -// val mode: String = getActiveMode(itemStack, player) -// val module: IPowerModule = ModuleManager.getModule(mode) -// module match { -// case m: IRightClickModule => m.onItemUse(itemStack, player, world, x, y, z, side, hitX, hitY, hitZ); false -// case _ => false -// } -// } -// -// @Optional.Method(modid = "Forestry") -// def getSaplingModifier(stack: ItemStack, world: World, player: EntityPlayer, x: Int, y: Int, z: Int): Float = { -// 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)) -// 100F -// } else { -// 0F -// } -// } -// -// def canHarvestBlock(stack: ItemStack, block: Block, meta: Int, player: EntityPlayer): Boolean = { -// if (block.getMaterial.isToolNotRequired) { -// return true -// } -// import scala.collection.JavaConversions._ -// for (module <- ModuleManager.getBlockBreakingModules) { -// if (ModuleManager.itemHasActiveModule(stack, module.getDataName) && module.canHarvestBlock(stack, block, meta, player)) { -// return true -// } -// } -// return false -// } -// -// // TE Crescent Hammer -// override def isUsable(itemStack: ItemStack, entityLivingBase: EntityLivingBase, i: Int, i1: Int, i2: Int): Boolean = { -// entityLivingBase match { -// case player: EntityPlayer => getActiveMode(itemStack, player).equals(OmniWrenchModule.MODULE_OMNI_WRENCH) -// case _ => false -// } -// } -// -// // TE Crescent Hammer -// override def toolUsed(itemStack: ItemStack, entityLivingBase: EntityLivingBase, i: Int, i1: Int, i2: Int): Unit = {} -// -// // Railcraft Crowbar -// override def canWhack(player: EntityPlayer, itemStack: ItemStack, i: Int, i1: Int, i2: Int): Boolean = { -// getActiveMode(itemStack, player).equals(OmniWrenchModule.MODULE_OMNI_WRENCH) -// } -// -// // Railcraft Crowbar -// override def canLink(player: EntityPlayer, itemStack: ItemStack, entityMinecart: EntityMinecart): Boolean = { -// getActiveMode(itemStack, player).equals(OmniWrenchModule.MODULE_OMNI_WRENCH) -// } -// -// // Railcraft Crowbar -// override def canBoost(player: EntityPlayer, itemStack: ItemStack, entityMinecart: EntityMinecart): Boolean = { -// getActiveMode(itemStack, player).equals(OmniWrenchModule.MODULE_OMNI_WRENCH) -// } -// -// // Railcraft Crowbar -// override def onLink(player: EntityPlayer, itemStack: ItemStack, entityMinecart: EntityMinecart): Unit = {} -// -// // Railcraft Crowbar -// override def onWhack(player: EntityPlayer, itemStack: ItemStack, i: Int, i1: Int, i2: Int): Unit = {} -// -// // Railcraft Crowbar -// override def onBoost(player: EntityPlayer, itemStack: ItemStack, entityMinecart: EntityMinecart): Unit = {} -// -// // AE wrench -// override def canWrench(itemStack: ItemStack, player: EntityPlayer, i: Int, i1: Int, i2: Int): Boolean = { -// getActiveMode(itemStack, player).equals(OmniWrenchModule.MODULE_OMNI_WRENCH) -// } -// -// // Buildcraft Wrench -// override def wrenchUsed(player: EntityPlayer, i: Int, i1: Int, i2: Int): Unit = { } -// -// // Buildcraft Wrench -// override def canWrench(player: EntityPlayer, i: Int, i1: Int, i2: Int): Boolean = { -// getActiveMode(player.getHeldItem, player).equals(OmniWrenchModule.MODULE_OMNI_WRENCH) -// } -// -// // Bluepower Screwdriver -// override def damage(itemStack: ItemStack, i: Int, entityPlayer: EntityPlayer, b: Boolean): Boolean = { -// getActiveMode(itemStack, entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH) -// } -// -// // ProjectRed Screwdriver -// override def damageScrewdriver(entityPlayer: EntityPlayer, itemStack: ItemStack): Unit = {} -// -// // ProjectRed Screwdriver -// override def canUse(entityPlayer: EntityPlayer, itemStack: ItemStack): Boolean = { -// getActiveMode(itemStack, entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH) -// } -// -// // EnderIO Tool -// override def used(itemStack: ItemStack, entityPlayer: EntityPlayer, i: Int, i1: Int, i2: Int): Unit = {} -// -// // EnderIO Tool -// override def canUse(itemStack: ItemStack, entityPlayer: EntityPlayer, i: Int, i1: Int, i2: Int): Boolean = { -// getActiveMode(itemStack, entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH) -// } -// -// // EnderIO Tool -// override def shouldHideFacades(itemStack: ItemStack, entityPlayer: EntityPlayer): Boolean = { -// getActiveMode(itemStack, entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH) -// } -// -// // Mekanism Wrench -// override def canUseWrench(entityPlayer: EntityPlayer, i: Int, i1: Int, i2: Int): Boolean = { -// getActiveMode(entityPlayer.getHeldItem, entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH) -// } -//} diff --git a/src/main/scala/net/machinemuse/powersuits/item/ModularItemBase.scala b/src/main/scala/net/machinemuse/powersuits/item/ModularItemBase.scala deleted file mode 100644 index 309d008..0000000 --- a/src/main/scala/net/machinemuse/powersuits/item/ModularItemBase.scala +++ /dev/null @@ -1,81 +0,0 @@ -package net.machinemuse.powersuits.item - -import cpw.mods.fml.relauncher.{Side, SideOnly} -import net.machinemuse.api.electricity.MuseElectricItem -import net.machinemuse.api.{IModularItem, ModuleManager} -import net.machinemuse.numina.general.MuseMathUtils._ -import net.machinemuse.numina.geometry.Colour -import net.machinemuse.powersuits.powermodule.misc.{CosmeticGlowModule, TintModule} -import net.machinemuse.utils.{ElectricItemUtils, MuseCommonStrings, MuseStringUtils} -import net.minecraft.entity.player.EntityPlayer -import net.minecraft.item.{Item, ItemStack} - -/** - * Author: MachineMuse (Claire Semple) - * Created: 7:49 PM, 4/23/13 - */ -trait ModularItemBase extends Item with IModularItem with MuseElectricItem { - @SideOnly(Side.CLIENT) override def getColorFromItemStack(stack: ItemStack, par2: Int): Int = { - getColorFromItemStack(stack).getInt - } - - def getGlowFromItemStack(stack: ItemStack): Colour = { - if (!ModuleManager.itemHasActiveModule(stack, CosmeticGlowModule.MODULE_GLOW)) { - return Colour.LIGHTBLUE - } - val computedred: Double = ModuleManager.computeModularProperty(stack, CosmeticGlowModule.RED_GLOW) - val computedgreen: Double = ModuleManager.computeModularProperty(stack, CosmeticGlowModule.GREEN_GLOW) - val computedblue: Double = ModuleManager.computeModularProperty(stack, CosmeticGlowModule.BLUE_GLOW) - val colour: Colour = new Colour(clampDouble(computedred, 0, 1), clampDouble(computedgreen, 0, 1), clampDouble(computedblue, 0, 1), 0.8) - colour - } - - def getColorFromItemStack(stack: ItemStack): Colour = { - if (!ModuleManager.itemHasActiveModule(stack, TintModule.MODULE_TINT)) { - return Colour.WHITE - } - val computedred: Double = ModuleManager.computeModularProperty(stack, TintModule.RED_TINT) - val computedgreen: Double = ModuleManager.computeModularProperty(stack, TintModule.GREEN_TINT) - val computedblue: Double = ModuleManager.computeModularProperty(stack, TintModule.BLUE_TINT) - val colour: Colour = new Colour(clampDouble(computedred, 0, 1), clampDouble(computedgreen, 0, 1), clampDouble(computedblue, 0, 1), 1.0F) - colour - } - - @SideOnly(Side.CLIENT) override def requiresMultipleRenderPasses: Boolean = false - - /** - * Adds information to the item's tooltip when 'getting' it. - * - * @param stack The itemstack to get the tooltip for - * @param player The player (client) viewing the tooltip - * @param currentTipList A list of strings containing the existing tooltip. When - * passed, it will just contain the name of the item; - * enchantments and lore are - * appended afterwards. - * @param advancedToolTips Whether or not the player has 'advanced tooltips' turned on in - * their settings. - */ - @SideOnly(Side.CLIENT) - override def addInformation(stack: ItemStack, player: EntityPlayer, currentTipList: java.util.List[_], advancedToolTips: Boolean) { - MuseCommonStrings.addInformation(stack, player, currentTipList, advancedToolTips) - } - - def formatInfo(string: String, value: Double): String = string + '\t' + MuseStringUtils.formatNumberShort(value) - - def getLongInfo(player: EntityPlayer, stack: ItemStack): java.util.List[String] = { - val info = new java.util.ArrayList[String] - 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' - info - } - - def getArmorDouble(player: EntityPlayer, stack: ItemStack): Double = 0 - - def getPlayerEnergy(player: EntityPlayer): Double = ElectricItemUtils.getPlayerEnergy(player) - - def drainPlayerEnergy(player: EntityPlayer, drainEnergy: Double) = ElectricItemUtils.drainPlayerEnergy(player, drainEnergy) - - def givePlayerEnergy(player: EntityPlayer, joulesToGive: Double) = ElectricItemUtils.givePlayerEnergy(player, joulesToGive) -} diff --git a/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketColourInfo.scala b/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketColourInfo.scala index 68ebf02..60cff65 100644 --- a/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketColourInfo.scala +++ b/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketColourInfo.scala @@ -2,8 +2,8 @@ package net.machinemuse.powersuits.network.packets import java.io.DataInputStream -import net.machinemuse.api.IModularItem -import net.machinemuse.numina.network.{MusePackager, MusePacket} +import net.machinemuse.api.electricity.IModularItem +import net.machinemuse.numina.network.{IMusePackager, MusePacket} import net.machinemuse.utils.MuseItemUtils import net.minecraft.entity.player.{EntityPlayer, EntityPlayerMP} import net.minecraft.nbt.NBTTagCompound @@ -13,7 +13,7 @@ import net.minecraft.nbt.NBTTagCompound * Author: MachineMuse (Claire Semple) * Created: 12:28 PM, 5/6/13 */ -object MusePacketColourInfo extends MusePackager { +object MusePacketColourInfo extends IMusePackager { def read(d: DataInputStream, p: EntityPlayer) = { val itemSlot = readInt(d) val tagData = readIntArray(d) diff --git a/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketCosmeticInfo.scala b/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketCosmeticInfo.scala index 8be0d82..cbb7ecd 100644 --- a/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketCosmeticInfo.scala +++ b/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketCosmeticInfo.scala @@ -2,9 +2,9 @@ package net.machinemuse.powersuits.network.packets import java.io.DataInputStream -import net.machinemuse.api.IModularItem +import net.machinemuse.api.electricity.IModularItem import net.machinemuse.numina.general.MuseLogger -import net.machinemuse.numina.network.{MusePackager, MusePacket} +import net.machinemuse.numina.network.{IMusePackager, MusePacket} import net.machinemuse.utils.MuseItemUtils import net.minecraft.entity.player.{EntityPlayer, EntityPlayerMP} import net.minecraft.nbt.NBTTagCompound @@ -13,7 +13,7 @@ import net.minecraft.nbt.NBTTagCompound * Author: MachineMuse (Claire Semple) * Created: 10:16 AM, 01/05/13 */ -object MusePacketCosmeticInfo extends MusePackager { +object MusePacketCosmeticInfo extends IMusePackager { def read(d: DataInputStream, p: EntityPlayer) = { val itemSlot = readInt(d) val tagName = readString(d) diff --git a/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketInstallModuleRequest.scala b/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketInstallModuleRequest.scala index 79ce13a..9d49220 100644 --- a/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketInstallModuleRequest.scala +++ b/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketInstallModuleRequest.scala @@ -7,7 +7,7 @@ import java.io.DataInputStream import java.util.{ArrayList, List} import net.machinemuse.api.{IPowerModule, ModuleManager} -import net.machinemuse.numina.network.{MusePackager, MusePacket, PacketSender} +import net.machinemuse.numina.network.{IMusePackager, MusePacket, PacketSender} import net.machinemuse.utils.{ElectricItemUtils, MuseItemUtils} import net.minecraft.entity.player.{EntityPlayer, EntityPlayerMP, InventoryPlayer} import net.minecraft.item.ItemStack @@ -21,7 +21,7 @@ import net.minecraft.util.ChatComponentText * Created: 10:16 AM, 01/05/13 */ -object MusePacketInstallModuleRequest extends MusePackager { +object MusePacketInstallModuleRequest extends IMusePackager { def read(d: DataInputStream, p: EntityPlayer) = { val itemSlot = readInt(d) val moduleName = readString(d) diff --git a/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketInventoryRefresh.scala b/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketInventoryRefresh.scala index c24923c..f0754b9 100644 --- a/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketInventoryRefresh.scala +++ b/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketInventoryRefresh.scala @@ -7,7 +7,7 @@ import java.io.DataInputStream import cpw.mods.fml.relauncher.{Side, SideOnly} import net.machinemuse.general.gui.MuseGui -import net.machinemuse.numina.network.{MusePackager, MusePacket} +import net.machinemuse.numina.network.{IMusePackager, MusePacket} import net.machinemuse.numina.scala.OptionCast import net.minecraft.client.Minecraft import net.minecraft.client.entity.EntityClientPlayerMP @@ -20,7 +20,7 @@ import net.minecraft.item.ItemStack * Author: MachineMuse (Claire Semple) * Created: 12:28 PM, 5/6/13 */ -object MusePacketInventoryRefresh extends MusePackager { +object MusePacketInventoryRefresh extends IMusePackager { def read(d: DataInputStream, p: EntityPlayer) = { val itemSlot = readInt(d) val stack = readItemStack(d) diff --git a/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketPlasmaBolt.scala b/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketPlasmaBolt.scala index 3ca6cb9..3b40e7e 100644 --- a/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketPlasmaBolt.scala +++ b/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketPlasmaBolt.scala @@ -3,7 +3,7 @@ package net.machinemuse.powersuits.network.packets import java.io.DataInputStream import cpw.mods.fml.relauncher.{Side, SideOnly} -import net.machinemuse.numina.network.{MusePackager, MusePacket} +import net.machinemuse.numina.network.{IMusePackager, MusePacket} import net.machinemuse.powersuits.entity.EntityPlasmaBolt import net.minecraft.client.Minecraft import net.minecraft.client.entity.EntityClientPlayerMP @@ -13,7 +13,7 @@ import net.minecraft.entity.player.EntityPlayer * Author: MachineMuse (Claire Semple) * Created: 12:28 PM, 5/6/13 */ -object MusePacketPlasmaBolt extends MusePackager { +object MusePacketPlasmaBolt extends IMusePackager { def read(d: DataInputStream, p: EntityPlayer) = { val entityID = readInt(d) val size = readDouble(d) diff --git a/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketPlayerUpdate.scala b/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketPlayerUpdate.scala index 39efab1..868165a 100644 --- a/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketPlayerUpdate.scala +++ b/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketPlayerUpdate.scala @@ -2,7 +2,7 @@ package net.machinemuse.powersuits.network.packets import java.io.DataInputStream -import net.machinemuse.numina.network.{MusePackager, MusePacket, PacketSender} +import net.machinemuse.numina.network.{IMusePackager, MusePacket, PacketSender} import net.machinemuse.powersuits.control.PlayerInputMap import net.minecraft.entity.player.{EntityPlayer, EntityPlayerMP} @@ -11,7 +11,7 @@ import net.minecraft.entity.player.{EntityPlayer, EntityPlayerMP} * Author: MachineMuse (Claire Semple) * Created: 12:28 PM, 5/6/13 */ -object MusePacketPlayerUpdate extends MusePackager { +object MusePacketPlayerUpdate extends IMusePackager { def read(d: DataInputStream, p: EntityPlayer) = { val username = readString(d) val inputMap: PlayerInputMap = PlayerInputMap.getInputMapFor(username) diff --git a/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketPropertyModifierConfig.scala b/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketPropertyModifierConfig.scala index 37ed00b..6d775d0 100644 --- a/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketPropertyModifierConfig.scala +++ b/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketPropertyModifierConfig.scala @@ -4,7 +4,7 @@ import java.io.DataInputStream import cpw.mods.fml.relauncher.{Side, SideOnly} import net.machinemuse.api.ModuleManager -import net.machinemuse.numina.network.{MusePackager, MusePacket} +import net.machinemuse.numina.network.{IMusePackager, MusePacket} import net.machinemuse.powersuits.powermodule.{PowerModuleBase, PropertyModifierFlatAdditive, PropertyModifierLinearAdditive} import net.minecraft.client.entity.EntityClientPlayerMP import net.minecraft.entity.player.EntityPlayer @@ -13,7 +13,7 @@ import net.minecraft.entity.player.EntityPlayer * Author: MachineMuse (Claire Semple) * Created: 7:23 PM, 12/05/13 */ -object MusePacketPropertyModifierConfig extends MusePackager { +object MusePacketPropertyModifierConfig extends IMusePackager { def read(d: DataInputStream, p: EntityPlayer) = { new MusePacketPropertyModifierConfig(p, d) } diff --git a/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketSalvageModuleRequest.scala b/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketSalvageModuleRequest.scala index 02fbac3..42dc037 100644 --- a/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketSalvageModuleRequest.scala +++ b/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketSalvageModuleRequest.scala @@ -7,7 +7,7 @@ import java.io.DataInputStream import java.util.{HashSet, List} import net.machinemuse.api.{IPowerModule, ModuleManager} -import net.machinemuse.numina.network.{MusePackager, MusePacket, PacketSender} +import net.machinemuse.numina.network.{IMusePackager, MusePacket, PacketSender} import net.machinemuse.powersuits.common.Config import net.machinemuse.utils.MuseItemUtils import net.minecraft.entity.player.{EntityPlayer, EntityPlayerMP, InventoryPlayer} @@ -21,7 +21,7 @@ import net.minecraft.item.ItemStack * Author: MachineMuse (Claire Semple) * Created: 12:28 PM, 5/6/13 */ -object MusePacketSalvageModuleRequest extends MusePackager { +object MusePacketSalvageModuleRequest extends IMusePackager { def read(d: DataInputStream, p: EntityPlayer) = { val itemSlot = readInt(d) diff --git a/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketToggleRequest.scala b/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketToggleRequest.scala index 14c85e0..eac5e4e 100644 --- a/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketToggleRequest.scala +++ b/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketToggleRequest.scala @@ -2,7 +2,7 @@ package net.machinemuse.powersuits.network.packets import java.io.DataInputStream -import net.machinemuse.numina.network.{MusePackager, MusePacket} +import net.machinemuse.numina.network.{IMusePackager, MusePacket} import net.machinemuse.utils.MuseItemUtils import net.minecraft.entity.player.{EntityPlayer, EntityPlayerMP} @@ -11,7 +11,7 @@ import net.minecraft.entity.player.{EntityPlayer, EntityPlayerMP} * Author: MachineMuse (Claire Semple) * Created: 12:28 PM, 5/6/13 */ -object MusePacketToggleRequest extends MusePackager { +object MusePacketToggleRequest extends IMusePackager { def read(d: DataInputStream, p: EntityPlayer) = { val module = readString(d) diff --git a/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketTweakRequest.scala b/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketTweakRequest.scala index 101e9da..3df52f5 100644 --- a/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketTweakRequest.scala +++ b/src/main/scala/net/machinemuse/powersuits/network/packets/MusePacketTweakRequest.scala @@ -7,7 +7,7 @@ import java.io.DataInputStream import net.machinemuse.api.ModuleManager import net.machinemuse.numina.general.MuseMathUtils -import net.machinemuse.numina.network.{MusePackager, MusePacket} +import net.machinemuse.numina.network.{IMusePackager, MusePacket} import net.machinemuse.utils.MuseItemUtils import net.minecraft.entity.player.{EntityPlayer, EntityPlayerMP} import net.minecraft.nbt.NBTTagCompound @@ -20,7 +20,7 @@ import net.minecraft.nbt.NBTTagCompound * Author: MachineMuse (Claire Semple) * Created: 12:28 PM, 5/6/13 */ -object MusePacketTweakRequest extends MusePackager { +object MusePacketTweakRequest extends IMusePackager { def read(d: DataInputStream, p: EntityPlayer) = { val itemSlot = readInt(d) val moduleName = readString(d)