Getting ready for final 1.7.10 RC build

This commit is contained in:
Leon 2016-12-14 12:43:48 -05:00
parent f134baa092
commit 7247fc7acb
195 changed files with 1742 additions and 1653 deletions

View file

@ -15,7 +15,6 @@ buildscript {
}
}
repositories {
maven {
name = "ChickenBones"

View file

@ -1,36 +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;
}
}
//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;
// }
//}

View file

@ -1,9 +0,0 @@
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 {
}

View file

@ -1,4 +1,4 @@
package net.machinemuse.api.electricity;
package net.machinemuse.api;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
@ -16,6 +16,7 @@ public interface IModularItem {
/**
* Gets the item's extended summary for displaying in the gui.
*
* @param player
* @param stack
* @return
*/
@ -38,7 +39,6 @@ public interface IModularItem {
*/
void drainPlayerEnergy(EntityPlayer player, double drainAmount);
/**
* Adds the amount of energy to the player's inventory.
*
@ -47,4 +47,4 @@ public interface IModularItem {
* @return
*/
void givePlayerEnergy(EntityPlayer player, double joulesToGive);
}
}

View file

@ -1,11 +1,13 @@
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;
import net.machinemuse.api.moduletrigger.IToggleableModule;
import net.machinemuse.numina.item.IModeChangingItem;
import net.machinemuse.numina.item.NuminaItemUtils;
import net.machinemuse.powersuits.item.IModeChangingModularItem;
import net.machinemuse.utils.MuseItemUtils;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
@ -19,13 +21,13 @@ public class ModuleManager {
public static final String ONLINE = "Active";
protected static final Map<String, List<ItemStack>> customInstallCosts = new HashMap<>();
protected static final Map<String, IPowerModule> moduleMap = new HashMap<>();
protected static final List<IPowerModule> moduleList = new ArrayList<>();
protected static final List<IPlayerTickModule> playerTickModules = new ArrayList<>();
protected static final List<IRightClickModule> rightClickModules = new ArrayList<>();
protected static final List<IToggleableModule> toggleableModules = new ArrayList<>();
protected static final List<IBlockBreakingModule> blockBreakingModules = new ArrayList<>();
protected static final Map<String, List<ItemStack>> customInstallCosts = new HashMap<String, List<ItemStack>>();
protected static final Map<String, IPowerModule> moduleMap = new HashMap<String, IPowerModule>();
protected static final List<IPowerModule> moduleList = new ArrayList<IPowerModule>();
protected static final List<IPlayerTickModule> playerTickModules = new ArrayList<IPlayerTickModule>();
protected static final List<IRightClickModule> rightClickModules = new ArrayList<IRightClickModule>();
protected static final List<IToggleableModule> toggleableModules = new ArrayList<IToggleableModule>();
protected static final List<IBlockBreakingModule> blockBreakingModules = new ArrayList<IBlockBreakingModule>();
public static List<IPowerModule> getAllModules() {
return moduleList;
@ -81,7 +83,7 @@ public class ModuleManager {
return blockBreakingModules;
}
public static List<IPowerModule> getValidModulesForItem(ItemStack stack) {
public static List<IPowerModule> getValidModulesForItem(EntityPlayer player, ItemStack stack) {
List<IPowerModule> validModules = new ArrayList();
for (IPowerModule module : getAllModules()) {
if (module.isValidForItem(stack)) {
@ -91,6 +93,17 @@ public class ModuleManager {
return validModules;
}
public static List<String> getValidModes(ItemStack itemStack) {
List<String> validModes = new ArrayList<>();
for (IRightClickModule rightclickModule : getRightClickModules()) {
if (rightclickModule.isValidForItem(itemStack) && itemHasModule(itemStack, rightclickModule.getDataName()))
validModes.add(rightclickModule.getDataName() );
}
return validModes;
}
public static boolean tagHasModule(NBTTagCompound tag, String moduleName) {
return tag.hasKey(moduleName);
}
@ -142,12 +155,20 @@ public class ModuleManager {
// playerEntity.sendChatToPlayer("Server has disallowed this module. Sorry!");
return false;
}
if (module instanceof IRightClickModule && itemStack.getItem() instanceof IModeChangingItem) {
if (module instanceof IRightClickModule && itemStack.getItem() instanceof IModeChangingModularItem) {
// MuseLogger.logDebug("Module: " + moduleName + " vs Mode: " +
// MuseItemUtils.getActiveMode(itemStack));
IModeChangingItem item = (IModeChangingItem) itemStack.getItem();
// MuseItemUtils.getActiveMode(itemStack));
IModeChangingModularItem item = (IModeChangingModularItem) itemStack.getItem();
String activeMode = NuminaItemUtils.getTagCompound(itemStack).getString("mode");
if (!activeMode.isEmpty())
return moduleName.equals(activeMode);
List<String> validModes = getValidModes(itemStack);
if (validModes.isEmpty())
return false;
return validModes.contains(moduleName);
// return moduleName.equals(item.getActiveMode(itemStack)); //<--- FIXME!!! creates an endless loop.
return moduleName.equals(item.getActiveMode(itemStack));
} else {
return isModuleOnline(MuseItemTag.getMuseItemTag(itemStack), moduleName);
}

View file

@ -19,7 +19,7 @@ public class MuseItemTag {
*
* @param stack
* @return an NBTTagCompound, may be newly created. If stack is null,
* returns null.
* returns null.
*/
@Nullable
public static NBTTagCompound getMuseItemTag(ItemStack stack) {
@ -33,4 +33,4 @@ public class MuseItemTag {
stackTag.setTag(NBTPREFIX, properties);
return properties;
}
}
}

View file

@ -8,43 +8,35 @@ 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;
ItemStack stack;
IAEItemPowerStorage item;
public AE2ElectricAdapter(final ItemStack stack) {
public AE2ElectricAdapter(ItemStack stack) {
this.stack = stack;
this.item = (IAEItemPowerStorage)stack.getItem();
}
public ItemStack stack() {
return this.stack;
}
public IAEItemPowerStorage item() {
return this.item;
item = (IAEItemPowerStorage) stack.getItem();
}
@Override
public double getCurrentEnergy() {
return ElectricConversions.museEnergyFromAE(this.item().getAECurrentPower(this.stack()));
return ElectricConversions.museEnergyFromAE(item.getAECurrentPower(stack));
}
@Override
public double getMaxEnergy() {
return ElectricConversions.museEnergyFromAE(this.item().getAEMaxPower(this.stack()));
return ElectricConversions.museEnergyFromAE(item.getAEMaxPower(stack));
}
@Override
public double drainEnergy(final double requested) {
return ElectricConversions.museEnergyFromAE(this.item().extractAEPower(this.stack(), ElectricConversions.museEnergyToAE(requested)));
public double drainEnergy(double requested) {
return ElectricConversions.museEnergyFromAE(item.extractAEPower(stack, ElectricConversions.museEnergyToAE(requested)));
}
@Override
public double giveEnergy(final double provided) {
return ElectricConversions.museEnergyFromAE(this.item().injectAEPower(this.stack(), ElectricConversions.museEnergyToAE(provided)));
public double giveEnergy(double provided) {
return ElectricConversions.museEnergyFromAE(item.injectAEPower(stack, ElectricConversions.museEnergyToAE(provided)));
}
public AccessRestriction getPowerFlow(final ItemStack stack) {
return AccessRestriction.READ_WRITE;
public AccessRestriction getPowerFlow(ItemStack stack) {
return AccessRestriction.READ_WRITE;
}
}
}

View file

@ -11,12 +11,21 @@ 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) {
public static ElectricAdapter wrap(ItemStack stack) {
if (stack == null)
return null;
Item i = stack.getItem();
if (i instanceof MuseElectricItem) {
return new MuseElectricAdapter(stack);
} else if (ModCompatibility.isRFAPILoaded() && i instanceof IEnergyContainerItem) {
return new TEElectricAdapter(stack);
} else if (ModCompatibility.isIndustrialCraftLoaded() && i instanceof IElectricItem) {
return new IC2ElectricAdapter(stack);
} else if (ModCompatibility.isAppengLoaded() && i instanceof IAEItemPowerStorage) {
return new AE2ElectricAdapter(stack);
} else {
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();
@ -26,4 +35,4 @@ public abstract class ElectricAdapter {
public abstract double drainEnergy(double requested);
public abstract double giveEnergy(double provided);
}
}

View file

@ -10,40 +10,40 @@ import net.minecraft.item.ItemStack;
*
* Ported to Java by lehjr on 11/4/16.
*/
public final class ElectricConversions {
public class ElectricConversions {
/* Industrialcraft 2 -------------------------------------------------------------------------- */
public static final String IC2_TIER = "IC2 Tier";
public static int getTier(final ItemStack stack) {
public static int getTier(ItemStack stack) {
return (int) ModuleManager.computeModularProperty(stack, IC2_TIER);
}
public static double museEnergyToEU(final double museEnergy) {
public static double museEnergyToEU(double museEnergy) {
return museEnergy / ModCompatibility.getIC2Ratio();
}
public static double museEnergyFromEU(final double eu) {
public static double museEnergyFromEU(double eu) {
return eu * ModCompatibility.getIC2Ratio();
}
/* Thermal Expansion -------------------------------------------------------------------------- */
public static int museEnergyToRF(final double museEnergy) {
public static int museEnergyToRF(double museEnergy) {
return (int)Math.ceil(museEnergy / ModCompatibility.getRFRatio());
}
public static double museEnergyFromRF(final int rf) {
public static double museEnergyFromRF(int rf) {
return rf * ModCompatibility.getRFRatio();
}
/* Applied Energistics 2 ---------------------------------------------------------------------- */
public static double museEnergyFromAE(final double ae) {
public static double museEnergyFromAE(double ae) {
return ae * ModCompatibility.getAE2Ratio();
}
public static double museEnergyToAE(final double museEnergy) {
public static double museEnergyToAE(double museEnergy) {
return museEnergy / ModCompatibility.getAE2Ratio();
}
}
}

View file

@ -8,43 +8,36 @@ 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;
ItemStack stack;
IElectricItem item;
public IC2ElectricAdapter(final ItemStack stack) {
public IC2ElectricAdapter(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()));
return ElectricConversions.museEnergyFromEU(ElectricItem.manager.getCharge(stack));
}
@Override
public double getMaxEnergy() {
return ElectricConversions.museEnergyFromEU(this.item().getMaxCharge(this.stack()));
return ElectricConversions.museEnergyFromEU(item.getMaxCharge(stack));
}
@Override
public double drainEnergy(final double requested) {
return ElectricConversions.museEnergyFromEU(ElectricItem.manager.discharge(this.stack(), ElectricConversions.museEnergyToEU(requested), this.getTier(), true, false, false));
public double drainEnergy(double requested) {
return ElectricConversions.museEnergyFromEU(ElectricItem.manager.discharge(stack, ElectricConversions.museEnergyToEU(requested), 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 double giveEnergy(double provided) {
return ElectricConversions.museEnergyFromEU(ElectricItem.manager.charge(stack, ElectricConversions.museEnergyToEU(provided), getTier(), true, false));
}
public int getTier() {
return this.item().getTier(this.stack());
return item.getTier(stack);
}
}
}

View file

@ -4,6 +4,7 @@ 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.IElectricItem;
import ic2.api.item.IElectricItemManager;
import ic2.api.item.ISpecialElectricItem;
import net.minecraft.entity.EntityLivingBase;
@ -20,11 +21,13 @@ import net.minecraft.item.ItemStack;
@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,
@Optional.Interface(iface = "appeng.api.implementations.items.IAEItemPowerStorage", modid = "AE2", striprefs = true)
})
public interface IMuseElectricItem extends
IEnergyContainerItem,
ISpecialElectricItem,
IElectricItemManager,
IElectricItem,
IAEItemPowerStorage {
/**
* Call to get the energy of an item
@ -68,24 +71,29 @@ public interface IMuseElectricItem
*/
double giveEnergyTo(ItemStack stack, double provided);
/**
* Override max damage of an item. Nothing to do with power, at all :P
*/
int getMaxDamage(ItemStack itemStack);
/* 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);
Item getChargedItem(ItemStack itemStack);
@Override
Item getEmptyItem(ItemStack itemStack);
@Override
double getMaxCharge(ItemStack itemStack);
@Override
int getTier(ItemStack itemStack);
@Override
double getTransferLimit(ItemStack itemStack);
@Override
@ -94,35 +102,51 @@ public interface IMuseElectricItem
@Override
double discharge(ItemStack itemStack, double amount, int tier, boolean ignoreTransferLimit, boolean externally, boolean simulate);
@Override
double getCharge(ItemStack itemStack);
@Override
boolean canUse(ItemStack itemStack, double amount);
@Override
boolean use(ItemStack itemStack, double amount, EntityLivingBase entity);
@Override
void chargeFromArmor(ItemStack itemStack, EntityLivingBase entity);
@Override
String getToolTip(ItemStack itemStack);
Item getChargedItem(ItemStack itemStack);
Item getEmptyItem(ItemStack itemStack);
@Override
IElectricItemManager getManager(ItemStack itemStack);
/* Thermal Expansion -------------------------------------------------------------------------- */
int receiveEnergy(ItemStack stack, int energy, boolean simulate);
@Override
int receiveEnergy(ItemStack itemStack, int energy, boolean simulate);
int extractEnergy(ItemStack stack, int energy, boolean simulate);
@Override
int extractEnergy(ItemStack itemStack, int energy, boolean simulate);
int getEnergyStored(ItemStack theItem);
@Override
int getEnergyStored(ItemStack itemStack);
int getMaxEnergyStored(ItemStack theItem);
@Override
int getMaxEnergyStored(ItemStack itemStack);
int getMaxDamage(ItemStack itemStack);
/* Applied Energistics 2 ---------------------------------------------------------------------- */
double injectAEPower(ItemStack stack, double ae);
@Override
double injectAEPower(ItemStack itemStack, double ae);
double extractAEPower(ItemStack stack, double ae);
@Override
double extractAEPower(ItemStack itemStack, double ae);
double getAEMaxPower(ItemStack stack);
@Override
double getAEMaxPower(ItemStack itemStack);
double getAECurrentPower(ItemStack stack);
@Override
double getAECurrentPower(ItemStack itemStack);
AccessRestriction getPowerFlow(ItemStack stack);
}
@Override
AccessRestriction getPowerFlow(ItemStack itemStack);
}

View file

@ -6,39 +6,31 @@ 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;
ItemStack stack;
MuseElectricItem item;
public MuseElectricAdapter(final ItemStack stack) {
public MuseElectricAdapter(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());
return item.getCurrentEnergy(stack);
}
@Override
public double getMaxEnergy() {
return this.item().getMaxEnergy(this.stack());
return item.getMaxEnergy(stack);
}
@Override
public double drainEnergy(final double requested) {
return this.item().drainEnergyFrom(this.stack(), requested);
public double drainEnergy(double requested) {
return item.drainEnergyFrom(stack, requested);
}
@Override
public double giveEnergy(final double provided) {
return this.item().giveEnergyTo(this.stack(), provided);
public double giveEnergy(double provided) {
return item.giveEnergyTo(stack, provided);
}
}

View file

@ -2,6 +2,7 @@ package net.machinemuse.api.electricity;
import appeng.api.config.AccessRestriction;
import ic2.api.item.ElectricItem;
import ic2.api.item.IElectricItemManager;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.utils.ElectricItemUtils;
import net.machinemuse.utils.MuseItemUtils;
@ -30,6 +31,7 @@ public class MuseElectricItem extends Item implements IMuseElectricItem {
* @param stack ItemStack to set
* @return Current energy level
*/
@Override
public double getCurrentEnergy(ItemStack stack) {
return MuseItemUtils.getDoubleOrZero(stack, ElectricItemUtils.CURRENT_ENERGY);
}
@ -40,6 +42,7 @@ public class MuseElectricItem extends Item implements IMuseElectricItem {
* @param stack ItemStack to set
* @return Maximum energy level
*/
@Override
public double getMaxEnergy(ItemStack stack) {
return ModuleManager.computeModularProperty(stack, ElectricItemUtils.MAXIMUM_ENERGY);
}
@ -50,6 +53,7 @@ public class MuseElectricItem extends Item implements IMuseElectricItem {
* @param stack ItemStack to set
* @param energy Level to set it to
*/
@Override
public void setCurrentEnergy(ItemStack stack, double energy) {
MuseItemUtils.setDoubleOrRemove(stack, ElectricItemUtils.CURRENT_ENERGY, Math.min(energy, getMaxEnergy(stack)));
}
@ -61,6 +65,7 @@ public class MuseElectricItem extends Item implements IMuseElectricItem {
* @param requested Amount of energy to drain
* @return Amount of energy successfully drained
*/
@Override
public double drainEnergyFrom(ItemStack stack, double requested) {
double available = getCurrentEnergy(stack);
if (available > requested) {
@ -79,10 +84,10 @@ public class MuseElectricItem extends Item implements IMuseElectricItem {
* @param provided Amount of energy to add
* @return Amount of energy added
*/
@Override
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;
@ -92,38 +97,38 @@ public class MuseElectricItem extends Item implements IMuseElectricItem {
}
}
@Override
public int getMaxDamage(ItemStack itemStack) {
return 0;
}
/* 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 Item getChargedItem(ItemStack itemStack) {
return this;
}
@Override
public Item getEmptyItem(ItemStack itemStack) {
return this;
}
@Override
public double getMaxCharge(ItemStack itemStack) {
return ElectricConversions.museEnergyToEU(getMaxEnergy(itemStack));
}
@Override
public int getTier(ItemStack itemStack) {
return ElectricConversions.getTier(itemStack);
}
@Override
public double getTransferLimit(ItemStack itemStack) {
return ElectricConversions.museEnergyToEU(Math.sqrt(getMaxEnergy(itemStack)));
}
@ -150,82 +155,99 @@ public class MuseElectricItem extends Item implements IMuseElectricItem {
return ElectricConversions.museEnergyToEU(taken);
}
@Override
public double getCharge(ItemStack itemStack) {
return ElectricConversions.museEnergyToEU(getCurrentEnergy(itemStack));
}
@Override
public boolean canUse(ItemStack itemStack, double amount) {
return ElectricConversions.museEnergyFromEU(amount) < getCurrentEnergy(itemStack);
}
@Override
public boolean use(ItemStack itemStack, double amount, EntityLivingBase entity) {
return ElectricItem.rawManager.use(itemStack, ElectricConversions.museEnergyToEU(amount), entity);
}
@Override
public void chargeFromArmor(ItemStack itemStack, EntityLivingBase entity) {
ElectricItem.rawManager.chargeFromArmor(itemStack, entity);
}
@Override
public String getToolTip(ItemStack itemStack) {
// return itemStack.getTooltip(Minecraft.getMinecraft().thePlayer, false).toString(); // enabling this doubles up the tooltips
return "";
}
public Item getChargedItem(ItemStack itemStack) {
@Override
public IElectricItemManager getManager(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);
@Override
public int receiveEnergy(ItemStack itemStack, int energy, boolean simulate) {
double current = getCurrentEnergy(itemStack);
double receivedME = ElectricConversions.museEnergyFromRF(energy);
double eatenME = giveEnergyTo(stack, receivedME);
if (simulate) {
setCurrentEnergy(stack, current);
}
double eatenME = giveEnergyTo(itemStack, receivedME);
if (simulate) setCurrentEnergy(itemStack, current);
return ElectricConversions.museEnergyToRF(eatenME);
}
public int extractEnergy(ItemStack stack, int energy, boolean simulate) {
double current = getCurrentEnergy(stack);
@Override
public int extractEnergy(ItemStack itemStack, int energy, boolean simulate) {
double current = getCurrentEnergy(itemStack);
double requesteddME = ElectricConversions.museEnergyFromRF(energy);
double takenME = drainEnergyFrom(stack, requesteddME);
double takenME = drainEnergyFrom(itemStack, requesteddME);
if (simulate) {
setCurrentEnergy(stack, current);
setCurrentEnergy(itemStack, current);
}
return ElectricConversions.museEnergyToRF(takenME);
}
public int getEnergyStored(ItemStack theItem) {
return ElectricConversions.museEnergyToRF(getCurrentEnergy(theItem));
@Override
public int getEnergyStored(ItemStack itemStack) {
return ElectricConversions.museEnergyToRF(getCurrentEnergy(itemStack));
}
public int getMaxEnergyStored(ItemStack theItem) {
return ElectricConversions.museEnergyToRF(getMaxEnergy(theItem));
@Override
public int getMaxEnergyStored(ItemStack itemStack) {
return ElectricConversions.museEnergyToRF(getMaxEnergy(itemStack));
}
public int getMaxDamage(ItemStack itemStack) {
return 0;
}
/* Applied Energistics 2 ---------------------------------------------------------------------- */
public double injectAEPower(ItemStack stack, double ae) {
double current = getCurrentEnergy(stack);
@Override
public double injectAEPower(ItemStack itemStack, double ae) {
double current = getCurrentEnergy(itemStack);
double recieved = ElectricConversions.museEnergyFromAE(ae);
setCurrentEnergy(stack, current);
setCurrentEnergy(itemStack, current);
return ElectricConversions.museEnergyToAE(recieved);
}
public double extractAEPower(ItemStack stack, double ae) {
double current = getCurrentEnergy(stack);
@Override
public double extractAEPower(ItemStack itemStack, double ae) {
double current = getCurrentEnergy(itemStack);
double taken = ElectricConversions.museEnergyFromAE(ae);
setCurrentEnergy(stack, current);
setCurrentEnergy(itemStack, current);
return ElectricConversions.museEnergyToAE(taken);
}
public double getAEMaxPower(ItemStack stack) {
return ElectricConversions.museEnergyToAE(getCurrentEnergy(stack));
@Override
public double getAEMaxPower(ItemStack itemStack) {
return ElectricConversions.museEnergyToAE(getCurrentEnergy(itemStack));
}
public double getAECurrentPower(ItemStack stack) {
return ElectricConversions.museEnergyToAE(getCurrentEnergy(stack));
@Override
public double getAECurrentPower(ItemStack itemStack) {
return ElectricConversions.museEnergyToAE(getCurrentEnergy(itemStack));
}
public AccessRestriction getPowerFlow(ItemStack stack) {
@Override
public AccessRestriction getPowerFlow(ItemStack itemStack) {
return AccessRestriction.READ_WRITE;
}
}

View file

@ -7,39 +7,31 @@ 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;
ItemStack stack;
IEnergyContainerItem item;
public TEElectricAdapter(final ItemStack stack) {
public TEElectricAdapter(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()));
return ElectricConversions.museEnergyFromRF(item.getEnergyStored(stack));
}
@Override
public double getMaxEnergy() {
return ElectricConversions.museEnergyFromRF(this.item().getMaxEnergyStored(this.stack()));
return ElectricConversions.museEnergyFromRF(item.getMaxEnergyStored(stack));
}
@Override
public double drainEnergy(final double requested) {
return ElectricConversions.museEnergyFromRF(this.item().extractEnergy(this.stack(), ElectricConversions.museEnergyToRF(requested), false));
public double drainEnergy(double requested) {
return ElectricConversions.museEnergyFromRF(item.extractEnergy(stack, ElectricConversions.museEnergyToRF(requested), false));
}
@Override
public double giveEnergy(final double provided) {
return ElectricConversions.museEnergyFromRF(this.item().receiveEnergy(this.stack(), ElectricConversions.museEnergyToRF(provided), false));
public double giveEnergy(double provided) {
return ElectricConversions.museEnergyFromRF(item.receiveEnergy(stack, ElectricConversions.museEnergyToRF(provided), false));
}
}

View file

@ -4,7 +4,7 @@
//import cofh.api.item.IToolHammer
//import cpw.mods.fml.common.FMLCommonHandler
//import mods.railcraft.api.core.items.IToolCrowbar
//import net.machinemuse.api.electricity.IModularItem
//import net.machinemuse.api.IModularItem
//import net.machinemuse.powersuits.powermodule.tool.{MFFSFieldTeleporterModule, OmniWrenchModule}
//import net.machinemuse.utils.ElectricItemUtils
//import net.minecraft.entity.item.EntityMinecart

View file

@ -67,7 +67,7 @@ public class NBTTagAccessor extends NBTTagCompound {
public static List<NBTTagCompound> getValues(NBTTagCompound nbt) {
Set<String> keyset = (Set<String>) nbt.func_150296_c();
ArrayList<NBTTagCompound> a = new ArrayList<>(keyset.size());
ArrayList<NBTTagCompound> a = new ArrayList<NBTTagCompound>(keyset.size());
for (String key : keyset) {
NBTBase c = nbt.getTag(key);
if (c instanceof NBTTagCompound) {
@ -76,4 +76,4 @@ public class NBTTagAccessor extends NBTTagCompound {
}
return a;
}
}
}

View file

@ -14,10 +14,10 @@ import net.minecraft.item.ItemStack;
* Ported to Java by lehjr on 10/19/16.
*/
public class CosmeticGui extends MuseGui {
final EntityPlayer player;
final int worldx;
final int worldy;
final int worldz;
EntityPlayer player;
int worldx;
int worldy;
int worldz;
ItemSelectionFrame itemSelect;
ItemStack lastSelectedItem;
@ -60,20 +60,20 @@ public class CosmeticGui extends MuseGui {
frames.add(colourpicker);
PartManipContainer partframe = new PartManipContainer(
itemSelect, colourpicker,
new MusePoint2D(absX(-0.95F), absY(0.025f)),
new MusePoint2D(absX(+0.95F), absY(0.95f)),
Colour.LIGHTBLUE.withAlpha(0.8F),
Colour.DARKBLUE.withAlpha(0.8F));
frames.add(partframe);
itemSelect, colourpicker,
new MusePoint2D(absX(-0.95F), absY(0.025f)),
new MusePoint2D(absX(+0.95F), absY(0.95f)),
Colour.LIGHTBLUE.withAlpha(0.8F),
Colour.DARKBLUE.withAlpha(0.8F));
frames.add(partframe);
TabSelectFrame tabFrame = new TabSelectFrame(
player,
new MusePoint2D(absX(-0.95F), absY(-1.05f)),
new MusePoint2D(absX(0.95F), absY(-0.95f)),
worldx, worldy, worldz);
frames.add(tabFrame);
}
player,
new MusePoint2D(absX(-0.95F), absY(-1.05f)),
new MusePoint2D(absX(0.95F), absY(-0.95f)),
worldx, worldy, worldz);
frames.add(tabFrame);
}
@Override
public void update() {
@ -84,4 +84,4 @@ public class CosmeticGui extends MuseGui {
public void drawScreen(int x, int y, float z) {
super.drawScreen(x, y, z);
}
}
}

View file

@ -29,4 +29,4 @@ public class EnergyMeter extends HeatMeter {
RenderState.off2D();
MuseTextureUtils.popTexture();
}
}
}

View file

@ -17,7 +17,7 @@ import net.minecraft.util.StatCollector;
* @author MachineMuse
*/
public class GuiFieldTinker extends MuseGui {
protected final EntityClientPlayerMP player;
protected EntityClientPlayerMP player;
protected ItemSelectionFrame itemSelectFrame;
/**
@ -64,4 +64,4 @@ public class GuiFieldTinker extends MuseGui {
MuseRenderer.drawCenteredString(StatCollector.translateToLocal("gui.noModulesFound.line2"), centerx, centery + 5);
}
}
}
}

View file

@ -14,7 +14,7 @@ import net.minecraft.util.StatCollector;
* @author MachineMuse
*/
public class GuiTinkerTable extends MuseGui {
protected final EntityClientPlayerMP player;
protected EntityClientPlayerMP player;
protected ItemSelectionFrame itemSelectFrame;
protected int worldx;
protected int worldy;
@ -79,4 +79,4 @@ public class GuiTinkerTable extends MuseGui {
MuseRenderer.drawCenteredString(StatCollector.translateToLocal("gui.noModulesFound.line2"), centerx, centery + 5);
}
}
}
}

View file

@ -7,11 +7,11 @@ import net.machinemuse.powersuits.control.KeybindManager;
import net.minecraft.entity.player.EntityPlayer;
public class KeyConfigGui extends MuseGui {
private final EntityPlayer player;
private EntityPlayer player;
protected KeybindConfigFrame frame;
protected final int worldx;
protected final int worldy;
protected final int worldz;
protected int worldx;
protected int worldy;
protected int worldz;
public KeyConfigGui(EntityPlayer player, int x, int y, int z) {
super();
@ -50,4 +50,4 @@ public class KeyConfigGui extends MuseGui {
super.onGuiClosed();
KeybindManager.writeOutKeybinds();
}
}
}

View file

@ -28,7 +28,7 @@ public class MuseGui extends GuiScreen {
protected DrawableMuseRect backgroundRect;
protected DrawableMuseRect tooltipRect;
protected final List<IGuiFrame> frames;
protected List<IGuiFrame> frames;
public MuseGui() {
super();
@ -292,4 +292,4 @@ public class MuseGui extends GuiScreen {
*/
public void refresh() {
}
}
}

View file

@ -98,7 +98,7 @@ public class MuseIcon {
public static final MuseIcon ARCREACTOR = new MuseIcon("jetboots");
public static final MuseIcon PUNCHY = new MuseIcon("jetboots");
protected final String texturename;
protected String texturename;
protected IIcon icon;
public MuseIcon(String texturename) {
@ -118,4 +118,4 @@ public class MuseIcon {
public void register(IIconRegister iconRegister) {
icon = iconRegister.registerIcon(ICON_PREFIX + texturename);
}
}
}

View file

@ -44,4 +44,4 @@ public class PortableCraftingGui extends GuiContainer {
}
public static final ResourceLocation GUI_Loc = new ResourceLocation(Config.TEXTURE_PREFIX + "gui/crafting.png");
}
}

View file

@ -22,4 +22,4 @@ public class WaterMeter extends HeatMeter {
RenderState.blendingOff();
MuseTextureUtils.popTexture();
}
}
}

View file

@ -39,4 +39,4 @@ public abstract class Clickable implements IClickable {
public List<String> getToolTip() {
return null;
}
}
}

View file

@ -14,9 +14,9 @@ import java.util.List;
* @author MachineMuse
*/
public class ClickableButton extends Clickable {
protected final String label;
protected final MusePoint2D radius;
protected final DrawableMuseRect rect;
protected String label;
protected MusePoint2D radius;
protected DrawableMuseRect rect;
protected boolean enabled;
public ClickableButton(String label, MusePoint2D position, boolean enabled) {
@ -96,4 +96,4 @@ public class ClickableButton extends Clickable {
}
public String getLabel() { return label; }
}
}

View file

@ -19,8 +19,8 @@ public class ClickableItem extends Clickable {
public static final int offsetx = 8;
public static final int offsety = 8;
public static RenderItem itemRenderer;
public final int inventorySlot;
protected final ItemStack item;
public int inventorySlot;
protected ItemStack item;
public ClickableItem(ItemStack item, MusePoint2D pos, int inventorySlot) {
super(pos);
@ -57,4 +57,4 @@ public class ClickableItem extends Clickable {
MuseRenderer.drawString("e", getPosition().x() + 3, getPosition().y() + 1, Colour.DARKGREEN);
}
}
}
}

View file

@ -1,7 +1,5 @@
package net.machinemuse.general.gui.clickable;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.relauncher.Side;
import net.machinemuse.numina.geometry.Colour;
import net.machinemuse.numina.geometry.MusePoint2D;
import net.machinemuse.numina.network.PacketSender;
@ -25,22 +23,22 @@ import java.util.List;
/**
* Ported to Java by lehjr on 10/19/16.
*/
public class ClickableKeybinding extends ClickableButton {
protected final List<ClickableModule> boundModules = new ArrayList<>();
public class ClickableKeybinding extends ClickableButton{
protected List<ClickableModule> boundModules = new ArrayList<ClickableModule>();
public boolean toggleval = false;
public boolean toggled = false;
public Boolean displayOnHUD;
public final KeyBinding keybind;
boolean toggled = false;
KeyBinding keybind;
public boolean displayOnHUD;
public ClickableKeybinding(KeyBinding keybind, MusePoint2D position, boolean free, Boolean displayOnHUD) {
super((keybind.getKeyCode() < 0)? ("Mouse" + (keybind.getKeyCode() + 100)) : Keyboard.getKeyName(keybind.getKeyCode()), position, true);
this.displayOnHUD = (displayOnHUD != null) ? displayOnHUD : false;
super(ClickableKeybinding.parseName(keybind), position, true);
this.keybind = keybind;
this.displayOnHUD = (displayOnHUD!= null) ? displayOnHUD : false;
}
public String parseName(KeyBinding keybind) {
static String parseName(KeyBinding keybind) {
if (keybind.getKeyCode() < 0) {
return "Mouse" + (keybind.getKeyCode() + 100);
}
@ -68,8 +66,8 @@ public class ClickableKeybinding extends ClickableButton {
}
for (ClickableModule module : boundModules) {
String valstring = (toggleval) ? " on" : " off";
if ((FMLCommonHandler.instance().getEffectiveSide().equals(Side.CLIENT) && Config.toggleModuleSpam())) {
String valstring = (toggleval)? " on" : " off";
if ((player.worldObj.isRemote) && Config.toggleModuleSpam()) {
player.addChatMessage(new ChatComponentText("Toggled " + module.getModule().getDataName() + valstring));
}
MuseItemUtils.toggleModuleForPlayer(player, module.getModule().getDataName(), toggleval);
@ -82,7 +80,6 @@ public class ClickableKeybinding extends ClickableButton {
@Override
public void draw() {
super.draw();
for (ClickableModule module : boundModules) {
MuseRenderer.drawLineBetween(this, module, Colour.LIGHTBLUE);
GL11.glPushMatrix();
@ -116,7 +113,7 @@ public class ClickableKeybinding extends ClickableButton {
public void unbindFarModules() {
Iterator<ClickableModule> iterator = boundModules.iterator();
ClickableModule module;
ClickableModule module = null;
while (iterator.hasNext()) {
module = iterator.next();
int maxDistance = getTargetDistance() * 2;
@ -147,7 +144,7 @@ public class ClickableKeybinding extends ClickableButton {
return other.keybind.getKeyCode() == this.keybind.getKeyCode();
}
public void toggleHUDState (){
public void toggleHUDState(){
displayOnHUD = !displayOnHUD;
}
}
}

View file

@ -6,8 +6,8 @@ import net.machinemuse.utils.render.MuseRenderer;
import java.util.List;
public class ClickableLabel implements IClickable {
protected final String label;
protected final MusePoint2D position;
protected String label;
protected MusePoint2D position;
public ClickableLabel(String label, MusePoint2D position) {
this.label = label;
@ -52,4 +52,5 @@ public class ClickableLabel implements IClickable {
public MusePoint2D getPosition() {
return position;
}
}
}

View file

@ -23,20 +23,19 @@ import java.util.List;
* Ported to Java by lehjr on 10/19/16.
*/
public class ClickableModule extends Clickable {
private final IPowerModule module;
boolean allowed = true;
boolean installed = false;
final Colour checkmarkcolour = new Colour(0.0F, 0.667F, 0.0F, 1.0F);
IPowerModule module;
public ClickableModule(IPowerModule module , MusePoint2D position) {
public ClickableModule(IPowerModule module, MusePoint2D position){
super(position);
this.module = module;
}
private boolean allowed = true;
private boolean installed = false;
private final Colour checkmarkcolour = new Colour(0.0F, 0.667F, 0.0F, 1.0F);
@Override
public List<String> getToolTip() {
List<String> toolTipText = new ArrayList<>();
List<String> toolTipText = new ArrayList<String>();
toolTipText.add(getLocalizedName(getModule()));
toolTipText.addAll(MuseStringUtils.wrapStringToLength(getLocalizedDescription(getModule()), 30));
return toolTipText;
@ -73,7 +72,7 @@ public class ClickableModule extends Clickable {
MuseRenderer.drawString(string, getPosition().x() + 3, getPosition().y() + 1);
}
else if (installed) {
new GuiIcons.Checkmark(getPosition().x() - 8 + 1, getPosition().y() - 8 + 1, checkmarkcolour, null, null, null, null);
new GuiIcons.Checkmark(this.getPosition().x() - 8 + 1, this.getPosition().y() - 8 + 1, this.checkmarkcolour, null, null, null,null);
}
}
@ -88,7 +87,6 @@ public class ClickableModule extends Clickable {
return module;
}
// this is bad as there is already a keyword equals in Java
public boolean equals(ClickableModule other) {
return this.module == other.getModule();
}
@ -100,4 +98,4 @@ public class ClickableModule extends Clickable {
public void setInstalled(boolean installed) {
this.installed = installed;
}
}
}

View file

@ -13,72 +13,52 @@ import net.machinemuse.utils.render.MuseRenderer;
* Ported to Java by lehjr on 10/19/16.
*/
public class ClickableSlider extends Clickable {
private final MusePoint2D pos;
private final double width;
private final String name;
private final int cornersize;
private final DrawableMuseRect insideRect;
private final DrawableMuseRect outsideRect;
private double valueInternal;
double valueInternal = 0;
MusePoint2D pos;
double width;
String name;
DrawableMuseRect insideRect;
DrawableMuseRect outsideRect;
final int cornersize = 3;
public ClickableSlider(final MusePoint2D pos, final double width, final String name) {
public ClickableSlider(MusePoint2D pos, double width, String name) {
this.pos = pos;
this.width = width;
this.name = name;
super.position = pos;
this.cornersize = 3;
this.insideRect = new DrawableMuseRect(this.position.x() - width / 2.0 - this.cornersize(), this.position.y() + 8, 0.0, this.position.y() + 16, Colour.LIGHTBLUE, Colour.ORANGE);
this.outsideRect = new DrawableMuseRect(this.position.x() - width / 2.0 - this.cornersize(), this.position.y() + 8, this.position.x() + width / 2.0 + this.cornersize(), this.position.y() + 16, Colour.LIGHTBLUE, Colour.DARKBLUE);
this.valueInternal = 0.0;
}
public MusePoint2D pos() {
return this.pos;
}
public double width() {
return this.width;
this.position = pos;
this.insideRect = new DrawableMuseRect(position.x() - width / 2.0 - cornersize, position.y() + 8, 0, position.y() + 16, Colour.LIGHTBLUE, Colour.ORANGE);
this.outsideRect = new DrawableMuseRect(position.x() - width / 2.0 - cornersize, position.y() + 8, position.x() + width / 2.0 + cornersize, position.y() + 16, Colour.LIGHTBLUE, Colour.DARKBLUE);
}
public String name() {
return this.name;
}
public int cornersize() {
return this.cornersize;
}
public DrawableMuseRect insideRect() {
return this.insideRect;
}
public DrawableMuseRect outsideRect() {
return this.outsideRect;
}
@Override
public void draw() {
MuseRenderer.drawCenteredString(this.name(), this.position.x(), this.position.y());
this.insideRect().setRight(this.position.x() + this.width() * (this.value() - 0.5) + this.cornersize());
this.outsideRect().draw();
this.insideRect().draw();
MuseRenderer.drawCenteredString(name, position.x(), position.y());
this.insideRect.setRight(position.x() + width * (value() - 0.5) + cornersize);
this.outsideRect.draw();
this.insideRect.draw();
}
@Override
public boolean hitBox(final double x, final double y) {
return Math.abs(this.position.x() - x) < this.width() / 2 && Math.abs(this.position.y() + 12 - y) < 4;
public boolean hitBox(double x, double y) {
return Math.abs(position.x() - x) < width / 2 &&
Math.abs(position.y() + 12 - y) < 4;
}
public double value() {
return this.valueInternal;
return valueInternal;
}
public void setValueByX(final double x) {
final double v = (x - this.pos().x()) / this.width() + 0.5;
this.valueInternal = (MuseMathUtils.clampDouble(v, 0.0, 1.0));
public void setValueByX(double x) {
double v = (x - pos.x()) / width + 0.5;
valueInternal = MuseMathUtils.clampDouble(v, 0, 1);
}
public void setValue(final double v) {
this.valueInternal = v;
public void setValue(double v) {
valueInternal = v;
}
}
}

View file

@ -8,25 +8,21 @@ import net.minecraft.nbt.NBTTagCompound;
* Ported to Java by lehjr on 10/19/16.
*/
public class ClickableTinkerSlider extends ClickableSlider {
private final NBTTagCompound moduleTag;
NBTTagCompound moduleTag;
public ClickableTinkerSlider(final MusePoint2D topmiddle, final double width, final NBTTagCompound moduleTag, final String name) {
public ClickableTinkerSlider(MusePoint2D topmiddle, double width, NBTTagCompound moduleTag, String name) {
super(topmiddle, width, name);
this.moduleTag = moduleTag;
}
public NBTTagCompound moduleTag() {
return this.moduleTag;
}
@Override
public double value() {
return this.moduleTag().hasKey(super.name()) ? this.moduleTag().getDouble(super.name()) : 0.0;
return (moduleTag.hasKey(name)) ? moduleTag.getDouble(name) : 0;
}
public void moveSlider(final double x, final double y) {
final double xval = this.position.x() - x;
final double xratio = MuseMathUtils.clampDouble(0.5 - xval / super.width(), 0.0, 1.0);
this.moduleTag().setDouble(super.name(), xratio);
public void moveSlider(double x, double y) {
double xval = position.x() - x;
double xratio = MuseMathUtils.clampDouble(0.5 - (xval / width), 0, 1);
moduleTag.setDouble(name, xratio);
}
}
}

View file

@ -15,4 +15,4 @@ public interface IClickable {
boolean hitBox(double x, double y);
List getToolTip();
}
}

View file

@ -19,7 +19,7 @@ import java.util.List;
public class DetailedSummaryFrame extends ScrollableFrame {
public static final double SCALEFACTOR = 1;
protected final EntityPlayer player;
protected EntityPlayer player;
protected double weight;
protected double energy;
protected double armor;
@ -71,8 +71,7 @@ public class DetailedSummaryFrame extends ScrollableFrame {
valueWidth = MuseRenderer.getStringWidth(formattedValue);
allowedNameWidth = border.width() - valueWidth - margin * 2;
namesList = MuseStringUtils.wrapStringToVisualLength(name, allowedNameWidth);
assert namesList != null;
for(int i = 0; i<namesList.size(); i++) {
for(int i=0; i<namesList.size();i++) {
MuseRenderer.drawString(namesList.get(i), border.left() + margin, nexty + 9*i);
}
MuseRenderer.drawRightAlignedString(formattedValue, border.right() - margin, nexty + 9 * (namesList.size() - 1) / 2);
@ -83,8 +82,7 @@ public class DetailedSummaryFrame extends ScrollableFrame {
valueWidth = MuseRenderer.getStringWidth(formattedValue);
allowedNameWidth = border.width() - valueWidth - margin * 2;
namesList = MuseStringUtils.wrapStringToVisualLength(name, allowedNameWidth);
assert namesList != null;
for(int i = 0; i<namesList.size(); i++) {
for(int i=0; i<namesList.size();i++) {
MuseRenderer.drawString(namesList.get(i), border.left() + margin, nexty + 9*i);
}
MuseRenderer.drawRightAlignedString(formattedValue, border.right() - margin, nexty + 9 * (namesList.size() - 1) / 2);
@ -110,4 +108,4 @@ public class DetailedSummaryFrame extends ScrollableFrame {
// TODO Auto-generated method stub
return null;
}
}
}

View file

@ -13,4 +13,4 @@ public interface IGuiFrame {
void draw();
List<String> getToolTip(int x, int y);
}
}

View file

@ -25,11 +25,11 @@ import java.util.List;
@SideOnly(Side.CLIENT)
public class InstallSalvageFrame extends ScrollableFrame {
protected final ItemSelectionFrame targetItem;
protected final ModuleSelectionFrame targetModule;
protected final ClickableButton installButton;
protected final ClickableButton salvageButton;
protected final EntityClientPlayerMP player;
protected ItemSelectionFrame targetItem;
protected ModuleSelectionFrame targetModule;
protected ClickableButton installButton;
protected ClickableButton salvageButton;
protected EntityClientPlayerMP player;
public InstallSalvageFrame(EntityClientPlayerMP player, MusePoint2D topleft,
MusePoint2D bottomright,
@ -176,4 +176,4 @@ public class InstallSalvageFrame extends ScrollableFrame {
PacketSender.sendToServer(newpacket.getPacket131());
}
}
}
}

View file

@ -1,6 +1,6 @@
package net.machinemuse.general.gui.frame;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.IModularItem;
import net.machinemuse.general.gui.clickable.ClickableItem;
import net.machinemuse.numina.geometry.Colour;
import net.machinemuse.numina.geometry.MusePoint2D;
@ -14,8 +14,8 @@ import java.util.List;
public class ItemInfoFrame extends ScrollableFrame {
public static final double SCALEFACTOR = 1;
protected final ItemSelectionFrame target;
protected final EntityPlayer player;
protected ItemSelectionFrame target;
protected EntityPlayer player;
protected List<String> info;
public ItemInfoFrame(EntityPlayer player, MusePoint2D topleft,
@ -77,4 +77,4 @@ public class ItemInfoFrame extends ScrollableFrame {
// TODO Auto-generated method stub
return null;
}
}
}

View file

@ -10,6 +10,7 @@ import net.machinemuse.powersuits.client.render.item.IArmorModel;
import net.machinemuse.powersuits.item.ItemPowerArmor;
import net.machinemuse.utils.MuseItemUtils;
import net.minecraft.client.Minecraft;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.entity.Entity;
import net.minecraft.nbt.NBTTagCompound;
import org.lwjgl.input.Mouse;
@ -24,110 +25,101 @@ import java.util.List;
* Ported to Java by lehjr on 11/2/16.
*/
public class ItemModelViewFrame implements IGuiFrame {
private final ItemSelectionFrame itemSelector;
private final DrawableMuseRect border;
private double anchorx;
private double anchory;
private int dragging;
private double lastdWheel;
private double rotx;
private double roty;
private double offsetx;
private double offsety;
private double zoom;
ItemSelectionFrame itemSelector;
DrawableMuseRect border;
public ItemModelViewFrame(final ItemSelectionFrame itemSelector, final MusePoint2D topleft, final MusePoint2D bottomright, final Colour borderColour, final Colour insideColour) {
double anchorx = 0;
double anchory = 0;
int dragging = -1;
double lastdWheel = 0;
double rotx = 0;
double roty = 0;
double offsetx = 0;
double offsety = 0;
double zoom = 64;
public ItemModelViewFrame(ItemSelectionFrame itemSelector, MusePoint2D topleft, MusePoint2D bottomright, Colour borderColour, Colour insideColour) {
this.itemSelector = itemSelector;
this.border = new DrawableMuseRect(topleft, bottomright, borderColour, insideColour);
this.anchorx = 0.0;
this.anchory = 0.0;
this.dragging = -1;
this.lastdWheel = 0.0;
this.rotx = 0.0;
this.roty = 0.0;
this.offsetx = 0.0;
this.offsety = 0.0;
this.zoom = 64.0;
}
public int getArmorSlot() {
return ((ItemPowerArmor)this.getSelectedItem().getItem().getItem()).armorType;
int getArmorSlot() {
return ((ItemPowerArmor)getSelectedItem().getItem().getItem()).armorType;
}
public ClickableItem getSelectedItem() {
return this.itemSelector.getSelectedItem();
ClickableItem getSelectedItem() {
return itemSelector.getSelectedItem();
}
public NBTTagCompound getRenderTag() {
return MuseItemUtils.getMuseRenderTag(this.getSelectedItem().getItem(), this.getArmorSlot());
NBTTagCompound getRenderTag() {
return MuseItemUtils.getMuseRenderTag(getSelectedItem().getItem(), getArmorSlot());
}
@Override
public void onMouseDown(final double x, final double y, final int button) {
if (this.border.containsPoint(x, y)) {
this.dragging = button;
this.anchorx = x;
this.anchory = y;
public void onMouseDown(double x, double y, int button) {
if (border.containsPoint(x, y)) {
dragging = button;
anchorx = x;
anchory = y;
}
}
@Override
public void onMouseUp(final double x, final double y, final int button) {
this.dragging = -1;
public void onMouseUp(double x, double y, int button) {
dragging = -1;
}
@Override
public void update(final double mousex, final double mousey) {
if (this.border.containsPoint(mousex, mousey)) {
final double dscroll = (this.lastdWheel - Mouse.getDWheel()) / 120;
this.zoom = (this.zoom * Math.pow(1.1, dscroll));
this.lastdWheel = Mouse.getDWheel();
public void update(double mousex, double mousey) {
if (border.containsPoint(mousex, mousey)) {
double dscroll = (lastdWheel - Mouse.getDWheel()) / 120;
zoom = zoom * Math.pow(1.1, dscroll);
lastdWheel = Mouse.getDWheel();
}
final double dx = mousex - this.anchorx;
final double dy = mousey - this.anchory;
switch (this.dragging) {
double dx = mousex - anchorx;
double dy = mousey - anchory;
switch(dragging) {
case 0: {
this.rotx = MuseMathUtils.clampDouble(this.rotx + dy, -90.0, 90.0);
this.roty = this.roty - dx;
this.anchorx = mousex;
this.anchory = mousey;
rotx = MuseMathUtils.clampDouble((rotx + dy), -90, 90);
roty = (roty - dx);
anchorx = mousex;
anchory = mousey;
break;
}
case 1: {
this.offsetx = this.offsetx + dx;
this.offsety = this.offsety + dy;
this.anchorx = mousex;
this.anchory = mousey;
offsetx = (offsetx + dx);
offsety = (offsety + dy);
anchorx = mousex;
anchory = mousey;
break;
}
default: {
default:
break;
}
}
}
@Override
public void draw() {
final Minecraft mc = Minecraft.getMinecraft();
this.border.draw();
if (this.itemSelector.getSelectedItem() != null && this.getSelectedItem().getItem().getItem() instanceof ItemPowerArmor) {
GL11.glPushMatrix();
((IArmorModel)ArmorModelInstance.getInstance()).setRenderSpec((MuseItemUtils.getMuseRenderTag(this.getSelectedItem().getItem(), this.getArmorSlot())));
((IArmorModel)ArmorModelInstance.getInstance()).setVisibleSection(this.getArmorSlot());
GL11.glTranslated(this.border.centerx() + this.offsetx, this.border.centery() + this.offsety, 0.0);
GL11.glScaled(this.zoom, this.zoom, this.zoom);
GL11.glClear(256);
GL11.glDisable(2884);
GL11.glRotatef((float)this.rotx, 1.0f, 0.0f, 0.0f);
GL11.glRotatef((float)this.roty, 0.0f, 1.0f, 0.0f);
GL11.glTranslated(0.0, -this.getArmorSlot() / 2.0, 0.0);
ArmorModelInstance.getInstance().render((Entity)mc.thePlayer, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0625f);
GL11.glPopMatrix();
}
Minecraft mc = Minecraft.getMinecraft();
border.draw();
if (itemSelector.getSelectedItem() == null || !(getSelectedItem().getItem().getItem() instanceof ItemPowerArmor)) return;
GL11.glPushMatrix();
((IArmorModel)ArmorModelInstance.getInstance()).setRenderSpec(MuseItemUtils.getMuseRenderTag(getSelectedItem().getItem(), getArmorSlot()));
((IArmorModel)ArmorModelInstance.getInstance()).setVisibleSection(this.getArmorSlot());
GL11.glTranslated(border.centerx() + offsetx, border.centery() + offsety, 0);
GL11.glScaled(zoom, zoom, zoom);
GL11.glClear(GL11.GL_DEPTH_BUFFER_BIT);
GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glRotatef((float) rotx, 1, 0, 0);
GL11.glRotatef((float) roty, 0, 1, 0);
GL11.glTranslated(0, -getArmorSlot() / 2.0, 0);
((ModelBiped)ArmorModelInstance.getInstance()).render((Entity)mc.thePlayer, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0625f);
GL11.glPopMatrix();
}
@Override
public List<String> getToolTip(final int x, final int y) {
public List<String> getToolTip(int x, int y) {
return null;
}
}
}

View file

@ -18,7 +18,7 @@ import java.util.List;
public class ItemSelectionFrame extends ScrollableFrame {
protected List<ClickableItem> itemButtons;
protected int selectedItemStack = -1;
protected final EntityPlayer player;
protected EntityPlayer player;
protected List<MusePoint2D> itemPoints;
public ItemSelectionFrame(MusePoint2D topleft, MusePoint2D bottomright,
@ -48,7 +48,7 @@ public class ItemSelectionFrame extends ScrollableFrame {
private void loadItems() {
if (player != null) {
itemButtons = new ArrayList<>();
itemButtons = new ArrayList<ClickableItem>();
double centerx = (border.left() + border.right()) / 2;
double centery = (border.top() + border.bottom()) / 2;
List<Integer> slots = MuseItemUtils
@ -145,4 +145,4 @@ public class ItemSelectionFrame extends ScrollableFrame {
return null;
}
}
}
}

View file

@ -28,16 +28,16 @@ import java.util.List;
import java.util.Set;
public class KeybindConfigFrame implements IGuiFrame {
protected final Set<ClickableModule> modules;
protected Set<ClickableModule> modules;
protected IClickable selectedClickie;
protected ClickableKeybinding closestKeybind;
protected final EntityPlayer player;
protected final MusePoint2D ul;
protected final MusePoint2D br;
protected final MuseGui gui;
protected EntityPlayer player;
protected MusePoint2D ul;
protected MusePoint2D br;
protected MuseGui gui;
protected boolean selecting;
protected final ClickableButton newKeybindButton;
protected final ClickableButton trashKeybindButton;
protected ClickableButton newKeybindButton;
protected ClickableButton trashKeybindButton;
protected long takenTime;
public KeybindConfigFrame(MuseGui gui, MusePoint2D ul, MusePoint2D br, EntityPlayer player) {
@ -293,4 +293,4 @@ public class KeybindConfigFrame implements IGuiFrame {
ClickableKeybinding clickie = new ClickableKeybinding(keybind, newKeybindButton.getPosition().plus(new MusePoint2D(0, -20)), free, false);
KeybindManager.getKeybindings().add(clickie);
}
}
}

View file

@ -16,7 +16,7 @@ import org.lwjgl.opengl.GL11;
import java.util.*;
public class ModuleSelectionFrame extends ScrollableFrame {
protected final ItemSelectionFrame target;
protected ItemSelectionFrame target;
protected Map<String, ModuleSelectionSubFrame> categories;
protected List<ClickableModule> moduleButtons;
protected int selectedModule = -1;
@ -29,8 +29,8 @@ public class ModuleSelectionFrame extends ScrollableFrame {
super(topleft, bottomright, borderColour, insideColour);
this.target = target;
moduleButtons = new ArrayList<>();
categories = new HashMap<>();
moduleButtons = new ArrayList<ClickableModule>();
categories = new HashMap<String, ModuleSelectionSubFrame>();
}
@Override
@ -94,10 +94,10 @@ public class ModuleSelectionFrame extends ScrollableFrame {
this.lastPosition = null;
ClickableItem selectedItem = target.getSelectedItem();
if (selectedItem != null) {
moduleButtons = new ArrayList<>();
categories = new HashMap<>();
moduleButtons = new ArrayList<ClickableModule>();
categories = new HashMap<String, ModuleSelectionSubFrame>();
List<IPowerModule> workingModules = ModuleManager.getValidModulesForItem(selectedItem.getItem());
List<IPowerModule> workingModules = ModuleManager.getValidModulesForItem(null, selectedItem.getItem());
// Prune the list of disallowed modules, if not installed on this
// item.
@ -198,4 +198,4 @@ public class ModuleSelectionFrame extends ScrollableFrame {
}
return null;
}
}
}

View file

@ -11,14 +11,14 @@ import java.util.ArrayList;
import java.util.List;
public class ModuleSelectionSubFrame {
protected final List<ClickableModule> moduleButtons;
protected final MuseRelativeRect border;
protected final String category;
protected List<ClickableModule> moduleButtons;
protected MuseRelativeRect border;
protected String category;
public ModuleSelectionSubFrame(String category, MuseRelativeRect border) {
this.category = category;
this.border = border;
this.moduleButtons = new ArrayList<>();
this.moduleButtons = new ArrayList<ClickableModule>();
}
// public void draw() {
@ -62,4 +62,4 @@ public class ModuleSelectionSubFrame {
public MuseRect getBorder() {
return border;
}
}
}

View file

@ -63,6 +63,7 @@ public class ModuleTweakFrame extends ScrollableFrame {
if (selectedSlider != null) {
selectedSlider.moveSlider(mousex, mousey);
}
}
@Override
@ -98,7 +99,7 @@ public class ModuleTweakFrame extends ScrollableFrame {
NBTTagCompound moduleTag = itemTag.getCompoundTag(module.getDataName());
propertyStrings = new HashMap();
Set<String> tweaks = new HashSet<>();
Set<String> tweaks = new HashSet<String>();
Map<String, List<IPropertyModifier>> propertyModifiers = module.getPropertyModifiers();
for (Map.Entry<String, List<IPropertyModifier>> property : propertyModifiers.entrySet()) {
@ -110,6 +111,7 @@ public class ModuleTweakFrame extends ScrollableFrame {
}
}
propertyStrings.put(property.getKey(), currValue);
}
sliders = new LinkedList();
@ -155,4 +157,4 @@ public class ModuleTweakFrame extends ScrollableFrame {
selectedSlider = null;
}
}
}
}

View file

@ -19,7 +19,7 @@ public class ScrollableFrame implements IGuiFrame {
protected boolean scrollupPicked = false;
protected int lastdWheel = Mouse.getDWheel();
protected final DrawableMuseRect border;
protected DrawableMuseRect border;
public ScrollableFrame(MusePoint2D topleft, MusePoint2D bottomright,
Colour borderColour, Colour insideColour) {
@ -97,4 +97,4 @@ public class ScrollableFrame implements IGuiFrame {
// TODO Auto-generated method stub
return null;
}
}
}

View file

@ -13,9 +13,9 @@ import java.util.List;
import java.util.Set;
public class StatsFrame extends ScrollableFrame {
protected final NBTTagCompound properties;
protected final ItemStack stack;
protected final Set<String> propertiesToList;
protected NBTTagCompound properties;
protected ItemStack stack;
protected Set<String> propertiesToList;
public StatsFrame(MusePoint2D topleft, MusePoint2D bottomright,
Colour borderColour, Colour insideColour, ItemStack stack) {
@ -58,4 +58,4 @@ public class StatsFrame extends ScrollableFrame {
// TODO Auto-generated method stub
return null;
}
}
}

View file

@ -17,14 +17,13 @@ import java.util.Map;
* Ported to Java by lehjr on 10/19/16.
*/
public class TabSelectFrame implements IGuiFrame {
final EntityPlayer p;
final MusePoint2D topleft;
final MusePoint2D bottomright;
final int worldx;
final int worldy;
final int worldz;
final Map<ClickableButton, Integer> buttons = new HashMap<>();
EntityPlayer p;
MusePoint2D topleft;
MusePoint2D bottomright;
int worldx;
int worldy;
int worldz;
Map<ClickableButton, Integer> buttons = new HashMap<>();
public TabSelectFrame(EntityPlayer p, MusePoint2D topleft, MusePoint2D bottomright, int worldx, int worldy, int worldz) {
this.p = p;
@ -68,4 +67,4 @@ public class TabSelectFrame implements IGuiFrame {
public List<String> getToolTip(int x, int y) {
return null;
}
}
}

View file

@ -20,7 +20,7 @@ import static org.lwjgl.opengl.GL11.*;
public class RenderLuxCapacitorTESR extends MuseTESR implements ISimpleBlockRenderingHandler {
protected static WavefrontObject lightmodel;
protected static WavefrontObject framemodel;
protected final int renderId;
protected int renderId;
public RenderLuxCapacitorTESR(int renderId) {
this.renderId = renderId;

View file

@ -11,7 +11,7 @@ import java.util.Random;
public class TinkerTableModel extends ModelBase {
// public float onGround;
// public boolean isRiding = false;
protected final ModelBase model = new ModelBase() {
protected ModelBase model = new ModelBase() {
};
private static final Random random = new Random();
@ -29,26 +29,26 @@ public class TinkerTableModel extends ModelBase {
// public int textureWidth = 64;
// public int textureHeight = 32;
final ModelRenderer cube;
final ModelRenderer screen3;
final ModelRenderer screen2;
final ModelRenderer screen1;
final ModelRenderer middletable;
final ModelRenderer uppertable;
final ModelRenderer particles;
final ModelRenderer footbase;
final ModelRenderer foot1;
final ModelRenderer fatfoot2;
final ModelRenderer fatfoot1;
final ModelRenderer backsupport;
final ModelRenderer tank3;
final ModelRenderer tank2;
final ModelRenderer tank1;
final ModelRenderer wireshort4;
final ModelRenderer wireshort3;
final ModelRenderer wireshort2;
final ModelRenderer Wireshort1;
final ModelRenderer Wirelong1;
ModelRenderer cube;
ModelRenderer screen3;
ModelRenderer screen2;
ModelRenderer screen1;
ModelRenderer middletable;
ModelRenderer uppertable;
ModelRenderer particles;
ModelRenderer footbase;
ModelRenderer foot1;
ModelRenderer fatfoot2;
ModelRenderer fatfoot1;
ModelRenderer backsupport;
ModelRenderer tank3;
ModelRenderer tank2;
ModelRenderer tank1;
ModelRenderer wireshort4;
ModelRenderer wireshort3;
ModelRenderer wireshort2;
ModelRenderer Wireshort1;
ModelRenderer Wirelong1;
/**
*
@ -175,8 +175,7 @@ public class TinkerTableModel extends ModelBase {
setRotation(Wirelong1, 0F, 0F, 0F);
}
public void doRender(Entity entity, double x, double y, double z,
float f1) {
public void doRender(Entity entity, double x, double y, double z, float f1) {
float f = 0.0625f;
RenderState.blendingOn();
int timestep = (int) ((System.currentTimeMillis()) % 10000);

View file

@ -18,8 +18,8 @@ import org.lwjgl.opengl.GL11;
* @author MachineMuse
*/
public class TinkerTableRenderer extends MuseTESR implements ISimpleBlockRenderingHandler {
protected final TinkerTableModel model;
protected final int renderId;
protected TinkerTableModel model;
protected int renderId;
public TinkerTableRenderer(int renderId) {
model = new TinkerTableModel();
@ -71,4 +71,4 @@ public class TinkerTableRenderer extends MuseTESR implements ISimpleBlockRenderi
public int getRenderId() {
return renderId;
}
}
}

View file

@ -13,4 +13,4 @@ public abstract class MuseRender extends Render {
protected ResourceLocation getEntityTexture(Entity entity) {
return null;
}
}
}

View file

@ -74,4 +74,4 @@ public class RenderPlasmaBolt extends MuseRender {
RenderState.glowOff();
GL11.glPopMatrix();
}
}
}

View file

@ -38,4 +38,4 @@ public class RenderSpinningBlade extends MuseRender {
glPopAttrib();
glPopMatrix();
}
}
}

View file

@ -130,7 +130,7 @@ public class SMovingArmorModel extends ModelPlayer implements IArmorModel {
aimedBow = true;
}
}
} catch (Exception e) {
} catch (Exception ignored) {
}
bipedHead.isHidden = false;

View file

@ -26,41 +26,41 @@ public class ToolModel extends ModelBase {
public int boltSize;
// fields
final ModelRenderer mainarm;
final ModelRenderer armorright;
final ModelRenderer armorleft;
final ModelRenderer wristtopright;
final ModelRenderer wristtopleft;
final ModelRenderer wristbottomright;
final ModelRenderer wristbottomleft;
final ModelRenderer index1;
final ModelRenderer index2;
final ModelRenderer middlefinger1;
final ModelRenderer middlefinger2;
final ModelRenderer ringfinger1;
final ModelRenderer ringfinger2;
final ModelRenderer pinky1;
final ModelRenderer pinky2;
final ModelRenderer thumb1;
final ModelRenderer thumb2;
final ModelRenderer fingerguard;
final ModelRenderer crystalholder;
final ModelRenderer crystal;
final ModelRenderer supportright1;
final ModelRenderer supportright2;
final ModelRenderer supportright3;
final ModelRenderer supportright4;
final ModelRenderer supportright5;
final ModelRenderer supportbaseright;
final ModelRenderer palm;
final ModelRenderer supportbaseleft;
final ModelRenderer supportleftfront;
final ModelRenderer supportrightfront;
final ModelRenderer supportleft1;
final ModelRenderer supportleft2;
final ModelRenderer supportleft3;
final ModelRenderer supportleft4;
final ModelRenderer supportleft5;
ModelRenderer mainarm;
ModelRenderer armorright;
ModelRenderer armorleft;
ModelRenderer wristtopright;
ModelRenderer wristtopleft;
ModelRenderer wristbottomright;
ModelRenderer wristbottomleft;
ModelRenderer index1;
ModelRenderer index2;
ModelRenderer middlefinger1;
ModelRenderer middlefinger2;
ModelRenderer ringfinger1;
ModelRenderer ringfinger2;
ModelRenderer pinky1;
ModelRenderer pinky2;
ModelRenderer thumb1;
ModelRenderer thumb2;
ModelRenderer fingerguard;
ModelRenderer crystalholder;
ModelRenderer crystal;
ModelRenderer supportright1;
ModelRenderer supportright2;
ModelRenderer supportright3;
ModelRenderer supportright4;
ModelRenderer supportright5;
ModelRenderer supportbaseright;
ModelRenderer palm;
ModelRenderer supportbaseleft;
ModelRenderer supportleftfront;
ModelRenderer supportrightfront;
ModelRenderer supportleft1;
ModelRenderer supportleft2;
ModelRenderer supportleft3;
ModelRenderer supportleft4;
ModelRenderer supportleft5;
public ToolModel() {
textureWidth = 64;
@ -502,4 +502,4 @@ public class ToolModel extends ModelBase {
setPose(0.5f, -1, 0.5f, -1, 0.5f, -1);
this.boltSize = 0;
}
}
}

View file

@ -4,7 +4,6 @@ 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;
@ -31,7 +30,7 @@ import org.lwjgl.opengl.GL12;
* @author MachineMuse
*/
public class ToolRenderer extends MuseRender implements IItemRenderer {
public final ToolModel model = new ToolModel();
public ToolModel model = new ToolModel();
/**
* Forge checks this to see if our custom renderer will handle a certain type of rendering.
@ -59,9 +58,9 @@ public class ToolRenderer extends MuseRender implements IItemRenderer {
public void renderItem(ItemRenderType type, ItemStack itemStack, Object... data) {
boolean drawIcon = false;
ItemPowerFist item = (ItemPowerFist) itemStack.getItem();
Colour colour = ((IModularItemBase) item).getColorFromItemStack(itemStack);
Colour glow = ((IModularItemBase) item).getColorFromItemStack(itemStack);
Colour colour = item.getColorFromItemStack(itemStack);
Colour glow = item.getColorFromItemStack(itemStack);
switch (type) {
case ENTITY:
RenderBlocks renderEntity = (RenderBlocks) data[0];
@ -72,7 +71,7 @@ public class ToolRenderer extends MuseRender implements IItemRenderer {
break;
case INVENTORY:
RenderBlocks renderInventory = (RenderBlocks) data[0];
MuseIconUtils.drawIconAt(0, 0, MPSItems.INSTANCE.powerTool.getIconIndex(itemStack), colour);
MuseIconUtils.drawIconAt(0, 0, MPSItems.getInstance().powerTool.getIconIndex(itemStack), colour);
break;
case EQUIPPED:
RenderBlocks renderEquipped = (RenderBlocks) data[0];
@ -124,8 +123,7 @@ public class ToolRenderer extends MuseRender implements IItemRenderer {
}
@Override
public void doRender(Entity var1, double var2, double var4, double var6, float var8, float var9) {
}
public void doRender(Entity var1, double var2, double var4, double var6, float var8, float var9) {}
public void renderFirstPersonArm(EntityClientPlayerMP entityclientplayermp, float par1) {
Minecraft mc = Minecraft.getMinecraft();
@ -158,4 +156,4 @@ public class ToolRenderer extends MuseRender implements IItemRenderer {
renderplayer.renderFirstPersonArm(mc.thePlayer);
GL11.glPopMatrix();
}
}
}

View file

@ -122,7 +122,7 @@ public class VanillaArmorModel extends ModelBiped implements IArmorModel {
aimedBow = true;
}
}
} catch (Exception e) {
} catch (Exception ignored) {
}
bipedHead.isHidden = false;

View file

@ -6,7 +6,7 @@ import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import net.machinemuse.api.IPowerModule;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.IModularItem;
import net.machinemuse.numina.basemod.Numina;
import net.machinemuse.numina.general.MuseLogger;
import net.machinemuse.powersuits.common.proxy.CommonProxy;
@ -228,23 +228,23 @@ public class Config {
*/
public static void loadPowerModules() {
List<IModularItem> ARMORONLY = Arrays.asList(
(IModularItem)MPSItems.INSTANCE.powerArmorHead,
(IModularItem)MPSItems.INSTANCE.powerArmorTorso,
(IModularItem)MPSItems.INSTANCE.powerArmorLegs,
(IModularItem)MPSItems.INSTANCE.powerArmorFeet);
(IModularItem)MPSItems.getInstance().powerArmorHead,
(IModularItem)MPSItems.getInstance().powerArmorTorso,
(IModularItem)MPSItems.getInstance().powerArmorLegs,
(IModularItem)MPSItems.getInstance().powerArmorFeet);
List<IModularItem> ALLITEMS = Arrays.asList(
(IModularItem)MPSItems.INSTANCE.powerArmorHead,
(IModularItem)MPSItems.INSTANCE.powerArmorTorso,
(IModularItem)MPSItems.INSTANCE.powerArmorLegs,
(IModularItem)MPSItems.INSTANCE.powerArmorFeet,
(IModularItem)MPSItems.INSTANCE.powerTool);
(IModularItem)MPSItems.getInstance().powerArmorHead,
(IModularItem)MPSItems.getInstance().powerArmorTorso,
(IModularItem)MPSItems.getInstance().powerArmorLegs,
(IModularItem)MPSItems.getInstance().powerArmorFeet,
(IModularItem)MPSItems.getInstance().powerTool);
List<IModularItem> HEADONLY = Collections.singletonList((IModularItem)MPSItems.INSTANCE.powerArmorHead);
List<IModularItem> TORSOONLY = Collections.singletonList((IModularItem)MPSItems.INSTANCE.powerArmorTorso);
List<IModularItem> LEGSONLY = Collections.singletonList((IModularItem)MPSItems.INSTANCE.powerArmorLegs);
List<IModularItem> FEETONLY = Collections.singletonList((IModularItem)MPSItems.INSTANCE.powerArmorFeet);
List<IModularItem> TOOLONLY = Collections.singletonList((IModularItem)MPSItems.INSTANCE.powerTool);
List<IModularItem> HEADONLY = Collections.singletonList((IModularItem)MPSItems.getInstance().powerArmorHead);
List<IModularItem> TORSOONLY = Collections.singletonList((IModularItem)MPSItems.getInstance().powerArmorTorso);
List<IModularItem> LEGSONLY = Collections.singletonList((IModularItem)MPSItems.getInstance().powerArmorLegs);
List<IModularItem> FEETONLY = Collections.singletonList((IModularItem)MPSItems.getInstance().powerArmorFeet);
List<IModularItem> TOOLONLY = Collections.singletonList((IModularItem)MPSItems.getInstance().powerTool);
addModule(new BasicPlatingModule(ARMORONLY));
addModule(new DiamondPlatingModule(ARMORONLY));

View file

@ -9,4 +9,4 @@ public class InstallCost {
public String modId;
public Integer itemMetadata;
public Integer itemQuantity;
}
}

View file

@ -13,6 +13,6 @@ public class MPSCreativeTab extends CreativeTabs {
@Override
public Item getTabIconItem() {
return MPSItems.INSTANCE.powerArmorHead;
return MPSItems.getInstance().powerArmorHead;
}
}

View file

@ -11,6 +11,11 @@ import net.machinemuse.powersuits.item.*;
*/
public final class MPSItems {
private static MPSItems ourInstance = new MPSItems();
public static MPSItems getInstance() {
return ourInstance;
}
public final ItemPowerArmorHelmet powerArmorHead;
public final ItemPowerArmorChestplate powerArmorTorso;
public final ItemPowerArmorLeggings powerArmorLegs;
@ -20,8 +25,6 @@ public final class MPSItems {
public final BlockLuxCapacitor luxCapacitor;
public final ItemComponent components;
public static MPSItems INSTANCE = new MPSItems();
private MPSItems() {
this.powerArmorHead = new ItemPowerArmorHelmet();
GameRegistry.registerItem(this.powerArmorHead, this.powerArmorHead.getUnlocalizedName());

View file

@ -2,8 +2,8 @@ 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.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.numina.general.MuseLogger;
import net.machinemuse.powersuits.powermodule.armor.ApiaristArmorModule;
import net.machinemuse.powersuits.powermodule.armor.HazmatModule;
@ -120,37 +120,37 @@ public class ModCompatibility {
// CoFH Lib - CoFHLib is included in CoFHCore
if (isCOFHLibLoaded()|| isCOFHCoreLoaded()) {
ModuleManager.addModule(new OmniWrenchModule(Collections.singletonList((IModularItem) MPSItems.INSTANCE.powerTool)));
ModuleManager.addModule(new OmniWrenchModule(Collections.singletonList((IModularItem) MPSItems.getInstance().powerTool)));
}
// Thaumcraft
if (isThaumCraftLoaded() && enableThaumGogglesModule()) {
ModuleManager.addModule(new ThaumGogglesModule(Collections.singletonList((IModularItem) MPSItems.INSTANCE.powerArmorHead)));
ModuleManager.addModule(new ThaumGogglesModule(Collections.singletonList((IModularItem) MPSItems.getInstance().powerArmorHead)));
}
//IPowerModule module = new MultimeterModule(Collections.singletonList((IModularItem) MPSItems.powerTool()));
// Hazmat
if (isIndustrialCraftLoaded()) {
ModuleManager.addModule(new HazmatModule(Arrays.<IModularItem>asList(MPSItems.INSTANCE.powerArmorHead, MPSItems.INSTANCE.powerArmorTorso, MPSItems.INSTANCE.powerArmorLegs, MPSItems.INSTANCE.powerArmorFeet)));
ModuleManager.addModule(new HazmatModule(Arrays.<IModularItem>asList(MPSItems.getInstance().powerArmorHead, MPSItems.getInstance().powerArmorTorso, MPSItems.getInstance().powerArmorLegs, MPSItems.getInstance().powerArmorFeet)));
}
// Galacticraft
if (isGalacticraftLoaded()) {
ModuleManager.addModule(new AirtightSealModule(Collections.singletonList((IModularItem) MPSItems.INSTANCE.powerArmorHead)));
ModuleManager.addModule(new AirtightSealModule(Collections.singletonList((IModularItem) MPSItems.getInstance().powerArmorHead)));
}
// Forestry
if (isForestryLoaded()) {
ModuleManager.addModule(new GrafterModule(Collections.singletonList((IModularItem) MPSItems.INSTANCE.powerTool)));
ModuleManager.addModule(new ScoopModule(Collections.singletonList((IModularItem) MPSItems.INSTANCE.powerTool)));
ModuleManager.addModule(new ApiaristArmorModule(Arrays.<IModularItem>asList(MPSItems.INSTANCE.powerArmorHead, MPSItems.INSTANCE.powerArmorTorso, MPSItems.INSTANCE.powerArmorLegs, MPSItems.INSTANCE.powerArmorFeet)));
ModuleManager.addModule(new GrafterModule(Collections.singletonList((IModularItem) MPSItems.getInstance().powerTool)));
ModuleManager.addModule(new ScoopModule(Collections.singletonList((IModularItem) MPSItems.getInstance().powerTool)));
ModuleManager.addModule(new ApiaristArmorModule(Arrays.<IModularItem>asList(MPSItems.getInstance().powerArmorHead, MPSItems.getInstance().powerArmorTorso, MPSItems.getInstance().powerArmorLegs, MPSItems.getInstance().powerArmorFeet)));
}
// Chisel
if(isChiselLoaded()) {
try {
ModuleManager.addModule(new ChiselModule(Collections.singletonList((IModularItem) MPSItems.INSTANCE.powerTool)));
ModuleManager.addModule(new ChiselModule(Collections.singletonList((IModularItem) MPSItems.getInstance().powerTool)));
} catch(Exception e) {
MuseLogger.logException("Couldn't add Chisel module", e);
}
@ -158,21 +158,21 @@ public class ModCompatibility {
// Applied Energistics
if (isAppengLoaded()) {
ModuleManager.addModule(new AppEngWirelessModule(Collections.singletonList((IModularItem) MPSItems.INSTANCE.powerTool)));
ModuleManager.addModule(new AppEngWirelessModule(Collections.singletonList((IModularItem) MPSItems.getInstance().powerTool)));
// Extra Cells 2
if (isExtraCellsLoaded())
ModuleManager.addModule(new AppEngWirelessFluidModule(Collections.singletonList((IModularItem) MPSItems.INSTANCE.powerTool)));
ModuleManager.addModule(new AppEngWirelessFluidModule(Collections.singletonList((IModularItem) MPSItems.getInstance().powerTool)));
}
// Multi-Mod Compatible OmniProbe
if (isEnderIOLoaded() || isMFRLoaded() || isRailcraftLoaded()) {
ModuleManager.addModule(new OmniProbeModule(Collections.singletonList((IModularItem) MPSItems.INSTANCE.powerTool)));
ModuleManager.addModule(new OmniProbeModule(Collections.singletonList((IModularItem) MPSItems.getInstance().powerTool)));
}
// Compact Machines Personal Shrinking Device
if (isCompactMachinesLoaded()) {
ModuleManager.addModule(new PersonalShrinkingModule(Collections.singletonList((IModularItem) MPSItems.INSTANCE.powerTool)));
ModuleManager.addModule(new PersonalShrinkingModule(Collections.singletonList((IModularItem) MPSItems.getInstance().powerTool)));
}
}
}

View file

@ -52,7 +52,7 @@ public class ClientProxy implements CommonProxy {
*/
@Override
public void registerRenderers() {
MinecraftForgeClient.registerItemRenderer(MPSItems.INSTANCE.powerTool, new ToolRenderer());
MinecraftForgeClient.registerItemRenderer(MPSItems.getInstance().powerTool, new ToolRenderer());
int tinkTableRenderID = RenderingRegistry.getNextAvailableRenderId();
TinkerTableRenderer tinkTableRenderer = new TinkerTableRenderer(tinkTableRenderID);
BlockTinkerTable.setRenderType(tinkTableRenderID);
@ -60,7 +60,7 @@ public class ClientProxy implements CommonProxy {
RenderingRegistry.registerBlockHandler(tinkTableRenderer);
int luxCapacitorRenderID = RenderingRegistry.getNextAvailableRenderId();
RenderLuxCapacitorTESR luxCapacitorRenderer = new RenderLuxCapacitorTESR(luxCapacitorRenderID);
MPSItems.INSTANCE.luxCapacitor.setRenderType(luxCapacitorRenderID);
MPSItems.getInstance().luxCapacitor.setRenderType(luxCapacitorRenderID);
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLuxCapacitor.class, luxCapacitorRenderer);
RenderingRegistry.registerBlockHandler(luxCapacitorRenderer);
RenderingRegistry.registerEntityRenderingHandler(EntityPlasmaBolt.class, new RenderPlasmaBolt());

View file

@ -5,24 +5,26 @@ import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.InputEvent;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.machinemuse.numina.item.ModeChangingItem;
import net.machinemuse.powersuits.common.ModularPowersuits;
import net.machinemuse.powersuits.item.IModeChangingModularItem;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.EntityClientPlayerMP;
import net.minecraft.client.settings.KeyBinding;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import org.lwjgl.input.Keyboard;
@SideOnly(Side.CLIENT)
public class KeybindKeyHandler {
public static final String mps = "Modular Powersuits";
public static final KeyBinding openKeybindGUI = new KeyBinding("Open MPS Keybind GUI", -1, mps);
public static final KeyBinding goDownKey = new KeyBinding("Go Down (MPS Flight Control)", Keyboard.KEY_Z, mps);
public static final KeyBinding cycleToolBackward = new KeyBinding("Cycle Tool Backward (MPS)", -1, mps);
public static final KeyBinding cycleToolForward = new KeyBinding("Cycle Tool Forward (MPS)", -1, mps);
public static final KeyBinding zoom = new KeyBinding("Zoom (MPS)", Keyboard.KEY_Y, mps);
public static final KeyBinding openCosmeticGUI = new KeyBinding("Cosmetic (MPS)", -1, mps);
public static final KeyBinding[] keybindArray = new KeyBinding[]{openKeybindGUI, goDownKey, cycleToolBackward, cycleToolForward, zoom, openCosmeticGUI};
public static KeyBinding openKeybindGUI = new KeyBinding("Open MPS Keybind GUI", -1, mps);
public static KeyBinding goDownKey = new KeyBinding("Go Down (MPS Flight Control)", Keyboard.KEY_Z, mps);
public static KeyBinding cycleToolBackward = new KeyBinding("Cycle Tool Backward (MPS)", -1, mps);
public static KeyBinding cycleToolForward = new KeyBinding("Cycle Tool Forward (MPS)", -1, mps);
public static KeyBinding zoom = new KeyBinding("Zoom (MPS)", Keyboard.KEY_Y, mps);
public static KeyBinding openCosmeticGUI = new KeyBinding("Cosmetic (MPS)", -1, mps);
public static KeyBinding[] keybindArray = new KeyBinding[]{openKeybindGUI, goDownKey, cycleToolBackward, cycleToolForward, zoom, openCosmeticGUI};
public static boolean[] repeats = new boolean[keybindArray.length];
public KeybindKeyHandler() {
@ -36,13 +38,16 @@ public class KeybindKeyHandler {
int key = Keyboard.getEventKey();
boolean pressed = Keyboard.getEventKeyState();
EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer;
ItemStack stack = player.getCurrentEquippedItem();
IModeChangingModularItem modeChangingModularItem = null;
if (stack != null && stack.getItem() instanceof IModeChangingModularItem)
modeChangingModularItem = (IModeChangingModularItem)stack.getItem();
// Only activate if there is a player to work with
if (player == null) {
return;
}
if (pressed) {
ModeChangingItem mci = new ModeChangingItem(player.inventory.getCurrentItem());
if (key == openKeybindGUI.getKeyCode()) {
World world = Minecraft.getMinecraft().theWorld;
if (Minecraft.getMinecraft().inGameHasFocus) {
@ -58,16 +63,13 @@ public class KeybindKeyHandler {
if (key == goDownKey.getKeyCode()) {
PlayerInputMap.getInputMapFor(player.getCommandSenderName()).downKey = true;
}
/* cycleToolBackward/cycleToolForward only seem to be used if actual keys are assinged instead of mousewheel */
if (key == cycleToolBackward.getKeyCode()) {
if (key == cycleToolBackward.getKeyCode() && modeChangingModularItem != null) {
Minecraft.getMinecraft().playerController.updateController();
mci.cycleMode(player.inventory.getStackInSlot(player.inventory.currentItem), player, 1);
((IModeChangingModularItem)modeChangingModularItem).cycleModeForItem(player.inventory.getStackInSlot(player.inventory.currentItem), player, 1);
}
if (key == cycleToolForward.getKeyCode()) {
Minecraft.getMinecraft().playerController.updateController();
mci.cycleMode(player.inventory.getStackInSlot(player.inventory.currentItem), player, -1);
((IModeChangingModularItem)modeChangingModularItem).cycleModeForItem(player.inventory.getStackInSlot(player.inventory.currentItem), player, -1);
}
} else {
if (Minecraft.getMinecraft().thePlayer != null && key == goDownKey.getKeyCode()) {
@ -75,4 +77,4 @@ public class KeybindKeyHandler {
}
}
}
}
}

View file

@ -19,7 +19,7 @@ import java.util.Set;
public class KeybindManager {
// only stores keybindings relevant to us!!
protected final Set<ClickableKeybinding> keybindings;
protected Set<ClickableKeybinding> keybindings;
protected static KeybindManager instance;
protected KeybindManager() {
@ -127,4 +127,4 @@ public class KeybindManager {
e.printStackTrace();
}
}
}
}

View file

@ -7,7 +7,7 @@ import java.util.HashMap;
import java.util.Map;
public class PlayerInputMap {
protected static final Map<String, PlayerInputMap> playerInputs = new HashMap();
protected static Map<String, PlayerInputMap> playerInputs = new HashMap();
public static PlayerInputMap getInputMapFor(String playerName) {
PlayerInputMap map = playerInputs.get(playerName);
@ -106,4 +106,4 @@ public class PlayerInputMap {
public void refresh() {
this.lastSentMap.setTo(this);
}
}
}

View file

@ -75,7 +75,7 @@ public class EntityLuxCapacitor extends EntityThrowable {
if (block == null || block.isAir(worldObj, x, y, z)) {
Block blockToStickTo = worldObj.getBlock(movingobjectposition.blockX, movingobjectposition.blockY, movingobjectposition.blockZ);
if (blockToStickTo.isNormalCube(worldObj, x, y, z)) {
worldObj.setBlock(x, y, z, MPSItems.INSTANCE.luxCapacitor, 0, 7);
worldObj.setBlock(x, y, z, MPSItems.getInstance().luxCapacitor, 0, 7);
worldObj.setTileEntity(x, y, z, new TileEntityLuxCapacitor(dir, red, green, blue));
} else {
for (ForgeDirection d : ForgeDirection.values()) {
@ -84,7 +84,7 @@ public class EntityLuxCapacitor extends EntityThrowable {
int zo = z + d.offsetZ;
blockToStickTo = worldObj.getBlock(xo, yo, zo);
if (blockToStickTo.isNormalCube(worldObj, x, y, z)) {
worldObj.setBlock(x, y, z, MPSItems.INSTANCE.luxCapacitor, 0, 7);
worldObj.setBlock(x, y, z, MPSItems.getInstance().luxCapacitor, 0, 7);
worldObj.setTileEntity(x, y, z, new TileEntityLuxCapacitor(d, red, green, blue));
}
}
@ -94,4 +94,4 @@ public class EntityLuxCapacitor extends EntityThrowable {
this.setDead();
}
}
}
}

View file

@ -152,4 +152,4 @@ public class EntityPlasmaBolt extends EntityThrowable {
this.setDead();
}
}
}
}

View file

@ -134,4 +134,4 @@ public class EntitySpinningBlade extends EntityThrowable {
}
}
}
}
}

View file

@ -8,4 +8,4 @@ import net.minecraft.tileentity.TileEntity;
public class TileEntityPortal extends TileEntity {
public TileEntityPortal() {
}
}
}

View file

@ -1,8 +1,8 @@
package net.machinemuse.powersuits.event;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import net.machinemuse.api.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.moduletrigger.IBlockBreakingModule;
import net.machinemuse.powersuits.item.ItemPowerFist;
import net.minecraft.block.Block;
@ -40,4 +40,4 @@ public class HarvestEventHandler {
}
}
}
}

View file

@ -20,10 +20,9 @@ import java.util.HashMap;
import java.util.Map;
public class MovementManager {
public static final Map<String, Double> playerJumpMultipliers = new HashMap();
public static Map<String, Double> playerJumpMultipliers = new HashMap();
public static double getPlayerJumpMultiplier(EntityPlayer player) {
if (playerJumpMultipliers.containsKey(player.getCommandSenderName())) {
return playerJumpMultipliers.get(player.getCommandSenderName());
} else {
@ -46,7 +45,7 @@ public class MovementManager {
double drain = ModuleManager.computeModularProperty(stack, JumpAssistModule.JUMP_ENERGY_CONSUMPTION);
double avail = ElectricItemUtils.getPlayerEnergy(player);
if ((FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) && NuminaConfig.useSounds()) {
Musique.playerSound(player, SoundDictionary.SOUND_JUMP_ASSIST, (float) (jumpAssist / 8.0), (float)1, false);
Musique.playerSound(player, SoundDictionary.SOUND_JUMP_ASSIST, (float) (jumpAssist / 8.0), 1f, false);
}
if (drain < avail) {
ElectricItemUtils.drainPlayerEnergy(player, drain);
@ -57,10 +56,8 @@ public class MovementManager {
} else {
player.getFoodStats().addExhaustion((float) (-0.2 * jumpCompensationRatio));
}
}
}
}
}
@ -73,7 +70,7 @@ public class MovementManager {
if (ModuleManager.itemHasActiveModule(boots, ShockAbsorberModule.MODULE_SHOCK_ABSORBER) && event.distance > 3) {
double distanceAbsorb = event.distance * ModuleManager.computeModularProperty(boots, ShockAbsorberModule.SHOCK_ABSORB_MULTIPLIER);
if ((FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) && NuminaConfig.useSounds()) {
Musique.playerSound(player, SoundDictionary.SOUND_GUI_INSTALL, (float) (distanceAbsorb), (float)1, false);
Musique.playerSound(player, SoundDictionary.SOUND_GUI_INSTALL, (float) (distanceAbsorb), 1f, false);
}
double drain = distanceAbsorb * ModuleManager.computeModularProperty(boots, ShockAbsorberModule.SHOCK_ABSORB_ENERGY_CONSUMPTION);
@ -96,4 +93,4 @@ public class MovementManager {
double ticks = velocity / DEFAULT_GRAVITY;
return -0.5 * DEFAULT_GRAVITY * ticks * ticks;
}
}
}

View file

@ -1,8 +1,6 @@
package net.machinemuse.powersuits.event;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.relauncher.Side;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.moduletrigger.IPlayerTickModule;
import net.machinemuse.general.sound.SoundDictionary;
@ -76,7 +74,8 @@ public class PlayerUpdateHandler {
player.extinguish();
}
double velsq2 = MuseMathUtils.sumsq(player.motionX, player.motionY, player.motionZ) - 0.5;
if ((FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) && NuminaConfig.useSounds()) {
if ((player.worldObj.isRemote) && NuminaConfig.useSounds()) {
if (player.isAirBorne && velsq2 > 0) {
Musique.playerSound(player, SoundDictionary.SOUND_GLIDER, (float)(velsq2 / 3), 1.0f, true);
}

View file

@ -1,32 +1,24 @@
//package net.machinemuse.powersuits.item;
//
//import net.machinemuse.numina.item.IModeChangingItem;
//import net.minecraft.entity.player.EntityPlayer;
//import net.minecraft.item.ItemStack;
//import net.minecraft.util.IIcon;
//
//import javax.annotation.Nullable;
//import java.util.List;
//
///**
// * Author: MachineMuse (Claire Semple)
// * Created: 4:52 PM, 9/5/13
// *
// * Ported to Java by lehjr on 11/1/16.
// */
//public interface IModeChangingModularItem extends IModeChangingItem {
// @Nullable
// IIcon getModeIcon(String mode, ItemStack stack, EntityPlayer player);
//
// List<String> getValidModes(ItemStack stack);
//
// String getActiveMode(ItemStack stack);
//
// void setActiveMode(ItemStack stack, String newMode) ;
//
// void cycleMode(ItemStack stack, EntityPlayer player, int dMode);
//
// String nextMode(ItemStack stack, EntityPlayer player);
//
// String prevMode(ItemStack stack, EntityPlayer player);
//}
package net.machinemuse.powersuits.item;
import net.machinemuse.numina.item.IModeChangingItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import java.util.List;
/**
* Author: MachineMuse (Claire Semple)
* Created: 4:52 PM, 9/5/13
*
* Ported to Java by lehjr on 12/12/16.
*/
public interface IModeChangingModularItem extends IModeChangingItem {
void cycleModeForItem(ItemStack itemStack, EntityPlayer player, int dMode);
IIcon getModeIcon(String mode, ItemStack itemStack, EntityPlayer player);
List<String> getValidModes(ItemStack itemStack);
String getActiveMode(ItemStack itemStack);
}

View file

@ -2,7 +2,7 @@ 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.IModularItem;
import net.machinemuse.api.electricity.IMuseElectricItem;
import net.machinemuse.numina.geometry.Colour;
import net.minecraft.entity.player.EntityPlayer;
@ -18,27 +18,39 @@ import java.util.List;
*/
public interface IModularItemBase extends IModularItem, IMuseElectricItem {
@SideOnly(Side.CLIENT)
int getColorFromItemStack(final ItemStack stack, final int p1);
int getColorFromItemStack(ItemStack stack, int par2);
Colour getGlowFromItemStack(final ItemStack stack);
Colour getGlowFromItemStack(ItemStack stack);
Colour getColorFromItemStack(final ItemStack stack);
Colour getColorFromItemStack(ItemStack stack);
@SideOnly(Side.CLIENT)
boolean requiresMultipleRenderPasses();
/**
* 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)
void addInformation(final ItemStack stack, final EntityPlayer player, final List<?> currentTipList, final boolean advancedToolTips);
void addInformation(ItemStack stack, EntityPlayer player, List<String> currentTipList, boolean advancedToolTips);
String formatInfo(final String string, final double value);
String formatInfo(String string, double value);
List<String> getLongInfo(final EntityPlayer player, final ItemStack stack);
List<String> getLongInfo(EntityPlayer player, ItemStack stack);
double getArmorDouble(final EntityPlayer player, final ItemStack stack);
double getArmorDouble(EntityPlayer player, ItemStack stack);
double getPlayerEnergy(final EntityPlayer player);
double getPlayerEnergy(EntityPlayer player);
void drainPlayerEnergy(final EntityPlayer player, final double drainEnergy);
void drainPlayerEnergy(EntityPlayer player, double drainEnergy);
void givePlayerEnergy(final EntityPlayer player, final double joulesToGive);
}
void givePlayerEnergy(EntityPlayer player, double joulesToGive);
}

View file

@ -58,10 +58,10 @@ public class ItemComponent extends Item {
this.setHasSubtypes(true);
this.setMaxDamage(0);
this.setCreativeTab(Config.getCreativeTab());
icons = new ArrayList<>();
iconNames = new ArrayList<>();
names = new ArrayList<>();
descriptions = new ArrayList<>();
icons = new ArrayList<IIcon>();
iconNames = new ArrayList<String>();
names = new ArrayList<String>();
descriptions = new ArrayList<String>();
}
public ItemStack addComponent(String oredictName, String description, String iconName) {

View file

@ -17,8 +17,7 @@ import java.util.List;
/**
* Ported to Java by lehjr on 10/26/16.
*/
public abstract class ItemElectricArmor extends ItemArmor implements IModularItemBase
{
public abstract class ItemElectricArmor extends ItemArmor implements IModularItemBase, IMuseElectricItem {
public ItemElectricArmor(final ItemArmor.ArmorMaterial material, final int index1, final int index2) {
super(material, index1, index2);
}
@ -97,7 +96,7 @@ public abstract class ItemElectricArmor extends ItemArmor implements IModularIte
}
public IMuseElectricItem getManager(final ItemStack itemStack) {
return MuseElectricItem.getInstance().getManager(itemStack);
return (IMuseElectricItem) MuseElectricItem.getInstance().getManager(itemStack);
}
public void chargeFromArmor(final ItemStack itemStack, final EntityLivingBase entity) {
@ -188,4 +187,4 @@ public abstract class ItemElectricArmor extends ItemArmor implements IModularIte
public AccessRestriction getPowerFlow(final ItemStack stack) {
return MuseElectricItem.getInstance().getPowerFlow(stack);
}
}
}

View file

@ -4,14 +4,18 @@ 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.IApiaristArmor;
import net.machinemuse.api.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.numina.geometry.Colour;
import net.machinemuse.powersuits.client.render.item.ArmorModelInstance;
import net.machinemuse.powersuits.client.render.item.IArmorModel;
import net.machinemuse.powersuits.common.Config;
import net.machinemuse.powersuits.powermodule.armor.ApiaristArmorModule;
import net.machinemuse.powersuits.powermodule.armor.HazmatModule;
import net.machinemuse.powersuits.powermodule.misc.InvisibilityModule;
import net.machinemuse.powersuits.powermodule.misc.TintModule;
import net.machinemuse.powersuits.powermodule.misc.TransparentArmorModule;
import net.machinemuse.utils.ElectricItemUtils;
import net.machinemuse.utils.MuseCommonStrings;
import net.machinemuse.utils.MuseHeatUtils;
@ -36,107 +40,72 @@ import java.util.UUID;
*
* Ported to Java by lehjr on 11/4/16.
*/
public abstract class ItemPowerArmor extends ItemElectricArmor implements ISpecialArmor, IArmorTraits {
public abstract class ItemPowerArmor extends ItemElectricArmor implements ISpecialArmor, IApiaristArmor {
public ItemPowerArmor(int renderIndex, int armorType) {
super(ItemArmor.ArmorMaterial.IRON, renderIndex, armorType);
this.setMaxStackSize(1);
this.setCreativeTab(Config.getCreativeTab());
setMaxStackSize(1);
setCreativeTab(Config.getCreativeTab());
}
public ISpecialArmor.ArmorProperties getProperties(EntityLivingBase player, ItemStack armor, DamageSource source, double damage, int slot) {
int priority = 0;
Label_0057: {
if (source.isFireDamage()) {
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;
}
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(ItemStack itemstack, Entity entity, int slot, int layer) {
@Override
public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type) {
return Config.BLANK_ARMOR_MODEL_PATH;
}
@Override
public int getColor(ItemStack stack) {
Colour c = this.getColorFromItemStack(stack);
return c.getInt();
return getColorFromItemStack(stack).getInt();
}
@SideOnly(Side.CLIENT)
public ModelBiped getArmorModel(EntityLivingBase entity, ItemStack itemstack, int armorSlot) {
@Override
public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, int armorSlot) {
ModelBiped model = ArmorModelInstance.getInstance();
((IArmorModel)model).setVisibleSection(armorSlot);
if (itemstack != null) {
if (entity instanceof EntityPlayer) {
ItemStack armorChest = ((EntityPlayer)entity).getCurrentArmor(2);
if (armorChest != null) {
if (armorChest.getItem() instanceof ItemPowerArmor)
if (ModuleManager.itemHasActiveModule(armorChest, InvisibilityModule.MODULE_ACTIVE_CAMOUFLAGE)) ((IArmorModel)model).setVisibleSection(99);
}
if (itemStack != null) {
if (entityLiving instanceof EntityPlayer) {
ItemStack chest = ((EntityPlayer) entityLiving).getCurrentArmor(2);
if (itemStack != null)
if (ModuleManager.itemHasActiveModule(chest, InvisibilityModule.MODULE_ACTIVE_CAMOUFLAGE))
((IArmorModel) model).setVisibleSection(99);
}
if (ModuleManager.itemHasActiveModule(itemstack, "Transparent Armor")) {
((IArmorModel)model).setVisibleSection(99);
}
((IArmorModel)model).setRenderSpec(MuseItemUtils.getMuseRenderTag(itemstack, armorSlot));
}
return (ModelBiped)model;
if (ModuleManager.itemHasActiveModule(itemStack, TransparentArmorModule.MODULE_TRANSPARENT_ARMOR)) {
((IArmorModel)model).setVisibleSection(99);
}
((IArmorModel)model).setRenderSpec(MuseItemUtils.getMuseRenderTag(itemStack, armorSlot));
return model;
}
public Multimap<?, ?> getAttributeModifiers(ItemStack stack) {
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;
@Override
public Multimap getAttributeModifiers(ItemStack stack) {
Multimap 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));
return parent;
}
@Override
public int getItemEnchantability() {
return 0;
}
/**
* Return whether the specified armor has a color.
*/
@Override
public boolean hasColor(ItemStack stack) {
NBTTagCompound itemTag = MuseItemUtils.getMuseItemTag(stack);
return ModuleManager.tagHasModule(itemTag, "Red Tint") || ModuleManager.tagHasModule(itemTag, "Green Tint") || ModuleManager.tagHasModule(itemTag, "Blue Tint");
return ModuleManager.tagHasModule(itemTag, TintModule.RED_TINT) || ModuleManager.tagHasModule(itemTag, TintModule.GREEN_TINT) || ModuleManager.tagHasModule(itemTag, TintModule.BLUE_TINT);
}
public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) {
return (int)this.getArmorDouble(player, armor);
}
public double getHeatResistance(EntityPlayer player, ItemStack stack) {
double getHeatResistance(EntityPlayer player, ItemStack stack) {
return MuseHeatUtils.getMaxHeat(stack);
}
@Override
public double getArmorDouble(EntityPlayer player, ItemStack stack) {
double totalArmor = 0.0;
double totalArmor = 0;
NBTTagCompound props = MuseItemUtils.getMuseItemTag(stack);
double energy = ElectricItemUtils.getPlayerEnergy(player);
double physArmor = ModuleManager.computeModularProperty(stack, MuseCommonStrings.ARMOR_VALUE_PHYSICAL);
@ -150,24 +119,54 @@ public abstract class ItemPowerArmor extends ItemElectricArmor implements ISpeci
return totalArmor;
}
/* ISpecialArmor ------------------------------------------------------------------------------*/
/**
* Inherited from ISpecialArmor, allows significant customization of damage
* calculations.
*/
@Override
public ArmorProperties getProperties(EntityLivingBase player, ItemStack armor, DamageSource source, double damage, int slot) {
int priority = 0;
if (source.isFireDamage() && !(source == MuseHeatUtils.overheatDamage)) {
return new ISpecialArmor.ArmorProperties(priority, 0.25, (int)(25 * damage));
}
if(ModuleManager.itemHasModule(armor, HazmatModule.MODULE_HAZMAT)) {
if(source.damageType.equals("electricity") || source.damageType.equals("radiation")) {
return new ISpecialArmor.ArmorProperties(priority, 0.25, (int)(25 * damage));
}
}
double armorDouble = (player instanceof EntityPlayer) ? getArmorDouble((EntityPlayer) player, armor) : 2.0;
double absorbRatio = 0.04 * armorDouble;
int absorbMax = (int)armorDouble * 75;
if (source.isUnblockable()) {
absorbMax = 0;
absorbRatio = 0;
}
return new ISpecialArmor.ArmorProperties(priority, absorbRatio, absorbMax);
}
/**
* Inherited from ISpecialArmor, allows us to customize the calculations for
* how much armor will display on the player's HUD.
*/
@Override
public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) {
return (int) getArmorDouble(player, armor);
}
/**
* Inherited from ISpecialArmor, allows us to customize how the armor
* handles being damaged.
*/
@Override
public void damageArmor(EntityLivingBase entity, ItemStack stack, DamageSource source, int damage, int slot) {
NBTTagCompound itemProperties = MuseItemUtils.getMuseItemTag(stack);
if (entity instanceof EntityPlayer) {
DamageSource overheatDamage = MuseHeatUtils.overheatDamage;
if (source == null) {
if (overheatDamage == null) {
return;
}
}
else if (source.equals(overheatDamage)) {
return;
}
if (source.isFireDamage()) {
EntityPlayer player = (EntityPlayer)entity;
if (source == MuseHeatUtils.overheatDamage) {
} else if (source.isFireDamage()) {
EntityPlayer player = (EntityPlayer) entity;
if (!source.equals(DamageSource.onFire) || MuseHeatUtils.getPlayerHeat(player) < MuseHeatUtils.getMaxHeat(player)) {
MuseHeatUtils.heatPlayer(player, damage);
}
@ -176,22 +175,33 @@ public abstract class ItemPowerArmor extends ItemElectricArmor implements ISpeci
double enerConsum = ModuleManager.computeModularProperty(stack, MuseCommonStrings.ARMOR_ENERGY_CONSUMPTION);
double drain = enerConsum * damage;
if (entity instanceof EntityPlayer) {
ElectricItemUtils.drainPlayerEnergy((EntityPlayer)entity, drain);
ElectricItemUtils.drainPlayerEnergy((EntityPlayer) entity, drain);
}
else {
this.drainEnergyFrom(stack, drain);
drainEnergyFrom(stack, drain);
}
}
}
}
/* IApiaristArmor ----------------------------------------------------------------------------- */
@Optional.Method(modid = "Forestry")
@Override
public boolean protectPlayer(EntityPlayer player, ItemStack armor, String cause, boolean doProtect) {
return ApiaristArmor.getInstance().protectPlayer(player, armor, cause, doProtect);
// if (ModuleManager.itemHasActiveModule(armor, ApiaristArmorModule.MODULE_APIARIST_ARMOR)) {
// ElectricItemUtils.drainPlayerEnergy(player, ModuleManager.computeModularProperty(armor, ApiaristArmorModule.APIARIST_ARMOR_ENERGY_CONSUMPTION));
// return true;
// }
return false;
}
@Optional.Method(modid = "Forestry")
@Override
public boolean protectEntity(EntityLivingBase player, ItemStack armor, String cause, boolean doProtect) {
return ApiaristArmor.getInstance().protectEntity(player, armor, cause, doProtect);
if (ModuleManager.itemHasActiveModule(armor, ApiaristArmorModule.MODULE_APIARIST_ARMOR)) {
ElectricItemUtils.drainPlayerEnergy((EntityPlayer) player, ModuleManager.computeModularProperty(armor, ApiaristArmorModule.APIARIST_ARMOR_ENERGY_CONSUMPTION));
return true;
}
return false;
}
}
}

View file

@ -12,21 +12,25 @@ import net.minecraft.item.ItemStack;
/**
* Ported to Java by lehjr on 10/26/16.
*/
@Optional.InterfaceList({ @Optional.Interface(iface = "ic2.api.item.IMetalArmor", modid = "IC2", striprefs = true) })
public class ItemPowerArmorBoots extends ItemPowerArmor implements IMetalArmor
{
@Optional.InterfaceList ({
@Optional.Interface (iface = "ic2.api.item.IMetalArmor", modid = "IC2", striprefs = true)
})
public class ItemPowerArmorBoots extends ItemPowerArmor implements IMetalArmor{
public final String iconpath = MuseRenderer.ICON_PREFIX + "armorfeet";
public ItemPowerArmorBoots() {
super(0, 3);
this.setUnlocalizedName("powerArmorBoots");
setUnlocalizedName("powerArmorBoots");
}
@SideOnly(Side.CLIENT)
public void registerIcons(final IIconRegister iconRegister) {
String iconpath = MuseRenderer.ICON_PREFIX + "armorfeet";
this.itemIcon = iconRegister.registerIcon(iconpath);
@Override
public void registerIcons(IIconRegister iconRegister) {
itemIcon = iconRegister.registerIcon(iconpath);
}
public boolean isMetalArmor(final ItemStack itemStack, final EntityPlayer entityPlayer) {
@Override
public boolean isMetalArmor(ItemStack itemStack, EntityPlayer entityPlayer) {
return true;
}
}
}

View file

@ -9,18 +9,16 @@ import net.minecraft.client.renderer.texture.IIconRegister;
* Ported to Java by lehjr on 10/26/16.
*/
public class ItemPowerArmorChestplate extends ItemPowerArmor {
final String iconpath = MuseRenderer.ICON_PREFIX + "armortorso";
public ItemPowerArmorChestplate() {
super(0, 1);
this.setUnlocalizedName("powerArmorChestplate");
}
public String iconpath() {
return MuseRenderer.ICON_PREFIX + "armortorso";
setUnlocalizedName("powerArmorChestplate");
}
@SideOnly(Side.CLIENT)
public void registerIcons(final IIconRegister iconRegister) {
this.itemIcon = iconRegister.registerIcon(this.iconpath());
@Override
public void registerIcons(IIconRegister iconRegister) {
itemIcon = iconRegister.registerIcon(iconpath);
}
}
}

View file

@ -21,44 +21,54 @@ import thaumcraft.api.nodes.IRevealer;
* Ported to Java by lehjr on 10/26/16.
*/
@Optional.InterfaceList({
@Optional.Interface(iface = "forestry.api.core.IArmorNaturalist", modid = "Forestry", striprefs = true),
@Optional.Interface(iface = "thaumcraft.api.IGoggles", modid = "Thaumcraft", striprefs = true),
@Optional.Interface(iface = "thaumcraft.api.nodes.IRevealer", modid = "Thaumcraft", striprefs = true),
@Optional.Interface(iface = "micdoodle8.mods.galacticraft.api.item.IBreathableArmor", modid = "GalacticraftCore", striprefs = true) })
public class ItemPowerArmorHelmet extends ItemPowerArmor implements IArmorNaturalist, IBreathableArmor, IGoggles, IRevealer
{
private final String iconpath;
@Optional.Interface (iface = "forestry.api.core.IArmorNaturalist", modid = "Forestry", striprefs = true),
@Optional.Interface (iface = "thaumcraft.api.IGoggles", modid = "Thaumcraft", striprefs = true),
@Optional.Interface (iface = "thaumcraft.api.nodes.IRevealer", modid = "Thaumcraft", striprefs = true),
@Optional.Interface (iface = "micdoodle8.mods.galacticraft.api.item.IBreathableArmor", modid = "GalacticraftCore", striprefs = true)
})
public class ItemPowerArmorHelmet extends ItemPowerArmor implements
IArmorNaturalist,
IBreathableArmor,
IGoggles,
IRevealer {
static final String iconpath = MuseRenderer.ICON_PREFIX + "armorhead";
public ItemPowerArmorHelmet() {
super(0, 0);
this.iconpath = MuseRenderer.ICON_PREFIX + "armorhead";
this.setUnlocalizedName("powerArmorHelmet");
setUnlocalizedName("powerArmorHelmet");
}
@SideOnly(Side.CLIENT)
public void registerIcons(final IIconRegister iconRegister) {
this.itemIcon = iconRegister.registerIcon(this.iconpath);
@Override
public void registerIcons(IIconRegister iconRegister) {
itemIcon = iconRegister.registerIcon(iconpath);
}
public boolean showIngamePopups(final ItemStack itemstack, final EntityLivingBase player) {
return ModuleManager.itemHasActiveModule(itemstack, ThaumGogglesModule.MODULE_THAUM_GOGGLES);
@Override
public boolean showIngamePopups(ItemStack itemStack, EntityLivingBase entityLivingBase) {
return ModuleManager.itemHasActiveModule(itemStack, ThaumGogglesModule.MODULE_THAUM_GOGGLES);
}
public boolean showNodes(final ItemStack itemstack, final EntityLivingBase player) {
return ModuleManager.itemHasActiveModule(itemstack, ThaumGogglesModule.MODULE_THAUM_GOGGLES);
@Override
public boolean showNodes(ItemStack itemStack, EntityLivingBase entityLivingBase) {
return ModuleManager.itemHasActiveModule(itemStack, ThaumGogglesModule.MODULE_THAUM_GOGGLES);
}
@Optional.Method(modid = "Forestry")
public boolean canSeePollination(final EntityPlayer player, final ItemStack helm, final boolean doSee) {
return ModuleManager.itemHasActiveModule(helm, ApiaristArmorModule.MODULE_APIARIST_ARMOR);
@Override
public boolean canSeePollination(EntityPlayer entityPlayer, ItemStack itemStack, boolean b) {
return ModuleManager.itemHasActiveModule(itemStack, ApiaristArmorModule.MODULE_APIARIST_ARMOR);
}
@Optional.Method(modid = "GalacticraftCore")
public boolean handleGearType(final IBreathableArmor.EnumGearType geartype) {
return geartype == EnumGearType.HELMET;
@Override
public boolean handleGearType(EnumGearType gearType) {
return gearType == EnumGearType.HELMET;
}
@Optional.Method(modid = "GalacticraftCore")
public boolean canBreathe(final ItemStack helm, final EntityPlayer player, final IBreathableArmor.EnumGearType geartype) {
return ModuleManager.itemHasActiveModule(helm, AirtightSealModule.AIRTIGHT_SEAL_MODULE);
@Override
public boolean canBreathe(ItemStack itemStack, EntityPlayer entityPlayer, EnumGearType enumGearType) {
return ModuleManager.itemHasActiveModule(itemStack, AirtightSealModule.AIRTIGHT_SEAL_MODULE);
}
}
}

View file

@ -9,15 +9,16 @@ import net.minecraft.client.renderer.texture.IIconRegister;
* Ported to Java by lehjr on 10/26/16.
*/
public class ItemPowerArmorLeggings extends ItemPowerArmor {
final String iconpath = MuseRenderer.ICON_PREFIX + "armorlegs";
public ItemPowerArmorLeggings() {
super(0, 2);
this.setUnlocalizedName("powerArmorLeggings");
setUnlocalizedName("powerArmorLeggings");
}
@SideOnly(Side.CLIENT)
public void registerIcons(final IIconRegister iconRegister) {
String iconpath = MuseRenderer.ICON_PREFIX + "armorlegs";
this.itemIcon = iconRegister.registerIcon(iconpath);
@Override
public void registerIcons(IIconRegister iconRegister) {
itemIcon = iconRegister.registerIcon(iconpath);
}
}
}

View file

@ -11,20 +11,21 @@ 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.IModularItem;
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;
import net.machinemuse.numina.item.IModeChangingItem;
import net.machinemuse.numina.item.ModeChangingItem;
import net.machinemuse.numina.item.NuminaItemUtils;
import net.machinemuse.numina.network.MusePacketModeChangeRequest;
import net.machinemuse.numina.network.PacketSender;
import net.machinemuse.powersuits.common.Config;
import net.machinemuse.powersuits.powermodule.tool.GrafterModule;
import net.machinemuse.powersuits.powermodule.tool.OmniWrenchModule;
import net.machinemuse.powersuits.powermodule.weapon.MeleeAssistModule;
import net.machinemuse.utils.ElectricItemUtils;
import net.machinemuse.utils.MuseCommonStrings;
import net.machinemuse.utils.MuseHeatUtils;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.texture.IIconRegister;
@ -33,7 +34,6 @@ import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityMinecart;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumAction;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.DamageSource;
import net.minecraft.util.IIcon;
@ -45,7 +45,6 @@ import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.List;
/**
* Describes the modular power tool.
*
@ -53,7 +52,6 @@ import java.util.List;
*
* Ported to Java by lehjr on 10/26/16.
*/
@Optional.InterfaceList({
@Optional.Interface(iface = "mekanism.api.IMekWrench", modid = "Mekanism", striprefs = true),
@Optional.Interface(iface = "crazypants.enderio.api.tool.ITool", modid = "EnderIO", striprefs = true),
@ -65,55 +63,58 @@ 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 MPSItemElectricTool
implements
public class ItemPowerFist extends MPSItemElectricTool implements
IModularItem,
IToolGrafter,
IToolHammer,
IMFRHammer,
IToolCrowbar,
IAEWrench,
IToolWrench,
IScrewdriver,
com.bluepowermod.api.misc.IScrewdriver,
mrtjp.projectred.api.IScrewdriver,
ITool, IMekWrench,
IModularItem,
IModeChangingItem
IModeChangingModularItem
{
private static ModeChangingItem modeChangingItem;
public final String iconpath = MuseIcon.ICON_PREFIX + "handitem";
public ItemPowerFist() {
super(0.0f, Item.ToolMaterial.EMERALD);
this.setMaxStackSize(1);
this.setMaxDamage(0);
this.setCreativeTab(Config.getCreativeTab());
this.setUnlocalizedName("powerFist");
super(0, ToolMaterial.EMERALD);
setMaxStackSize(1);
setMaxDamage(0);
setCreativeTab(Config.getCreativeTab());
setUnlocalizedName("powerFist");
}
private ModeChangingItem getModeChangingItem() {
if (this.modeChangingItem == null)
this.modeChangingItem = new ModeChangingItem(this);
return this.modeChangingItem;
}
// FIXME: CHECKME!! these 2 were not overridden in 1.7.10 but should have been according to the comments.
/**
* Returns the strength of the stack against a given block. 1.0F base,
* (Quality+1)*2 if correct blocktype, 1.5F if sword
* this is actually "getStrVsBlock"
*/
public float getStrVsBlock( ItemStack stack, Block block) {
return this.getStrVsBlock(stack, block, 0);
@Override
public float func_150893_a( ItemStack stack, Block block) {
return 1.0F;
}
/**
* FORGE: Overridden to allow custom tool effectiveness
*
* This is actually getStrVsBlock
*/
public float getStrVsBlock(ItemStack stack, Block block, int meta) {
return 1.0f;
@Override
public float getDigSpeed(ItemStack stack, Block block, int meta) {
return this.func_150893_a(stack, block);
}
// END CHECKME!! ===================================================================
@SideOnly(Side.CLIENT)
@Override
public void registerIcons(IIconRegister iconRegister) {
String iconpath = MuseIcon.ICON_PREFIX + "handitem";
this.itemIcon = iconRegister.registerIcon(iconpath);
itemIcon = iconRegister.registerIcon(iconpath);
}
/**
@ -134,7 +135,7 @@ public class ItemPowerFist extends MPSItemElectricTool
double damage = ModuleManager.computeModularProperty(stack, MeleeAssistModule.PUNCH_DAMAGE);
double knockback = ModuleManager.computeModularProperty(stack, MeleeAssistModule.PUNCH_KNOCKBACK);
DamageSource damageSource = DamageSource.causePlayerDamage(player);
if (entityBeingHit.attackEntityFrom(damageSource, (float)(int)damage)) {
if (entityBeingHit.attackEntityFrom(damageSource, (int)damage)) {
Vec3 lookVec = player.getLookVec();
entityBeingHit.addVelocity(lookVec.xCoord * knockback, Math.abs(lookVec.yCoord + 0.2f) * knockback, lookVec.zCoord * knockback);
}
@ -167,16 +168,17 @@ public class ItemPowerFist extends MPSItemElectricTool
* 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
* @param entity The entity being attacked (or the attacking mob, if it's a mob
* - vanilla bug?)
* @param itemStack The itemstack
* @return the damage
*/
public float getDamageVsEntity(Entity par1Entity, ItemStack itemStack) {
return (float)ModuleManager.computeModularProperty(itemStack, MeleeAssistModule.PUNCH_DAMAGE);
public float getDamageVsEntity(Entity entity, ItemStack itemStack){
return (float) ModuleManager.computeModularProperty(itemStack, MeleeAssistModule.PUNCH_DAMAGE);
}
@SideOnly(Side.CLIENT)
@Override
public boolean isFull3D() {
return true;
}
@ -185,6 +187,7 @@ public class ItemPowerFist extends MPSItemElectricTool
* Return the enchantability factor of the item. In this case, 0. Might add
* an enchantability module later :P
*/
@Override
public int getItemEnchantability() {
return 0;
}
@ -201,7 +204,7 @@ public class ItemPowerFist extends MPSItemElectricTool
* Return whether this item is repairable in an anvil.
*/
@Override
public boolean getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack) {
public boolean getIsRepairable(ItemStack par1stack, ItemStack par2stack) {
return false;
}
@ -209,7 +212,7 @@ public class ItemPowerFist extends MPSItemElectricTool
* How long it takes to use or consume an item
*/
@Override
public int getMaxItemUseDuration(ItemStack par1ItemStack) {
public int getMaxItemUseDuration(ItemStack p_77626_1_) {
return 72000;
}
@ -218,19 +221,11 @@ public class ItemPowerFist extends MPSItemElectricTool
*/
@Override
public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer player) {
// Only one right click module should be active at a time.
IPowerModule iPowerModulemodule = ModuleManager.getModule(getActiveMode(itemStack));
if (iPowerModulemodule instanceof IRightClickModule) {
((IRightClickModule) iPowerModulemodule).onRightClick(player, world, itemStack);
for (IRightClickModule module : ModuleManager.getRightClickModules()) {
if (module.isValidForItem(itemStack) && ModuleManager.itemHasActiveModule(itemStack, module.getDataName())) {
module.onRightClick(player, world, itemStack);
}
}
/* Trying to simplify with new code above */
// for (IRightClickModule module : ModuleManager.getRightClickModules()) {
// if (module.isValidForItem(itemStack) && ModuleManager.itemHasActiveModule(itemStack, module.getDataName())) {
// module.onRightClick(player, world, itemStack);
// return itemStack;
// }
// }
return itemStack;
}
@ -248,7 +243,7 @@ public class ItemPowerFist extends MPSItemElectricTool
*/
@Override
public void onPlayerStoppedUsing(ItemStack itemStack, World world, EntityPlayer player, int par4) {
String mode = this.getActiveMode(itemStack);
String mode = getActiveMode(itemStack, player);
IPowerModule module = ModuleManager.getModule(mode);
if (module != null)
((IRightClickModule)module).onPlayerStoppedUsing(itemStack, world, player, par4);
@ -259,35 +254,22 @@ public class ItemPowerFist extends MPSItemElectricTool
}
@Override
public boolean onItemUseFirst( ItemStack itemStack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) {
String mode = this.getActiveMode(itemStack);
public boolean onItemUseFirst(ItemStack itemStack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) {
String mode = getActiveMode(itemStack, player);
IPowerModule module = ModuleManager.getModule(mode);
return module instanceof IRightClickModule && ((IRightClickModule)module).onItemUseFirst(itemStack, player, world, x, y, z, side, hitX, hitY, hitZ);
}
@Override
public boolean onItemUse( ItemStack itemStack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) {
String mode = this.getActiveMode(itemStack);
IPowerModule module2;
IPowerModule module = module2 = ModuleManager.getModule(mode);
if (module2 instanceof IRightClickModule) {
return ((IRightClickModule)module2).onItemUse(itemStack, player, world, x, y, z, side, hitX, hitY, hitZ);
}
public boolean onItemUse(ItemStack itemStack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) {
String mode = getActiveMode(itemStack, player);
IPowerModule module = ModuleManager.getModule(mode);
if (module instanceof IRightClickModule)
return ((IRightClickModule) module).onItemUse(itemStack, player, world, x, y, z, side, hitX, hitY, hitZ);
return false;
}
@Optional.Method(modid = "Forestry")
public float getSaplingModifier(ItemStack stack, World world, EntityPlayer player, int x, int y, int z) {
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));
return 100.0f;
}
return 0.0f;
}
public boolean canHarvestBlock(ItemStack stack, Block block, int meta, EntityPlayer player) {
Object o = new Object();
if (block.getMaterial().isToolNotRequired())
return true;
@ -299,6 +281,17 @@ public class ItemPowerFist extends MPSItemElectricTool
return false;
}
@Optional.Method(modid = "Forestry")
@Override
public float getSaplingModifier(ItemStack itemStack, World world, EntityPlayer entityPlayer, int x, int y, int z) {
if (ModuleManager.itemHasActiveModule(itemStack, GrafterModule.MODULE_GRAFTER)) {
ElectricItemUtils.drainPlayerEnergy(entityPlayer, ModuleManager.computeModularProperty(itemStack, GrafterModule.GRAFTER_ENERGY_CONSUMPTION));
MuseHeatUtils.heatPlayer(entityPlayer, ModuleManager.computeModularProperty(itemStack, GrafterModule.GRAFTER_HEAT_GENERATION));
return 100.0f;
}
return 0.0f;
}
/* TE Crescent Hammer */
@Override
public boolean isUsable(ItemStack itemStack, EntityLivingBase entityLivingBase, int i, int i1, int i2) {
@ -307,169 +300,181 @@ public class ItemPowerFist extends MPSItemElectricTool
/* TE Crescent Hammer */
@Override
public void toolUsed(ItemStack itemStack, EntityLivingBase entityLivingBase, int i, int i1, int i2) {
public void toolUsed(ItemStack itemStack, EntityLivingBase entityLivingBase, int i, int i1, int i2) {}
/* Railcraft Crowbar */
@Override
public boolean canWhack(EntityPlayer entityPlayer, ItemStack itemStack, int i, int i1, int i2) {
return getActiveMode(itemStack, entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);
}
/* Railcraft Crowbar */
@Override
public boolean canWhack(EntityPlayer player, ItemStack itemStack, int i, int i1, int i2) {
return this.getActiveMode(itemStack).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);
public boolean canLink(EntityPlayer entityPlayer, ItemStack itemStack, EntityMinecart entityMinecart) {
return getActiveMode(itemStack, entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);
}
/* Railcraft Crowbar */
@Override
public boolean canLink(EntityPlayer player, ItemStack itemStack, EntityMinecart entityMinecart) {
return this.getActiveMode(itemStack).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);
public boolean canBoost(EntityPlayer entityPlayer, ItemStack itemStack, EntityMinecart entityMinecart) {
return getActiveMode(itemStack, entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);
}
/* Railcraft Crowbar */
@Override
public boolean canBoost(EntityPlayer player, ItemStack itemStack, EntityMinecart entityMinecart) {
return this.getActiveMode(itemStack).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);
}
public void onLink(EntityPlayer entityPlayer, ItemStack itemStack, EntityMinecart entityMinecart) {}
/* Railcraft Crowbar */
@Override
public void onLink(EntityPlayer player, ItemStack itemStack, EntityMinecart entityMinecart) {
}
public void onWhack(EntityPlayer entityPlayer, ItemStack itemStack, int i, int i1, int i2) {}
/* Railcraft Crowbar */
@Override
public void onWhack(EntityPlayer player, ItemStack itemStack, int i, int i1, int i2) {
}
/* Railcraft Crowbar */
@Override
public void onBoost(EntityPlayer player, ItemStack itemStack, EntityMinecart entityMinecart) {
}
public void onBoost(EntityPlayer entityPlayer, ItemStack itemStack, EntityMinecart entityMinecart) {}
/* AE wrench */
@Override
public boolean canWrench(ItemStack itemStack, EntityPlayer player, int i, int i1, int i2) {
return this.getActiveMode(itemStack).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);
public boolean canWrench(ItemStack itemStack, EntityPlayer entityPlayer, int i, int i1, int i2) {
return getActiveMode(itemStack, entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);
}
/* Buildcraft Wrench */
@Override
public void wrenchUsed(EntityPlayer player, int i, int i1, int i2) {
}
public void wrenchUsed(EntityPlayer entityPlayer, int i, int i1, int i2) {}
/* Buildcraft Wrench */
@Override
public boolean canWrench(EntityPlayer player, int i, int i1, int i2) {
return this.getActiveMode(player.getHeldItem()).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);
public boolean canWrench(EntityPlayer entityPlayer, int i, int i1, int i2) {
return getActiveMode(entityPlayer.getHeldItem(), entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);
}
/* Bluepower Screwdriver */
@Override
public boolean damage(ItemStack itemStack, int i, EntityPlayer entityPlayer, boolean b) {
return this.getActiveMode(itemStack).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);
return getActiveMode(itemStack, entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);
}
/* ProjectRed Screwdriver */
@Override
public void damageScrewdriver(EntityPlayer entityPlayer, ItemStack itemStack) {
}
public void damageScrewdriver(EntityPlayer entityPlayer, ItemStack itemStack) {}
/* ProjectRed Screwdriver */
@Override
public boolean canUse(EntityPlayer entityPlayer, ItemStack itemStack) {
return this.getActiveMode(itemStack).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);
return getActiveMode(itemStack, entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);
}
/* EnderIO Tool */
@Override
public void used(ItemStack itemStack, EntityPlayer entityPlayer, int i, int i1, int i2) {
}
public void used(ItemStack itemStack, EntityPlayer entityPlayer, int i, int i1, int i2) {}
/* EnderIO Tool */
@Override
public boolean canUse(ItemStack itemStack, EntityPlayer entityPlayer, int i, int i1, int i2) {
return this.getActiveMode(itemStack).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);
return getActiveMode(itemStack, entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);
}
/* EnderIO Tool */
@Override
public boolean shouldHideFacades(ItemStack itemStack, EntityPlayer entityPlayer) {
return this.getActiveMode(itemStack).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);
return getActiveMode(itemStack, entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);
}
/* Mekanism Wrench */
@Override
public boolean canUseWrench(EntityPlayer entityPlayer, int i, int i1, int i2) {
return this.getActiveMode(entityPlayer.getHeldItem()).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);
return getActiveMode(entityPlayer.getHeldItem(), entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);
}
/* IModeChangingItem -------------------------------------------------------------------------- */
@Nullable
@Override
public IIcon getModeIcon(String mode, ItemStack stack, EntityPlayer player) {
IPowerModule module = ModuleManager.getModule(mode);
if (module != null)
return module.getIcon(stack);
public void setActiveMode(ItemStack itemStack, String newMode) {
NuminaItemUtils.getTagCompound(itemStack).setString("mode", newMode);
}
@Override
public String getActiveMode(ItemStack itemStack, EntityPlayer player) {
return getActiveMode(itemStack);
}
@Override
public void cycleMode(ItemStack itemStack, EntityPlayer player, int dMode) {
List<String> modes = getValidModes(itemStack, player);
if (!modes.isEmpty()) {
int newindex = clampMode(modes.indexOf(getActiveMode(itemStack, player)) + dMode, modes.size());
String newmode = modes.get(newindex);
setActiveMode(itemStack, newmode);
PacketSender.sendToServer(new MusePacketModeChangeRequest(player,newmode, player.inventory.currentItem));
}
}
@Override
public String nextMode(ItemStack itemStack, EntityPlayer player) {
List<String> modes = getValidModes(itemStack, player);
if (!modes.isEmpty()) {
int newindex = clampMode(modes.indexOf(getActiveMode(itemStack, player)) + 1, modes.size());
return modes.get(newindex);
} else {
return "";
}
}
@Override
public String prevMode(ItemStack itemStack, EntityPlayer player) {
List<String> modes = getValidModes(itemStack, player);
if (!modes.isEmpty()) {
int newindex = clampMode(modes.indexOf(getActiveMode(itemStack, player)) - 1, modes.size());
return modes.get(newindex);
} else {
return "";
}
}
@Override
public List<String> getValidModes(ItemStack itemStack, EntityPlayer player) {
return getValidModes(itemStack);
}
private int clampMode(int selection, int modesSize) {
if (selection > 0) {
return selection % modesSize;
} else {
return (selection + modesSize * (-selection)) % modesSize;
}
}
/* IModeChangingModularItem ------------------------------------------------------------------- */
@Override
public void cycleModeForItem(ItemStack itemStack, EntityPlayer player, int dMode) {
if (itemStack != null) {
this.cycleMode(itemStack, player, dMode);
}
}
@Override
public IIcon getModeIcon(String mode, ItemStack itemStack, EntityPlayer player) {
if (!mode.isEmpty())
return ModuleManager.getModule(mode).getIcon(itemStack);
return null;
}
@Override
public List<String> getValidModes(ItemStack stack) {
List<String> modes = new ArrayList<>();
for (IRightClickModule module : ModuleManager.getRightClickModules()) {
if (module.isValidForItem(stack))
if (ModuleManager.itemHasModule(stack, module.getDataName()))
modes.add(module.getDataName());
public List<String> getValidModes(ItemStack itemStack) {
return ModuleManager.getValidModes(itemStack);
}
@Override
public String getActiveMode(ItemStack itemStack) {
String modeFromNBT = NuminaItemUtils.getTagCompound(itemStack).getString("mode");
if (!modeFromNBT.isEmpty()) {
return modeFromNBT;
} else {
List<String> validModes = getValidModes(itemStack);
if (!validModes.isEmpty()) {
return validModes.get(0);
} else {
return "";
}
}
return modes;
}
@Override
public String getActiveMode(ItemStack stack) {
return this.getModeChangingItem().getActiveMode(stack);
}
@Override
public void setActiveMode(ItemStack stack, String newMode) {
this.getModeChangingItem().setActiveMode(stack, newMode);
}
@Override
public void cycleMode(ItemStack stack, EntityPlayer player, int dMode) {
this.getModeChangingItem().cycleMode(stack, player, dMode);
}
@Override
public String nextMode(ItemStack stack, EntityPlayer player) {
return this.getModeChangingItem().nextMode(stack, player);
}
@Override
public String prevMode(ItemStack stack, EntityPlayer player) {
return this.getModeChangingItem().prevMode(stack, player);
}
/* IModularItem ------------------------------------------------------------------------------- */
@Override // FIXME: check to see if this is needed or not.
public List<String> getLongInfo(EntityPlayer player, ItemStack stack) {
List<String> info = new ArrayList<>();
info.add("Detailed Summary");
info.add(formatInfo("Armor", getArmorDouble(player, stack)));
info.add(formatInfo("Energy Storage", getCurrentEnergy(stack)) + 'J');
info.add(formatInfo("Weight", MuseCommonStrings.getTotalWeight(stack)) + 'g');
return info;
}
@Override
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);
}
}
}

View file

@ -4,6 +4,7 @@ import appeng.api.config.AccessRestriction;
import com.google.common.collect.Sets;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import ic2.api.item.IElectricItemManager;
import net.machinemuse.api.electricity.IMuseElectricItem;
import net.machinemuse.api.electricity.MuseElectricItem;
import net.machinemuse.numina.geometry.Colour;
@ -28,7 +29,7 @@ public class MPSItemElectricTool extends ItemTool implements IModularItemBase, I
Blocks.lit_redstone_ore, Blocks.rail, Blocks.detector_rail, Blocks.golden_rail, Blocks.activator_rail);
protected MPSItemElectricTool(float damageBonus, ToolMaterial material) {
protected MPSItemElectricTool(float damageBonus, Item.ToolMaterial material) {
super(damageBonus, material, blocksEffectiveOn);
}
@ -71,7 +72,7 @@ public class MPSItemElectricTool extends ItemTool implements IModularItemBase, I
/* Industrialcraft 2 -------------------------------------------------------------------------- */
@Override
public IMuseElectricItem getManager(ItemStack stack) {
public IElectricItemManager getManager(ItemStack stack) {
return MuseElectricItem.getInstance().getManager(stack);
}

View file

@ -1,9 +1,7 @@
//package net.machinemuse.powersuits.item;
//
//import net.machinemuse.api.IPowerModule;
//import net.machinemuse.api.ModuleManager;
//import net.machinemuse.api.moduletrigger.IRightClickModule;
//import net.machinemuse.numina.item.IModeChangingItem;
//import net.machinemuse.numina.item.NuminaItemUtils;
//import net.machinemuse.numina.network.MusePacketModeChangeRequest;
//import net.machinemuse.numina.network.PacketSender;
@ -11,7 +9,6 @@
//import net.minecraft.item.ItemStack;
//import net.minecraft.util.IIcon;
//
//import javax.annotation.Nullable;
//import java.util.ArrayList;
//import java.util.List;
//
@ -19,91 +16,115 @@
// * Author: MachineMuse (Claire Semple)
// * Created: 4:52 PM, 9/5/13
// *
// * Ported to Java by lehjr on 11/1/16.
// * Ported to Java by lehjr on 12/12/16.
// */
//public class ModeChangingModularItem implements IModeChangingItem {
// private static ModeChangingModularItem INSTANCE;
//public class ModeChangingModularItem implements IModeChangingModularItem {
// private static ModeChangingModularItem ourInstance = new ModeChangingModularItem();
//
// public static ModeChangingModularItem getInstance() {
// if (INSTANCE == null) {
// INSTANCE = new ModeChangingModularItem();
// }
// return INSTANCE;
// return ourInstance;
// }
//
// private ModeChangingModularItem() {
// }
//
// @Nullable
// @Override
// public IIcon getModeIcon(String mode, ItemStack stack, EntityPlayer player) {
// IPowerModule module = ModuleManager.getModule(mode);
// if (module != null)
// return module.getIcon(stack);
// public void setActiveMode(ItemStack itemStack, String newMode) {
// NuminaItemUtils.getTagCompound(itemStack).setString("mode", newMode);
// }
//
// @Override
// public String getActiveMode(ItemStack itemStack, EntityPlayer player) {
// return getActiveMode(itemStack);
// }
//
// @Override
// public void cycleMode(ItemStack itemStack, EntityPlayer player, int dMode) {
// List<String> modes = getValidModes(itemStack, player);
// if (!modes.isEmpty()) {
// int newindex = clampMode(modes.indexOf(getActiveMode(itemStack, player)) + dMode, modes.size());
// String newmode = modes.get(newindex);
// setActiveMode(itemStack, newmode);
// PacketSender.sendToServer(new MusePacketModeChangeRequest(player,newmode, player.inventory.currentItem));
// }
// }
//
// @Override
// public String nextMode(ItemStack itemStack, EntityPlayer player) {
// List<String> modes = getValidModes(itemStack, player);
// if (!modes.isEmpty()) {
// int newindex = clampMode(modes.indexOf(getActiveMode(itemStack, player)) + 1, modes.size());
// return modes.get(newindex);
// } else {
// return "";
// }
// }
//
// @Override
// public String prevMode(ItemStack itemStack, EntityPlayer player) {
// List<String> modes = getValidModes(itemStack, player);
// if (!modes.isEmpty()) {
// int newindex = clampMode(modes.indexOf(getActiveMode(itemStack, player)) - 1, modes.size());
// return modes.get(newindex);
// } else {
// return "";
// }
// }
//
// @Override
// public void cycleModeForItem(ItemStack itemStack, EntityPlayer player, int dMode) {
// if (itemStack != null) {
// this.cycleMode(itemStack, player, dMode);
// }
// }
//
// @Override
// public IIcon getModeIcon(String mode, ItemStack itemStack, EntityPlayer player) {
// if (!mode.isEmpty())
// return ModuleManager.getModule(mode).getIcon(itemStack);
// return null;
// }
//
// @Override
// public List<String> getValidModes(ItemStack stack) {
// List<String> modes = new ArrayList<>();
// for (IRightClickModule module : ModuleManager.getRightClickModules()) {
// if (module.isValidForItem(stack))
// if (ModuleManager.itemHasModule(stack, module.getDataName()))
// modes.add(module.getDataName());
//
// private int clampMode(int selection, int modesSize) {
// if (selection > 0) {
// return selection % modesSize;
// } else {
// return (selection + modesSize * (-selection)) % modesSize;
// }
// return modes;
// }
////-------------
//
//
// @Override
// public List<String> getValidModes(ItemStack stack, EntityPlayer player) {
// return getValidModes(stack);
// }
//
// @Override
// public String getActiveMode(ItemStack stack) {
// List<String> validModes;
// String modeFromNBT = NuminaItemUtils.getTagCompound(stack).getString("mode");
// if (!modeFromNBT.isEmpty())
// public List<String> getValidModes(ItemStack itemStack) {
//// List<String> validModes = new ArrayList<>();
////
//// for (IRightClickModule module : ModuleManager.getRightClickModules()) {
//// if (module.isValidForItem(itemStack))
//// if (ModuleManager.itemHasActiveModule(itemStack, module.getDataName()))
//// validModes.add(module.getDataName());
//// }
// return ModuleManager.getValidModes(itemStack);
// }
//
// @Override
// public String getActiveMode(ItemStack itemStack) {
// String modeFromNBT = NuminaItemUtils.getTagCompound(itemStack).getString("mode");
// if (!modeFromNBT.isEmpty()) {
// return modeFromNBT;
// else {
// validModes = getValidModes(stack);
// return (!validModes.isEmpty()) ? validModes.get(0) : "";
// } else {
// List<String> validModes = getValidModes(itemStack);
// if (!validModes.isEmpty()) {
// return validModes.get(0);
// } else {
// return "";
// }
// }
// }
//
// @Override
// public void setActiveMode(ItemStack stack, String newMode) {
// NuminaItemUtils.getTagCompound(stack).setString("mode", newMode);
// }
//
// @Override
// public void cycleMode(ItemStack stack, EntityPlayer player, int dMode) {
// List<String> modes = this.getValidModes(stack);
// if (modes.size() > 0) {
// int newindex = clampMode(modes.indexOf(this.getActiveMode(stack)) + dMode, modes.size());
// String newmode = (String)modes.get(newindex);
// this.setActiveMode(stack, newmode);
// PacketSender.sendToServer(new MusePacketModeChangeRequest(player, newmode, player.inventory.currentItem));
// }
// }
//
// @Override
// public String nextMode(ItemStack stack, EntityPlayer player) {
// List<String> modes = getValidModes(stack);
// if (modes.size() > 0) {
// int newindex = clampMode(modes.indexOf(getActiveMode(stack)) + 1, modes.size());
// return (String)modes.get(newindex);
// }
// else {
// return "";
// }
// }
//
// @Override
// public String prevMode(ItemStack stack, EntityPlayer player) {
// List<String> modes = this.getValidModes(stack);
// if (modes.size() > 0) {
// int newindex = clampMode(modes.indexOf(getActiveMode(stack)) - 1, modes.size());
// return (String)modes.get(newindex);
// }
// else {
// return "";
// }
// }
//
// private static int clampMode(int selection, int modesSize) {
// return (selection > 0) ? (selection % modesSize) : ((selection + modesSize * -selection) % modesSize);
// }
//}

View file

@ -3,8 +3,8 @@ package net.machinemuse.powersuits.item;
import appeng.api.config.AccessRestriction;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import ic2.api.item.IElectricItemManager;
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;
@ -41,35 +41,40 @@ public class ModularItemBase extends Item implements IModularItemBase {
@SideOnly(Side.CLIENT)
@Override
public int getColorFromItemStack(ItemStack stack, int par2) {
return getColorFromItemStack(stack).getInt();
public int getColorFromItemStack(ItemStack itemStack, int par2) {
return getColorFromItemStack(itemStack).getInt();
}
@Override
public Colour getGlowFromItemStack(ItemStack stack) {
if (!ModuleManager.itemHasActiveModule(stack, CosmeticGlowModule.MODULE_GLOW)) {
public Colour getGlowFromItemStack(ItemStack itemStack) {
if (!ModuleManager.itemHasActiveModule(itemStack, 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);
double computedred = ModuleManager.computeModularProperty(itemStack, CosmeticGlowModule.RED_GLOW);
double computedgreen = ModuleManager.computeModularProperty(itemStack, CosmeticGlowModule.GREEN_GLOW);
double computedblue = ModuleManager.computeModularProperty(itemStack, CosmeticGlowModule.BLUE_GLOW);
return new Colour(clampDouble(computedred, 0, 1), clampDouble(computedgreen, 0, 1), clampDouble(computedblue, 0, 1), 0.8);
}
@Override
public Colour getColorFromItemStack(ItemStack stack) {
if (!ModuleManager.itemHasActiveModule(stack, TintModule.MODULE_TINT)) {
public Colour getColorFromItemStack(ItemStack itemStack) {
if (!ModuleManager.itemHasActiveModule(itemStack, 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);
double computedred = ModuleManager.computeModularProperty(itemStack, TintModule.RED_TINT);
double computedgreen = ModuleManager.computeModularProperty(itemStack, TintModule.GREEN_TINT);
double computedblue = ModuleManager.computeModularProperty(itemStack, TintModule.BLUE_TINT);
return new Colour(clampDouble(computedred, 0, 1), clampDouble(computedgreen, 0, 1), clampDouble(computedblue, 0, 1), 1.0F);
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List currentTipList, boolean advancedToolTips) {
MuseCommonStrings.addInformation(stack, player, currentTipList, advancedToolTips);
public boolean requiresMultipleRenderPasses() {
return false;
}
@Override
public void addInformation(ItemStack itemStack, EntityPlayer player, List currentTipList, boolean advancedToolTips) {
MuseCommonStrings.addInformation(itemStack, player, currentTipList, advancedToolTips);
}
@Override
@ -81,18 +86,18 @@ public class ModularItemBase extends Item implements IModularItemBase {
/* IModularItem ------------------------------------------------------------------------------- */
@SideOnly(Side.CLIENT)
@Override
public List<String> getLongInfo(EntityPlayer player, ItemStack stack) {
public List<String> getLongInfo(EntityPlayer player, ItemStack itemStack) {
List<String> info = new ArrayList<>();
info.add("Detailed Summary");
info.add(formatInfo("Armor", getArmorDouble(player, stack)));
info.add(formatInfo("Energy Storage", getCurrentEnergy(stack)) + 'J');
info.add(formatInfo("Weight", MuseCommonStrings.getTotalWeight(stack)) + 'g');
info.add(formatInfo("Armor", getArmorDouble(player, itemStack)));
info.add(formatInfo("Energy Storage", getCurrentEnergy(itemStack)) + 'J');
info.add(formatInfo("Weight", MuseCommonStrings.getTotalWeight(itemStack)) + 'g');
return info;
}
@Override
public double getArmorDouble(EntityPlayer player, ItemStack stack) {
public double getArmorDouble(EntityPlayer player, ItemStack itemStack) {
return 0;
}
@ -114,28 +119,33 @@ public class ModularItemBase extends Item implements IModularItemBase {
/* MuseElectricItem --------------------------------------------------------------------------- */
@Override
public double getCurrentEnergy(ItemStack stack) {
return MuseElectricItem.getInstance().getCurrentEnergy(stack);
public double getCurrentEnergy(ItemStack itemStack) {
return MuseElectricItem.getInstance().getCurrentEnergy(itemStack);
}
@Override
public double getMaxEnergy(ItemStack stack) {
return MuseElectricItem.getInstance().getCurrentEnergy(stack);
public double getMaxEnergy(ItemStack itemStack) {
return MuseElectricItem.getInstance().getCurrentEnergy(itemStack);
}
@Override
public void setCurrentEnergy(ItemStack stack, double energy) {
MuseElectricItem.getInstance().setCurrentEnergy(stack, energy);
public void setCurrentEnergy(ItemStack itemStack, double energy) {
MuseElectricItem.getInstance().setCurrentEnergy(itemStack, energy);
}
@Override
public double drainEnergyFrom(ItemStack stack, double requested) {
return MuseElectricItem.getInstance().drainEnergyFrom(stack, requested);
public double drainEnergyFrom(ItemStack itemStack, double requested) {
return MuseElectricItem.getInstance().drainEnergyFrom(itemStack, requested);
}
@Override
public double giveEnergyTo(ItemStack stack, double provided) {
return MuseElectricItem.getInstance().giveEnergyTo(stack, provided);
public double giveEnergyTo(ItemStack itemStack, double provided) {
return MuseElectricItem.getInstance().giveEnergyTo(itemStack, provided);
}
@Override
public int getMaxDamage(ItemStack itemStack) {
return 0;
}
@SideOnly(Side.CLIENT)
@ -144,30 +154,21 @@ public class ModularItemBase extends Item implements IModularItemBase {
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);
public Item getChargedItem(ItemStack itemStack) {
return MuseElectricItem.getInstance().getChargedItem(itemStack);
}
@Override
public Item getEmptyItem(ItemStack itemStack) {
return MuseElectricItem.getInstance().getEmptyItem(itemStack);
}
@Override
@ -195,67 +196,78 @@ public class ModularItemBase extends Item implements IModularItemBase {
return MuseElectricItem.getInstance().discharge(itemStack, amount, tier, ignoreTransferLimit, externally, simulate);
}
@Override
public double getCharge(ItemStack itemStack) {
return MuseElectricItem.getInstance().getCharge(itemStack);
}
@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);
public boolean use(ItemStack itemStack, double amount, EntityLivingBase entity) {
return MuseElectricItem.getInstance().use(itemStack, amount, entity);
}
@Override
public Item getEmptyItem(ItemStack itemStack) {
return MuseElectricItem.getInstance().getEmptyItem(itemStack);
public void chargeFromArmor(ItemStack itemStack, EntityLivingBase entity) {
MuseElectricItem.getInstance().chargeFromArmor(itemStack, entity);
}
@Override
public IElectricItemManager getManager(ItemStack itemStack) {
return MuseElectricItem.getInstance().getManager(itemStack);
}
/* Thermal Expansion -------------------------------------------------------------------------- */
@Override
public int receiveEnergy(ItemStack stack, int energy, boolean simulate) {
return MuseElectricItem.getInstance().receiveEnergy(stack, energy, simulate);
public int receiveEnergy(ItemStack itemStack, int energy, boolean simulate) {
return MuseElectricItem.getInstance().receiveEnergy(itemStack, energy, simulate);
}
@Override
public int extractEnergy(ItemStack stack, int energy, boolean simulate) {
return MuseElectricItem.getInstance().extractEnergy(stack, energy, simulate);
public int extractEnergy(ItemStack itemStack, int energy, boolean simulate) {
return MuseElectricItem.getInstance().extractEnergy(itemStack, energy, simulate);
}
@Override
public int getEnergyStored(ItemStack theItem) {
return MuseElectricItem.getInstance().getEnergyStored(theItem);
public int getEnergyStored(ItemStack itemStack) {
return MuseElectricItem.getInstance().getEnergyStored(itemStack);
}
@Override
public int getMaxEnergyStored(ItemStack theItem) {
return MuseElectricItem.getInstance().getMaxEnergyStored(theItem);
public int getMaxEnergyStored(ItemStack itemStack) {
return MuseElectricItem.getInstance().getMaxEnergyStored(itemStack);
}
/* Applied Energistics 2 ---------------------------------------------------------------------- */
@Override
public double injectAEPower(ItemStack stack, double ae) {
return MuseElectricItem.getInstance().injectAEPower(stack, ae);
public double injectAEPower(ItemStack itemStack, double ae) {
return MuseElectricItem.getInstance().injectAEPower(itemStack, ae);
}
@Override
public double extractAEPower(ItemStack stack, double ae) {
return MuseElectricItem.getInstance().extractAEPower(stack, ae);
public double extractAEPower(ItemStack itemStack, double ae) {
return MuseElectricItem.getInstance().extractAEPower(itemStack, ae);
}
@Override
public double getAEMaxPower(ItemStack stack) {
return MuseElectricItem.getInstance().getAEMaxPower(stack);
public double getAEMaxPower(ItemStack itemStack) {
return MuseElectricItem.getInstance().getAEMaxPower(itemStack);
}
@Override
public double getAECurrentPower(ItemStack stack) {
return MuseElectricItem.getInstance().getAECurrentPower(stack);
public double getAECurrentPower(ItemStack itemStack) {
return MuseElectricItem.getInstance().getAECurrentPower(itemStack);
}
@Override
public AccessRestriction getPowerFlow(ItemStack stack) {
return MuseElectricItem.getInstance().getPowerFlow(stack);
public AccessRestriction getPowerFlow(ItemStack itemStack) {
return MuseElectricItem.getInstance().getPowerFlow(itemStack);
}
}

View file

@ -25,4 +25,4 @@ public class MPSPacketList {
MusePacketHandler.packagers.put(10, MusePacketColourInfo.getPackagerInstance());
MusePacketHandler.packagers.put(11, MusePacketPropertyModifierConfig.getPackagerInstance());
}
}
}

View file

@ -1,10 +1,11 @@
package net.machinemuse.powersuits.network.packets;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.IModularItem;
import net.machinemuse.numina.network.MusePackager;
import net.machinemuse.numina.network.MusePacket;
import net.machinemuse.utils.MuseItemUtils;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
@ -39,7 +40,7 @@ public class MusePacketColourInfo extends MusePacket {
}
@Override
public void handleServer(EntityPlayer player) {
public void handleServer(EntityPlayerMP player) {
ItemStack stack = player.inventory.getStackInSlot(itemSlot);
if (stack != null && stack.getItem() instanceof IModularItem) {
NBTTagCompound renderTag = MuseItemUtils.getMuseRenderTag(stack);

View file

@ -1,11 +1,12 @@
package net.machinemuse.powersuits.network.packets;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.IModularItem;
import net.machinemuse.numina.general.MuseLogger;
import net.machinemuse.numina.network.MusePackager;
import net.machinemuse.numina.network.MusePacket;
import net.machinemuse.utils.MuseItemUtils;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
@ -43,7 +44,7 @@ public class MusePacketCosmeticInfo extends MusePacket {
}
@Override
public void handleServer(EntityPlayer player) {
public void handleServer(EntityPlayerMP player) {
ItemStack stack = player.inventory.getStackInSlot(itemSlot);
if (tagName != null && stack != null && stack.getItem() instanceof IModularItem) {
NBTTagCompound itemTag = MuseItemUtils.getMuseItemTag(stack);

View file

@ -49,7 +49,7 @@ public class MusePacketInstallModuleRequest extends MusePacket {
}
@Override
public void handleServer(EntityPlayer player) {
public void handleServer(EntityPlayerMP player) {
ItemStack stack = player.inventory.getStackInSlot(itemSlot);
if (moduleName != null) {
InventoryPlayer inventory = player.inventory;

View file

@ -46,7 +46,7 @@ public class MusePacketPlasmaBolt extends MusePacket {
EntityPlasmaBolt entity = (EntityPlasmaBolt) Minecraft.getMinecraft().theWorld.getEntityByID(entityID);
entity.size = this.size;
}
catch (Exception e){
catch (Exception ignored){
}
}

View file

@ -5,6 +5,7 @@ import net.machinemuse.numina.network.MusePacket;
import net.machinemuse.numina.network.PacketSender;
import net.machinemuse.powersuits.control.PlayerInputMap;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import java.io.DataInputStream;
@ -35,7 +36,7 @@ public class MusePacketPlayerUpdate extends MusePacket {
}
@Override
public void handleServer(EntityPlayer player) {
public void handleServer(EntityPlayerMP player) {
MusePacketPlayerUpdate updatePacket = new MusePacketPlayerUpdate(player, inputMap);
player.motionX = inputMap.motionX;
player.motionY = inputMap.motionY;

View file

@ -9,7 +9,6 @@ import net.machinemuse.numina.network.MusePackager;
import net.machinemuse.numina.network.MusePacket;
import net.machinemuse.powersuits.powermodule.PowerModuleBase;
import net.machinemuse.powersuits.powermodule.PropertyModifierFlatAdditive;
import net.machinemuse.powersuits.powermodule.PropertyModifierIntLinearAdditive;
import net.machinemuse.powersuits.powermodule.PropertyModifierLinearAdditive;
import net.minecraft.entity.player.EntityPlayer;
@ -44,20 +43,16 @@ public class MusePacketPropertyModifierConfig extends MusePacket {
writeString(module.getDataName());
writeBoolean(module.isAllowed());
writeInt(module.getPropertyModifiers().size());
Map<String, List<IPropertyModifier>> propertyMap = module.getPropertyModifiers();
for (String propname : propertyMap.keySet()) {
List<IPropertyModifier> propmodlist = propertyMap.get(propname);
writeString(propname);
for (Map.Entry<String, List<IPropertyModifier>> entry: module.getPropertyModifiers().entrySet()) {
writeString(entry.getKey()); // propertyName
List<IPropertyModifier> propmodlist = entry.getValue();
writeInt(propmodlist.size());
for (IPropertyModifier propmod : propmodlist) {
if (propmod instanceof PropertyModifierFlatAdditive)
writeDouble(((PropertyModifierFlatAdditive) propmod).valueAdded);
else if (propmod instanceof PropertyModifierIntLinearAdditive)
writeDouble(((PropertyModifierIntLinearAdditive) propmod).multiplier);
else
writeDouble(0);
else if (propmod instanceof PropertyModifierLinearAdditive)
writeDouble(((PropertyModifierLinearAdditive) propmod).multiplier);
else writeDouble(0);
}
}
}
@ -79,21 +74,18 @@ public class MusePacketPropertyModifierConfig extends MusePacket {
IPowerModule module = ModuleManager.getModule(moduleName);
if (module instanceof PowerModuleBase)
((PowerModuleBase) module).setIsAllowed(allowed);
int numProps = d.readInt(data);
for (int j = 0; j < numProps; j++ ) {
String propName = d.readString(data);
int numModifiers = d.readInt(data);
List<IPropertyModifier> proplist = module.getPropertyModifiers().get(propName);
for (int m = 0; m < numModifiers; m++) {
IPropertyModifier propMod = proplist.get(m);
if (propMod instanceof PropertyModifierFlatAdditive)
((PropertyModifierFlatAdditive) propMod).valueAdded = d.readDouble(data);
else if (propMod instanceof PropertyModifierLinearAdditive)
((PropertyModifierLinearAdditive) propMod).multiplier = d.readDouble(data);
else
d.readDouble(data);
else d.readDouble(data);
}
}
}

View file

@ -50,7 +50,7 @@ public class MusePacketSalvageModuleRequest extends MusePacket {
}
@Override
public void handleServer(EntityPlayer player) {
public void handleServer(EntityPlayerMP player) {
if (moduleName != null) {
InventoryPlayer inventory = player.inventory;
ItemStack stack = player.inventory.getStackInSlot(itemSlot);

View file

@ -4,6 +4,7 @@ import net.machinemuse.numina.network.MusePackager;
import net.machinemuse.numina.network.MusePacket;
import net.machinemuse.utils.MuseItemUtils;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import java.io.DataInputStream;
@ -35,7 +36,7 @@ public class MusePacketToggleRequest extends MusePacket{
}
@Override
public void handleServer(EntityPlayer player) {
public void handleServer(EntityPlayerMP player) {
MuseItemUtils.toggleModuleForPlayer(player, module, active);
}

View file

@ -6,6 +6,7 @@ import net.machinemuse.numina.network.MusePackager;
import net.machinemuse.numina.network.MusePacket;
import net.machinemuse.utils.MuseItemUtils;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
@ -50,7 +51,7 @@ public class MusePacketTweakRequest extends MusePacket {
}
@Override
public void handleServer(EntityPlayer player) {
public void handleServer(EntityPlayerMP player) {
if (moduleName != null && tweakName != null) {
ItemStack stack = player.inventory.getStackInSlot(itemSlot);
NBTTagCompound itemTag = MuseItemUtils.getMuseItemTag(stack);
@ -78,4 +79,4 @@ public class MusePacketTweakRequest extends MusePacket {
return new MusePacketTweakRequest(player, itemSlot, moduleName, tweakName, tweakValue);
}
}
}
}

View file

@ -1,14 +1,14 @@
package net.machinemuse.powersuits.powermodule;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.IModularItem;
import java.util.List;
public class PowerModule extends PowerModuleBase {
protected final String name;
protected String name;
protected String description;
protected String category;
protected final String textureFile;
protected String textureFile;
public PowerModule(String name, List<IModularItem> validItems, String textureFile, String category) {
super(name, validItems);

View file

@ -4,7 +4,7 @@ import net.machinemuse.api.ILocalizeableModule;
import net.machinemuse.api.IPowerModule;
import net.machinemuse.api.IPropertyModifier;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.IModularItem;
import net.machinemuse.general.gui.MuseIcon;
import net.machinemuse.numina.render.MuseTextureUtils;
import net.machinemuse.powersuits.common.Config;
@ -22,7 +22,7 @@ public abstract class PowerModuleBase implements ILocalizeableModule {
protected List<ItemStack> defaultInstallCost;
protected List<IModularItem> validItems;
protected Map<String, List<IPropertyModifier>> propertyModifiers;
protected static Map<String, String> units = new HashMap<>();
protected static Map<String, String> units = new HashMap<String, String>();
protected NBTTagCompound defaultTag;
protected boolean isAllowed;
protected IIcon icon;
@ -180,4 +180,4 @@ public abstract class PowerModuleBase implements ILocalizeableModule {
public String getUnlocalizedName() {
return "Unknown Module";
}
}
}

View file

@ -6,7 +6,7 @@ import net.minecraft.nbt.NBTTagCompound;
public class PropertyModifierLinearAdditive implements IPropertyModifier {
public double multiplier;
public final String tradeoffName;
public String tradeoffName;
public PropertyModifierLinearAdditive(String tradeoffName, double multiplier) {
this.multiplier = multiplier;
@ -21,4 +21,4 @@ public class PropertyModifierLinearAdditive implements IPropertyModifier {
public String getTradeoffName() {
return tradeoffName;
}
}
}

View file

@ -1,6 +1,6 @@
package net.machinemuse.powersuits.powermodule;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.IModularItem;
import net.machinemuse.api.moduletrigger.IRightClickModule;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
@ -30,4 +30,4 @@ public class RightClickPowerModule extends PowerModule implements IRightClickMod
@Override
public void onPlayerStoppedUsing(ItemStack itemStack, World world, EntityPlayer player, int par4) {
}
}
}

Some files were not shown because too many files have changed in this diff Show more