maintanence update
This commit is contained in:
parent
74bd150d16
commit
1e0b1923b8
|
@ -11,7 +11,7 @@ import net.minecraft.item.ItemStack;
|
|||
* - handle charging, taking amount, tier, transfer limit, canProvideEnergy and simulate into account
|
||||
* - replace item IDs if appropriate (getChargedItemId() and getEmptyItemId())
|
||||
* - update and manage the damage value for the visual charge indicator
|
||||
*
|
||||
*
|
||||
* @note If you're implementing your own variant (ISpecialElectricItem), you can delegate to the
|
||||
* default implementations through ElectricItem.rawManager. The default implementation is designed
|
||||
* to minimize its dependency on its own constraints/structure and delegates most work back to the
|
||||
|
@ -45,7 +45,7 @@ public interface IElectricItemManager {
|
|||
|
||||
/**
|
||||
* Determine the charge level for the specified item.
|
||||
*
|
||||
*
|
||||
* @param stack ItemStack containing the electric item
|
||||
* @return charge level in EU
|
||||
*/
|
||||
|
@ -85,7 +85,7 @@ public interface IElectricItemManager {
|
|||
|
||||
/**
|
||||
* Get the tool tip to display for electric items.
|
||||
*
|
||||
*
|
||||
* @param stack ItemStack to determine the tooltip for
|
||||
* @return tool tip string or null for none
|
||||
*/
|
||||
|
|
|
@ -21,7 +21,7 @@ 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)
|
||||
@Optional.Interface(iface = "appeng.api.implementations.items.IAEItemPowerStorage", modid = "appliedenergistics2", striprefs = true)
|
||||
})
|
||||
public interface IMuseElectricItem extends
|
||||
IEnergyContainerItem,
|
||||
|
|
|
@ -1,253 +0,0 @@
|
|||
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;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
/**
|
||||
* Author: MachineMuse (Claire Semple)
|
||||
* Created: 10:12 PM, 4/20/13
|
||||
*
|
||||
* Ported to Java by lehjr on 11/3/16.
|
||||
*/
|
||||
public class MuseElectricItem extends Item implements IMuseElectricItem {
|
||||
private static MuseElectricItem INSTANCE;
|
||||
|
||||
public static MuseElectricItem getInstance() {
|
||||
if (INSTANCE == null)
|
||||
INSTANCE = new MuseElectricItem();
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Call to get the energy of an item
|
||||
*
|
||||
* @param stack ItemStack to set
|
||||
* @return Current energy level
|
||||
*/
|
||||
@Override
|
||||
public double getCurrentEnergy(ItemStack stack) {
|
||||
return MuseItemUtils.getDoubleOrZero(stack, ElectricItemUtils.CURRENT_ENERGY);
|
||||
}
|
||||
|
||||
/**
|
||||
* Call to set the energy of an item
|
||||
*
|
||||
* @param stack ItemStack to set
|
||||
* @return Maximum energy level
|
||||
*/
|
||||
@Override
|
||||
public double getMaxEnergy(ItemStack stack) {
|
||||
return ModuleManager.computeModularProperty(stack, ElectricItemUtils.MAXIMUM_ENERGY);
|
||||
}
|
||||
|
||||
/**
|
||||
* Call to set the energy of an item
|
||||
*
|
||||
* @param stack ItemStack to set
|
||||
* @param energy Level to set it to
|
||||
*/
|
||||
@Override
|
||||
public void setCurrentEnergy(ItemStack stack, double energy) {
|
||||
MuseItemUtils.setDoubleOrRemove(stack, ElectricItemUtils.CURRENT_ENERGY, Math.min(energy, getMaxEnergy(stack)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Call to drain energy from an item
|
||||
*
|
||||
* @param stack ItemStack being requested for energy
|
||||
* @param requested Amount of energy to drain
|
||||
* @return Amount of energy successfully drained
|
||||
*/
|
||||
@Override
|
||||
public double drainEnergyFrom(ItemStack stack, double requested) {
|
||||
double available = getCurrentEnergy(stack);
|
||||
if (available > requested) {
|
||||
setCurrentEnergy(stack, available - requested);
|
||||
return requested;
|
||||
} else {
|
||||
setCurrentEnergy(stack, 0);
|
||||
return available;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Call to give energy to an item
|
||||
*
|
||||
* @param stack ItemStack being provided with energy
|
||||
* @param provided Amount of energy to add
|
||||
* @return Amount of energy added
|
||||
*/
|
||||
@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;
|
||||
} else {
|
||||
setCurrentEnergy(stack, max);
|
||||
return max - available;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxDamage(ItemStack itemStack) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Industrialcraft 2 -------------------------------------------------------------------------- */
|
||||
@Override
|
||||
public boolean canProvideEnergy(ItemStack itemStack) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
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)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public double charge(ItemStack itemStack, double amount, int tier, boolean ignoreTransferLimit, boolean simulate){
|
||||
double current = getCurrentEnergy(itemStack);
|
||||
double transfer = (ignoreTransferLimit || amount < getTransferLimit(itemStack)) ? ElectricConversions.museEnergyFromEU(amount) : getTransferLimit(itemStack);
|
||||
double given = giveEnergyTo(itemStack, transfer);
|
||||
if (simulate) {
|
||||
setCurrentEnergy(itemStack, current);
|
||||
}
|
||||
return ElectricConversions.museEnergyToEU(given);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double discharge(ItemStack itemStack, double amount, int tier, boolean ignoreTransferLimit, boolean externally, boolean simulate) {
|
||||
double current = getCurrentEnergy(itemStack);
|
||||
double transfer = (ignoreTransferLimit || amount < getTransferLimit(itemStack)) ? ElectricConversions.museEnergyFromEU(amount) : getTransferLimit(itemStack);
|
||||
double taken = drainEnergyFrom(itemStack, transfer);
|
||||
if (simulate) {
|
||||
setCurrentEnergy(itemStack, current);
|
||||
}
|
||||
return ElectricConversions.museEnergyToEU(taken);
|
||||
}
|
||||
|
||||
@Override
|
||||
public 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 "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public IElectricItemManager getManager(ItemStack itemStack) {
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
/* Thermal Expansion -------------------------------------------------------------------------- */
|
||||
@Override
|
||||
public int receiveEnergy(ItemStack itemStack, int energy, boolean simulate) {
|
||||
double current = getCurrentEnergy(itemStack);
|
||||
double receivedME = ElectricConversions.museEnergyFromRF(energy);
|
||||
double eatenME = giveEnergyTo(itemStack, receivedME);
|
||||
if (simulate) setCurrentEnergy(itemStack, current);
|
||||
return ElectricConversions.museEnergyToRF(eatenME);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int extractEnergy(ItemStack itemStack, int energy, boolean simulate) {
|
||||
double current = getCurrentEnergy(itemStack);
|
||||
double requesteddME = ElectricConversions.museEnergyFromRF(energy);
|
||||
double takenME = drainEnergyFrom(itemStack, requesteddME);
|
||||
if (simulate) {
|
||||
setCurrentEnergy(itemStack, current);
|
||||
}
|
||||
return ElectricConversions.museEnergyToRF(takenME);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEnergyStored(ItemStack itemStack) {
|
||||
return ElectricConversions.museEnergyToRF(getCurrentEnergy(itemStack));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxEnergyStored(ItemStack itemStack) {
|
||||
return ElectricConversions.museEnergyToRF(getMaxEnergy(itemStack));
|
||||
}
|
||||
|
||||
|
||||
/* Applied Energistics 2 ---------------------------------------------------------------------- */
|
||||
@Override
|
||||
public double injectAEPower(ItemStack itemStack, double ae) {
|
||||
double current = getCurrentEnergy(itemStack);
|
||||
double recieved = ElectricConversions.museEnergyFromAE(ae);
|
||||
setCurrentEnergy(itemStack, current);
|
||||
return ElectricConversions.museEnergyToAE(recieved);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double extractAEPower(ItemStack itemStack, double ae) {
|
||||
double current = getCurrentEnergy(itemStack);
|
||||
double taken = ElectricConversions.museEnergyFromAE(ae);
|
||||
setCurrentEnergy(itemStack, current);
|
||||
return ElectricConversions.museEnergyToAE(taken);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getAEMaxPower(ItemStack itemStack) {
|
||||
return ElectricConversions.museEnergyToAE(getCurrentEnergy(itemStack));
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getAECurrentPower(ItemStack itemStack) {
|
||||
return ElectricConversions.museEnergyToAE(getCurrentEnergy(itemStack));
|
||||
}
|
||||
|
||||
@Override
|
||||
public AccessRestriction getPowerFlow(ItemStack itemStack) {
|
||||
return AccessRestriction.READ_WRITE;
|
||||
}
|
||||
}
|
|
@ -20,7 +20,7 @@ import static net.machinemuse.powersuits.common.ModularPowersuits.VERSION;
|
|||
*
|
||||
* Ported to Java by lehjr on 11/14/16.
|
||||
*/
|
||||
@Mod(modid = MODID, version = VERSION, dependencies = "required-after:numina@[@numina_version@,)")
|
||||
@Mod(modid = MODID, version = VERSION, dependencies = "required-after:numina@[@numina_version@,), ae2wct")
|
||||
public final class ModularPowersuits {
|
||||
public static final String MODID = "powersuits";
|
||||
public static final String VERSION = "@VERSION@";
|
||||
|
|
|
@ -47,10 +47,4 @@ public interface IModularItemBase extends IModularItem, IMuseElectricItem {
|
|||
List<String> getLongInfo(EntityPlayer player, ItemStack stack);
|
||||
|
||||
double getArmorDouble(EntityPlayer player, ItemStack stack);
|
||||
|
||||
double getPlayerEnergy(EntityPlayer player);
|
||||
|
||||
void drainPlayerEnergy(EntityPlayer player, double drainEnergy);
|
||||
|
||||
void givePlayerEnergy(EntityPlayer player, double joulesToGive);
|
||||
}
|
||||
|
|
|
@ -1,190 +1,358 @@
|
|||
package net.machinemuse.powersuits.item;
|
||||
|
||||
import appeng.api.config.AccessRestriction;
|
||||
import cpw.mods.fml.common.Optional;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import ic2.api.item.ElectricItem;
|
||||
import ic2.api.item.IElectricItemManager;
|
||||
import net.machinemuse.api.ModuleManager;
|
||||
import net.machinemuse.api.electricity.ElectricConversions;
|
||||
import net.machinemuse.api.electricity.IMuseElectricItem;
|
||||
import net.machinemuse.api.electricity.MuseElectricItem;
|
||||
import net.machinemuse.numina.geometry.Colour;
|
||||
import net.machinemuse.powersuits.powermodule.misc.CosmeticGlowModule;
|
||||
import net.machinemuse.powersuits.powermodule.misc.TintModule;
|
||||
import net.machinemuse.utils.ElectricItemUtils;
|
||||
import net.machinemuse.utils.MuseCommonStrings;
|
||||
import net.machinemuse.utils.MuseItemUtils;
|
||||
import net.machinemuse.utils.MuseStringUtils;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemArmor;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static net.machinemuse.numina.general.MuseMathUtils.clampDouble;
|
||||
|
||||
/**
|
||||
* Ported to Java by lehjr on 10/26/16.
|
||||
*/
|
||||
@Optional.InterfaceList({
|
||||
@Optional.Interface(iface = "cofh.api.energy.IEnergyContainerItem", modid = "CoFHAPI|energy", striprefs = true),
|
||||
@Optional.Interface(iface = "ic2.api.item.IElectricItemManager", modid = "IC2", striprefs = true),
|
||||
@Optional.Interface(iface = "ic2.api.item.ISpecialElectricItem", modid = "IC2", striprefs = true),
|
||||
@Optional.Interface(iface = "appeng.api.implementations.items.IAEItemPowerStorage", modid = "appliedenergistics2", striprefs = true)
|
||||
})
|
||||
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);
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public int getColorFromItemStack(ItemStack itemStack, int par2) {
|
||||
return getColorFromItemStack(itemStack).getInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Colour getGlowFromItemStack(ItemStack itemStack) {
|
||||
if (!ModuleManager.itemHasActiveModule(itemStack, CosmeticGlowModule.MODULE_GLOW)) {
|
||||
return Colour.LIGHTBLUE;
|
||||
}
|
||||
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 itemStack) {
|
||||
if (!ModuleManager.itemHasActiveModule(itemStack, TintModule.MODULE_TINT)) {
|
||||
return Colour.WHITE;
|
||||
}
|
||||
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 boolean requiresMultipleRenderPasses() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public void addInformation(ItemStack itemStack, EntityPlayer player, List currentTipList, boolean advancedToolTips) {
|
||||
MuseCommonStrings.addInformation(itemStack, player, currentTipList, advancedToolTips);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String formatInfo(String string, double value) {
|
||||
return string + '\t' + MuseStringUtils.formatNumberShort(value);
|
||||
}
|
||||
|
||||
|
||||
/* IModularItem ------------------------------------------------------------------------------- */
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public List<String> getLongInfo(EntityPlayer player, ItemStack itemStack) {
|
||||
List<String> info = new ArrayList<>();
|
||||
|
||||
info.add("Detailed Summary");
|
||||
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 itemStack) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getPlayerEnergy(EntityPlayer player) {
|
||||
return ElectricItemUtils.getPlayerEnergy(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drainPlayerEnergy(EntityPlayer player, double drainEnergy) {
|
||||
ElectricItemUtils.drainPlayerEnergy(player, drainEnergy);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void givePlayerEnergy(EntityPlayer player, double joulesToGive) {
|
||||
ElectricItemUtils.givePlayerEnergy(player, joulesToGive);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxDamage(ItemStack itemStack) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public String getToolTip(ItemStack itemStack) {
|
||||
return null;
|
||||
return itemStack.getTooltip(Minecraft.getMinecraft().thePlayer, false).toString();
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public int getColorFromItemStack(final ItemStack stack, final int par2) {
|
||||
return ModularItemBase.getInstance().getColorFromItemStack(stack, par2);
|
||||
}
|
||||
|
||||
public Colour getGlowFromItemStack(final ItemStack stack) {
|
||||
return ModularItemBase.getInstance().getGlowFromItemStack(stack);
|
||||
}
|
||||
|
||||
public Colour getColorFromItemStack(final ItemStack stack) {
|
||||
return ModularItemBase.getInstance().getColorFromItemStack(stack);
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public boolean requiresMultipleRenderPasses() {
|
||||
return ModularItemBase.getInstance().requiresMultipleRenderPasses();
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
/**
|
||||
* Call to get the energy of an item
|
||||
*
|
||||
* @param stack ItemStack to set
|
||||
* @return Current energy level
|
||||
*/
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List currentTipList, boolean advancedToolTips) {
|
||||
ModularItemBase.getInstance().addInformation(stack, player, currentTipList, advancedToolTips);
|
||||
public double getCurrentEnergy(ItemStack stack) {
|
||||
return MuseItemUtils.getDoubleOrZero(stack, ElectricItemUtils.CURRENT_ENERGY);
|
||||
}
|
||||
|
||||
public String formatInfo(final String string, final double value) {
|
||||
return ModularItemBase.getInstance().formatInfo(string, value);
|
||||
/**
|
||||
* Call to set the energy of an item
|
||||
*
|
||||
* @param stack ItemStack to set
|
||||
* @return Maximum energy level
|
||||
*/
|
||||
@Override
|
||||
public double getMaxEnergy(ItemStack stack) {
|
||||
return ModuleManager.computeModularProperty(stack, ElectricItemUtils.MAXIMUM_ENERGY);
|
||||
}
|
||||
|
||||
public List<String> getLongInfo(final EntityPlayer player, final ItemStack stack) {
|
||||
return ModularItemBase.getInstance().getLongInfo(player, stack);
|
||||
/**
|
||||
* Call to set the energy of an item
|
||||
*
|
||||
* @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)));
|
||||
}
|
||||
|
||||
public double getArmorDouble(final EntityPlayer player, final ItemStack stack) {
|
||||
return ModularItemBase.getInstance().getArmorDouble(player, stack);
|
||||
/**
|
||||
* Call to drain energy from an item
|
||||
*
|
||||
* @param stack ItemStack being requested for energy
|
||||
* @param requested Amount of energy to drain
|
||||
* @return Amount of energy successfully drained
|
||||
*/
|
||||
@Override
|
||||
public double drainEnergyFrom(ItemStack stack, double requested) {
|
||||
double available = getCurrentEnergy(stack);
|
||||
if (available > requested) {
|
||||
setCurrentEnergy(stack, available - requested);
|
||||
return requested;
|
||||
} else {
|
||||
setCurrentEnergy(stack, 0);
|
||||
return available;
|
||||
}
|
||||
}
|
||||
|
||||
public double getPlayerEnergy(final EntityPlayer player) {
|
||||
return ModularItemBase.getInstance().getPlayerEnergy(player);
|
||||
/**
|
||||
* Call to give energy to an item
|
||||
*
|
||||
* @param stack ItemStack being provided with energy
|
||||
* @param provided Amount of energy to add
|
||||
* @return Amount of energy added
|
||||
*/
|
||||
@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;
|
||||
} else {
|
||||
setCurrentEnergy(stack, max);
|
||||
return max - available;
|
||||
}
|
||||
}
|
||||
|
||||
public void drainPlayerEnergy(final EntityPlayer player, final double drainEnergy) {
|
||||
ModularItemBase.getInstance().drainPlayerEnergy(player, drainEnergy);
|
||||
/* Industrialcraft 2 -------------------------------------------------------------------------- */
|
||||
@Optional.Method(modid = "IC2")
|
||||
@Override
|
||||
public boolean canProvideEnergy(ItemStack itemStack) {
|
||||
return true;
|
||||
}
|
||||
|
||||
public void givePlayerEnergy(final EntityPlayer player, final double joulesToGive) {
|
||||
ModularItemBase.getInstance().givePlayerEnergy(player, joulesToGive);
|
||||
@Optional.Method(modid = "IC2")
|
||||
@Override
|
||||
public Item getChargedItem(ItemStack itemStack) {
|
||||
return this;
|
||||
}
|
||||
|
||||
public double getCurrentEnergy(final ItemStack stack) {
|
||||
return MuseElectricItem.getInstance().getCurrentEnergy(stack);
|
||||
@Optional.Method(modid = "IC2")
|
||||
@Override
|
||||
public Item getEmptyItem(ItemStack itemStack) {
|
||||
return this;
|
||||
}
|
||||
|
||||
public double getMaxEnergy(final ItemStack stack) {
|
||||
return MuseElectricItem.getInstance().getMaxEnergy(stack);
|
||||
@Optional.Method(modid = "IC2")
|
||||
@Override
|
||||
public double getMaxCharge(ItemStack itemStack) {
|
||||
return ElectricConversions.museEnergyToEU(getMaxEnergy(itemStack));
|
||||
}
|
||||
|
||||
public void setCurrentEnergy(final ItemStack stack, final double energy) {
|
||||
MuseElectricItem.getInstance().setCurrentEnergy(stack, energy);
|
||||
@Optional.Method(modid = "IC2")
|
||||
@Override
|
||||
public int getTier(ItemStack itemStack) {
|
||||
return ElectricConversions.getTier(itemStack);
|
||||
}
|
||||
|
||||
public double drainEnergyFrom(final ItemStack stack, final double requested) {
|
||||
return MuseElectricItem.getInstance().drainEnergyFrom(stack, requested);
|
||||
@Optional.Method(modid = "IC2")
|
||||
@Override
|
||||
public double getTransferLimit(ItemStack itemStack) {
|
||||
return ElectricConversions.museEnergyToEU(Math.sqrt(getMaxEnergy(itemStack)));
|
||||
}
|
||||
|
||||
public double giveEnergyTo(final ItemStack stack, final double provided) {
|
||||
return MuseElectricItem.getInstance().giveEnergyTo(stack, provided);
|
||||
@Optional.Method(modid = "IC2")
|
||||
@Override
|
||||
public double charge(ItemStack itemStack, double amount, int tier, boolean ignoreTransferLimit, boolean simulate){
|
||||
double current = getCurrentEnergy(itemStack);
|
||||
double transfer = (ignoreTransferLimit || amount < getTransferLimit(itemStack)) ? ElectricConversions.museEnergyFromEU(amount) : getTransferLimit(itemStack);
|
||||
double given = giveEnergyTo(itemStack, transfer);
|
||||
if (simulate) {
|
||||
setCurrentEnergy(itemStack, current);
|
||||
}
|
||||
return ElectricConversions.museEnergyToEU(given);
|
||||
}
|
||||
|
||||
public IMuseElectricItem getManager(final ItemStack itemStack) {
|
||||
return (IMuseElectricItem) MuseElectricItem.getInstance().getManager(itemStack);
|
||||
@Optional.Method(modid = "IC2")
|
||||
@Override
|
||||
public double discharge(ItemStack itemStack, double amount, int tier, boolean ignoreTransferLimit, boolean externally, boolean simulate) {
|
||||
double current = getCurrentEnergy(itemStack);
|
||||
double transfer = (ignoreTransferLimit || amount < getTransferLimit(itemStack)) ? ElectricConversions.museEnergyFromEU(amount) : getTransferLimit(itemStack);
|
||||
double taken = drainEnergyFrom(itemStack, transfer);
|
||||
if (simulate) {
|
||||
setCurrentEnergy(itemStack, current);
|
||||
}
|
||||
return ElectricConversions.museEnergyToEU(taken);
|
||||
}
|
||||
|
||||
public void chargeFromArmor(final ItemStack itemStack, final EntityLivingBase entity) {
|
||||
MuseElectricItem.getInstance().chargeFromArmor(itemStack, entity);
|
||||
@Optional.Method(modid = "IC2")
|
||||
@Override
|
||||
public double getCharge(ItemStack itemStack) {
|
||||
return ElectricConversions.museEnergyToEU(getCurrentEnergy(itemStack));
|
||||
}
|
||||
|
||||
public boolean use(final ItemStack itemStack, final double amount, final EntityLivingBase entity) {
|
||||
return MuseElectricItem.getInstance().use(itemStack, amount, entity);
|
||||
@Optional.Method(modid = "IC2")
|
||||
@Override
|
||||
public boolean canUse(ItemStack itemStack, double amount) {
|
||||
return ElectricConversions.museEnergyFromEU(amount) < getCurrentEnergy(itemStack);
|
||||
}
|
||||
|
||||
public boolean canProvideEnergy(final ItemStack itemStack) {
|
||||
return MuseElectricItem.getInstance().canProvideEnergy(itemStack);
|
||||
@Optional.Method(modid = "IC2")
|
||||
@Override
|
||||
public boolean use(ItemStack itemStack, double amount, EntityLivingBase entity) {
|
||||
return ElectricItem.rawManager.use(itemStack, ElectricConversions.museEnergyToEU(amount), entity);
|
||||
}
|
||||
|
||||
public double getCharge(final ItemStack itemStack) {
|
||||
return MuseElectricItem.getInstance().getCharge(itemStack);
|
||||
@Optional.Method(modid = "IC2")
|
||||
@Override
|
||||
public void chargeFromArmor(ItemStack itemStack, EntityLivingBase entity) {
|
||||
ElectricItem.rawManager.chargeFromArmor(itemStack, entity);
|
||||
}
|
||||
|
||||
public double getMaxCharge(final ItemStack itemStack) {
|
||||
return MuseElectricItem.getInstance().getMaxCharge(itemStack);
|
||||
@Optional.Method(modid = "IC2")
|
||||
@Override
|
||||
public IElectricItemManager getManager(ItemStack itemStack) {
|
||||
return this;
|
||||
}
|
||||
/* Thermal Expansion -------------------------------------------------------------------------- */
|
||||
@Override
|
||||
public int receiveEnergy(ItemStack itemStack, int energy, boolean simulate) {
|
||||
double current = getCurrentEnergy(itemStack);
|
||||
double receivedME = ElectricConversions.museEnergyFromRF(energy);
|
||||
double eatenME = giveEnergyTo(itemStack, receivedME);
|
||||
if (simulate) setCurrentEnergy(itemStack, current);
|
||||
return ElectricConversions.museEnergyToRF(eatenME);
|
||||
}
|
||||
|
||||
public int getTier(final ItemStack itemStack) {
|
||||
return MuseElectricItem.getInstance().getTier(itemStack);
|
||||
@Override
|
||||
public int extractEnergy(ItemStack itemStack, int energy, boolean simulate) {
|
||||
double current = getCurrentEnergy(itemStack);
|
||||
double requesteddME = ElectricConversions.museEnergyFromRF(energy);
|
||||
double takenME = drainEnergyFrom(itemStack, requesteddME);
|
||||
if (simulate) {
|
||||
setCurrentEnergy(itemStack, current);
|
||||
}
|
||||
return ElectricConversions.museEnergyToRF(takenME);
|
||||
}
|
||||
|
||||
public double getTransferLimit(final ItemStack itemStack) {
|
||||
return MuseElectricItem.getInstance().getTransferLimit(itemStack);
|
||||
@Override
|
||||
public int getEnergyStored(ItemStack itemStack) {
|
||||
return ElectricConversions.museEnergyToRF(getCurrentEnergy(itemStack));
|
||||
}
|
||||
|
||||
public double charge(final ItemStack itemStack, final double amount, final int tier, final boolean ignoreTransferLimit, final boolean simulate) {
|
||||
return MuseElectricItem.getInstance().charge(itemStack, amount, tier, ignoreTransferLimit, simulate);
|
||||
}
|
||||
|
||||
public double discharge(final ItemStack itemStack, final double amount, final int tier, final boolean ignoreTransferLimit, final boolean externally, final boolean simulate) {
|
||||
return MuseElectricItem.getInstance().discharge(itemStack, amount, tier, ignoreTransferLimit, externally, simulate);
|
||||
}
|
||||
|
||||
public boolean canUse(final ItemStack itemStack, final double amount) {
|
||||
return MuseElectricItem.getInstance().canUse(itemStack, amount);
|
||||
}
|
||||
|
||||
public Item getChargedItem(final ItemStack itemStack) {
|
||||
return MuseElectricItem.getInstance().getChargedItem(itemStack);
|
||||
}
|
||||
|
||||
public Item getEmptyItem(final ItemStack itemStack) {
|
||||
return MuseElectricItem.getInstance().getEmptyItem(itemStack);
|
||||
}
|
||||
|
||||
public int receiveEnergy(final ItemStack stack, final int energy, final boolean simulate) {
|
||||
return MuseElectricItem.getInstance().receiveEnergy(stack, energy, simulate);
|
||||
}
|
||||
|
||||
public int extractEnergy(final ItemStack stack, final int energy, final boolean simulate) {
|
||||
return MuseElectricItem.getInstance().extractEnergy(stack, energy, simulate);
|
||||
}
|
||||
|
||||
public int getEnergyStored(final ItemStack theItem) {
|
||||
return MuseElectricItem.getInstance().getEnergyStored(theItem);
|
||||
}
|
||||
|
||||
public int getMaxEnergyStored(final ItemStack theItem) {
|
||||
return MuseElectricItem.getInstance().getMaxEnergyStored(theItem);
|
||||
}
|
||||
|
||||
public int getMaxDamage(final ItemStack itemStack) {
|
||||
return MuseElectricItem.getInstance().getMaxDamage(itemStack);
|
||||
@Override
|
||||
public int getMaxEnergyStored(ItemStack itemStack) {
|
||||
return ElectricConversions.museEnergyToRF(getMaxEnergy(itemStack));
|
||||
}
|
||||
|
||||
/* Applied Energistics 2 ---------------------------------------------------------------------- */
|
||||
public double injectAEPower(final ItemStack stack, final double ae) {
|
||||
return MuseElectricItem.getInstance().injectAEPower(stack, ae);
|
||||
@Override
|
||||
public double injectAEPower(ItemStack itemStack, double ae) {
|
||||
double current = getCurrentEnergy(itemStack);
|
||||
double recieved = ElectricConversions.museEnergyFromAE(ae);
|
||||
setCurrentEnergy(itemStack, current);
|
||||
return ElectricConversions.museEnergyToAE(recieved);
|
||||
}
|
||||
|
||||
public double extractAEPower(final ItemStack stack, final double ae) {
|
||||
return MuseElectricItem.getInstance().extractAEPower(stack, ae);
|
||||
@Override
|
||||
public double extractAEPower(ItemStack itemStack, double ae) {
|
||||
double current = getCurrentEnergy(itemStack);
|
||||
double taken = ElectricConversions.museEnergyFromAE(ae);
|
||||
setCurrentEnergy(itemStack, current);
|
||||
return ElectricConversions.museEnergyToAE(taken);
|
||||
}
|
||||
|
||||
public double getAEMaxPower(final ItemStack stack) {
|
||||
return MuseElectricItem.getInstance().getAEMaxPower(stack);
|
||||
@Override
|
||||
public double getAEMaxPower(ItemStack itemStack) {
|
||||
return ElectricConversions.museEnergyToAE(getCurrentEnergy(itemStack));
|
||||
}
|
||||
|
||||
public double getAECurrentPower(final ItemStack stack) {
|
||||
return MuseElectricItem.getInstance().getAECurrentPower(stack);
|
||||
@Override
|
||||
public double getAECurrentPower(ItemStack itemStack) {
|
||||
return ElectricConversions.museEnergyToAE(getCurrentEnergy(itemStack));
|
||||
}
|
||||
|
||||
public AccessRestriction getPowerFlow(final ItemStack stack) {
|
||||
return MuseElectricItem.getInstance().getPowerFlow(stack);
|
||||
@Override
|
||||
public AccessRestriction getPowerFlow(ItemStack itemStack) {
|
||||
return AccessRestriction.READ_WRITE;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -44,6 +44,7 @@ public class ItemPowerArmorHelmet extends ItemPowerArmor implements
|
|||
itemIcon = iconRegister.registerIcon(iconpath);
|
||||
}
|
||||
|
||||
@Optional.Method(modid = "Thaumcraft")
|
||||
@Override
|
||||
public boolean showIngamePopups(ItemStack itemStack, EntityLivingBase entityLivingBase) {
|
||||
return ModuleManager.itemHasActiveModule(itemStack, ThaumGogglesModule.MODULE_THAUM_GOGGLES);
|
||||
|
|
|
@ -2,13 +2,23 @@ package net.machinemuse.powersuits.item;
|
|||
|
||||
import appeng.api.config.AccessRestriction;
|
||||
import com.google.common.collect.Sets;
|
||||
import cpw.mods.fml.common.Optional;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import ic2.api.item.ElectricItem;
|
||||
import ic2.api.item.IElectricItemManager;
|
||||
import net.machinemuse.api.ModuleManager;
|
||||
import net.machinemuse.api.electricity.ElectricConversions;
|
||||
import net.machinemuse.api.electricity.IMuseElectricItem;
|
||||
import net.machinemuse.api.electricity.MuseElectricItem;
|
||||
import net.machinemuse.numina.geometry.Colour;
|
||||
import net.machinemuse.powersuits.powermodule.misc.CosmeticGlowModule;
|
||||
import net.machinemuse.powersuits.powermodule.misc.TintModule;
|
||||
import net.machinemuse.utils.ElectricItemUtils;
|
||||
import net.machinemuse.utils.MuseCommonStrings;
|
||||
import net.machinemuse.utils.MuseItemUtils;
|
||||
import net.machinemuse.utils.MuseStringUtils;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Blocks;
|
||||
|
@ -16,12 +26,23 @@ import net.minecraft.item.Item;
|
|||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.ItemTool;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import static net.machinemuse.numina.general.MuseMathUtils.clampDouble;
|
||||
|
||||
/**
|
||||
* Ported to Java by lehjr on 11/4/16.
|
||||
*/
|
||||
|
||||
|
||||
@Optional.InterfaceList({
|
||||
@Optional.Interface(iface = "cofh.api.energy.IEnergyContainerItem", modid = "CoFHAPI|energy", striprefs = true),
|
||||
@Optional.Interface(iface = "ic2.api.item.IElectricItemManager", modid = "IC2", striprefs = true),
|
||||
@Optional.Interface(iface = "ic2.api.item.ISpecialElectricItem", modid = "IC2", striprefs = true),
|
||||
@Optional.Interface(iface = "appeng.api.implementations.items.IAEItemPowerStorage", modid = "appliedenergistics2", striprefs = true)
|
||||
})
|
||||
public class MPSItemElectricTool extends ItemTool implements IModularItemBase, IMuseElectricItem {
|
||||
public static final Set<Block> blocksEffectiveOn = Sets.newHashSet(Blocks.cobblestone, Blocks.double_stone_slab, Blocks.stone_slab, Blocks.stone, Blocks.sandstone, Blocks.mossy_cobblestone,
|
||||
Blocks.iron_ore, Blocks.iron_block, Blocks.coal_ore, Blocks.gold_block, Blocks.gold_ore, Blocks.diamond_ore,
|
||||
|
@ -33,194 +54,320 @@ public class MPSItemElectricTool extends ItemTool implements IModularItemBase, I
|
|||
super(damageBonus, material, blocksEffectiveOn);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getToolTip(ItemStack itemStack) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getCurrentEnergy(ItemStack stack) {
|
||||
return MuseElectricItem.getInstance().getCurrentEnergy(stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getMaxEnergy(ItemStack stack) {
|
||||
return MuseElectricItem.getInstance().getMaxEnergy(stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCurrentEnergy(ItemStack stack, double energy) {
|
||||
MuseElectricItem.getInstance().setCurrentEnergy(stack, energy);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double drainEnergyFrom(ItemStack stack, double requested) {
|
||||
return MuseElectricItem.getInstance().drainEnergyFrom(stack, requested);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double giveEnergyTo(ItemStack stack, double provided) {
|
||||
return MuseElectricItem.getInstance().giveEnergyTo(stack, provided);
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List currentTipList, boolean advancedToolTips) {
|
||||
ModularItemBase.getInstance().addInformation(stack, player, currentTipList, advancedToolTips);
|
||||
}
|
||||
|
||||
/* Industrialcraft 2 -------------------------------------------------------------------------- */
|
||||
@Override
|
||||
public IElectricItemManager getManager(ItemStack stack) {
|
||||
return MuseElectricItem.getInstance().getManager(stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void chargeFromArmor(ItemStack itemStack, EntityLivingBase entity) {
|
||||
MuseElectricItem.getInstance().chargeFromArmor(itemStack, entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean use(ItemStack itemStack, double amount, EntityLivingBase entity) {
|
||||
return MuseElectricItem.getInstance().use(itemStack, amount, entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canProvideEnergy(ItemStack itemStack) {
|
||||
return MuseElectricItem.getInstance().canProvideEnergy(itemStack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getCharge(ItemStack itemStack) {
|
||||
return MuseElectricItem.getInstance().getCharge(itemStack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getMaxCharge(ItemStack itemStack) {
|
||||
return MuseElectricItem.getInstance().getMaxCharge(itemStack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getTier(ItemStack itemStack) {
|
||||
return MuseElectricItem.getInstance().getTier(itemStack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getTransferLimit(ItemStack itemStack) {
|
||||
return MuseElectricItem.getInstance().getTransferLimit(itemStack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double charge(ItemStack itemStack, double amount, int tier, boolean ignoreTransferLimit, boolean simulate) {
|
||||
return MuseElectricItem.getInstance().charge(itemStack, amount, tier, ignoreTransferLimit, simulate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double discharge(ItemStack itemStack, double amount, int tier, boolean ignoreTransferLimit, boolean externally, boolean simulate) {
|
||||
return MuseElectricItem.getInstance().discharge(itemStack, amount, tier, ignoreTransferLimit, externally, simulate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canUse(ItemStack itemStack, double amount) {
|
||||
return MuseElectricItem.getInstance().canUse(itemStack, amount);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getChargedItem(ItemStack itemStack) {
|
||||
return MuseElectricItem.getInstance().getChargedItem(itemStack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getEmptyItem(ItemStack itemStack) {
|
||||
return MuseElectricItem.getInstance().getEmptyItem(itemStack);
|
||||
}
|
||||
|
||||
/* Thermal Expansion -------------------------------------------------------------------------- */
|
||||
@Override
|
||||
public int receiveEnergy(ItemStack stack, int energy, boolean simulate) {
|
||||
return MuseElectricItem.getInstance().receiveEnergy(stack, energy, simulate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int extractEnergy(ItemStack stack, int energy, boolean simulate) {
|
||||
return MuseElectricItem.getInstance().extractEnergy(stack, energy, simulate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEnergyStored(ItemStack theItem) {
|
||||
return MuseElectricItem.getInstance().getEnergyStored(theItem);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxEnergyStored(ItemStack theItem) {
|
||||
return MuseElectricItem.getInstance().getMaxEnergyStored(theItem);
|
||||
}
|
||||
|
||||
/* Applied Energistics 2 ---------------------------------------------------------------------- */
|
||||
@Override
|
||||
public double injectAEPower(ItemStack stack, double ae) {
|
||||
return MuseElectricItem.getInstance().injectAEPower(stack, ae);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double extractAEPower(ItemStack stack, double ae) {
|
||||
return MuseElectricItem.getInstance().extractAEPower(stack, ae);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getAEMaxPower(ItemStack stack) {
|
||||
return MuseElectricItem.getInstance().getAEMaxPower(stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getAECurrentPower(ItemStack stack) {
|
||||
return MuseElectricItem.getInstance().getAECurrentPower(stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AccessRestriction getPowerFlow(ItemStack stack) {
|
||||
return MuseElectricItem.getInstance().getPowerFlow(stack);
|
||||
}
|
||||
|
||||
/* IModularItemBase ------------------------------------------------------------------------------ */
|
||||
@Override
|
||||
public Colour getGlowFromItemStack(ItemStack stack) {
|
||||
return ModularItemBase.getInstance().getGlowFromItemStack(stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Colour getColorFromItemStack(ItemStack stack) {
|
||||
return ModularItemBase.getInstance().getColorFromItemStack(stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String formatInfo(String string, double value) {
|
||||
return ModularItemBase.getInstance().formatInfo(string, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getLongInfo(EntityPlayer player, ItemStack stack) {
|
||||
return ModularItemBase.getInstance().getLongInfo(player, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getArmorDouble(EntityPlayer player, ItemStack stack) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* MPSItemElectricTool ------------------------------------------------------------------------ */
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public int getColorFromItemStack(ItemStack itemStack, int par2) {
|
||||
return getColorFromItemStack(itemStack).getInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Colour getGlowFromItemStack(ItemStack itemStack) {
|
||||
if (!ModuleManager.itemHasActiveModule(itemStack, CosmeticGlowModule.MODULE_GLOW)) {
|
||||
return Colour.LIGHTBLUE;
|
||||
}
|
||||
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 itemStack) {
|
||||
if (!ModuleManager.itemHasActiveModule(itemStack, TintModule.MODULE_TINT)) {
|
||||
return Colour.WHITE;
|
||||
}
|
||||
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 boolean requiresMultipleRenderPasses() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public void addInformation(ItemStack itemStack, EntityPlayer player, List currentTipList, boolean advancedToolTips) {
|
||||
MuseCommonStrings.addInformation(itemStack, player, currentTipList, advancedToolTips);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String formatInfo(String string, double value) {
|
||||
return string + '\t' + MuseStringUtils.formatNumberShort(value);
|
||||
}
|
||||
|
||||
|
||||
/* IModularItem ------------------------------------------------------------------------------- */
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public List<String> getLongInfo(EntityPlayer player, ItemStack itemStack) {
|
||||
List<String> info = new ArrayList<>();
|
||||
|
||||
info.add("Detailed Summary");
|
||||
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 getPlayerEnergy(EntityPlayer player) {
|
||||
return 0;
|
||||
return ElectricItemUtils.getPlayerEnergy(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drainPlayerEnergy(EntityPlayer player, double drainEnergy) {
|
||||
|
||||
ElectricItemUtils.drainPlayerEnergy(player, drainEnergy);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void givePlayerEnergy(EntityPlayer player, double joulesToGive) {
|
||||
ElectricItemUtils.givePlayerEnergy(player, joulesToGive);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxDamage(ItemStack itemStack) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public String getToolTip(ItemStack itemStack) {
|
||||
return itemStack.getTooltip(Minecraft.getMinecraft().thePlayer, false).toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Call to get the energy of an item
|
||||
*
|
||||
* @param stack ItemStack to set
|
||||
* @return Current energy level
|
||||
*/
|
||||
@Override
|
||||
public double getCurrentEnergy(ItemStack stack) {
|
||||
return MuseItemUtils.getDoubleOrZero(stack, ElectricItemUtils.CURRENT_ENERGY);
|
||||
}
|
||||
|
||||
/**
|
||||
* Call to set the energy of an item
|
||||
*
|
||||
* @param stack ItemStack to set
|
||||
* @return Maximum energy level
|
||||
*/
|
||||
@Override
|
||||
public double getMaxEnergy(ItemStack stack) {
|
||||
return ModuleManager.computeModularProperty(stack, ElectricItemUtils.MAXIMUM_ENERGY);
|
||||
}
|
||||
|
||||
/**
|
||||
* Call to set the energy of an item
|
||||
*
|
||||
* @param stack ItemStack to set
|
||||
* @param energy Level to set it to
|
||||
*/
|
||||
@Override
|
||||
public void setCurrentEnergy(ItemStack stack, double energy) {
|
||||
MuseItemUtils.setDoubleOrRemove(stack, ElectricItemUtils.CURRENT_ENERGY, Math.min(energy, getMaxEnergy(stack)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Call to drain energy from an item
|
||||
*
|
||||
* @param stack ItemStack being requested for energy
|
||||
* @param requested Amount of energy to drain
|
||||
* @return Amount of energy successfully drained
|
||||
*/
|
||||
@Override
|
||||
public double drainEnergyFrom(ItemStack stack, double requested) {
|
||||
double available = getCurrentEnergy(stack);
|
||||
if (available > requested) {
|
||||
setCurrentEnergy(stack, available - requested);
|
||||
return requested;
|
||||
} else {
|
||||
setCurrentEnergy(stack, 0);
|
||||
return available;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Call to give energy to an item
|
||||
*
|
||||
* @param stack ItemStack being provided with energy
|
||||
* @param provided Amount of energy to add
|
||||
* @return Amount of energy added
|
||||
*/
|
||||
@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;
|
||||
} else {
|
||||
setCurrentEnergy(stack, max);
|
||||
return max - available;
|
||||
}
|
||||
}
|
||||
|
||||
/* Industrialcraft 2 -------------------------------------------------------------------------- */
|
||||
@Optional.Method(modid = "IC2")
|
||||
@Override
|
||||
public boolean canProvideEnergy(ItemStack itemStack) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Optional.Method(modid = "IC2")
|
||||
@Override
|
||||
public Item getChargedItem(ItemStack itemStack) {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Optional.Method(modid = "IC2")
|
||||
@Override
|
||||
public Item getEmptyItem(ItemStack itemStack) {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Optional.Method(modid = "IC2")
|
||||
@Override
|
||||
public double getMaxCharge(ItemStack itemStack) {
|
||||
return ElectricConversions.museEnergyToEU(getMaxEnergy(itemStack));
|
||||
}
|
||||
|
||||
@Optional.Method(modid = "IC2")
|
||||
@Override
|
||||
public int getTier(ItemStack itemStack) {
|
||||
return ElectricConversions.getTier(itemStack);
|
||||
}
|
||||
|
||||
@Optional.Method(modid = "IC2")
|
||||
@Override
|
||||
public double getTransferLimit(ItemStack itemStack) {
|
||||
return ElectricConversions.museEnergyToEU(Math.sqrt(getMaxEnergy(itemStack)));
|
||||
}
|
||||
|
||||
@Optional.Method(modid = "IC2")
|
||||
@Override
|
||||
public double charge(ItemStack itemStack, double amount, int tier, boolean ignoreTransferLimit, boolean simulate){
|
||||
double current = getCurrentEnergy(itemStack);
|
||||
double transfer = (ignoreTransferLimit || amount < getTransferLimit(itemStack)) ? ElectricConversions.museEnergyFromEU(amount) : getTransferLimit(itemStack);
|
||||
double given = giveEnergyTo(itemStack, transfer);
|
||||
if (simulate) {
|
||||
setCurrentEnergy(itemStack, current);
|
||||
}
|
||||
return ElectricConversions.museEnergyToEU(given);
|
||||
}
|
||||
|
||||
@Optional.Method(modid = "IC2")
|
||||
@Override
|
||||
public double discharge(ItemStack itemStack, double amount, int tier, boolean ignoreTransferLimit, boolean externally, boolean simulate) {
|
||||
double current = getCurrentEnergy(itemStack);
|
||||
double transfer = (ignoreTransferLimit || amount < getTransferLimit(itemStack)) ? ElectricConversions.museEnergyFromEU(amount) : getTransferLimit(itemStack);
|
||||
double taken = drainEnergyFrom(itemStack, transfer);
|
||||
if (simulate) {
|
||||
setCurrentEnergy(itemStack, current);
|
||||
}
|
||||
return ElectricConversions.museEnergyToEU(taken);
|
||||
}
|
||||
|
||||
@Optional.Method(modid = "IC2")
|
||||
@Override
|
||||
public double getCharge(ItemStack itemStack) {
|
||||
return ElectricConversions.museEnergyToEU(getCurrentEnergy(itemStack));
|
||||
}
|
||||
|
||||
@Optional.Method(modid = "IC2")
|
||||
@Override
|
||||
public boolean canUse(ItemStack itemStack, double amount) {
|
||||
return ElectricConversions.museEnergyFromEU(amount) < getCurrentEnergy(itemStack);
|
||||
}
|
||||
|
||||
@Optional.Method(modid = "IC2")
|
||||
@Override
|
||||
public boolean use(ItemStack itemStack, double amount, EntityLivingBase entity) {
|
||||
return ElectricItem.rawManager.use(itemStack, ElectricConversions.museEnergyToEU(amount), entity);
|
||||
}
|
||||
|
||||
@Optional.Method(modid = "IC2")
|
||||
@Override
|
||||
public void chargeFromArmor(ItemStack itemStack, EntityLivingBase entity) {
|
||||
ElectricItem.rawManager.chargeFromArmor(itemStack, entity);
|
||||
}
|
||||
|
||||
@Optional.Method(modid = "IC2")
|
||||
@Override
|
||||
public IElectricItemManager getManager(ItemStack itemStack) {
|
||||
return this;
|
||||
}
|
||||
|
||||
/* Thermal Expansion -------------------------------------------------------------------------- */
|
||||
@Override
|
||||
public int receiveEnergy(ItemStack itemStack, int energy, boolean simulate) {
|
||||
double current = getCurrentEnergy(itemStack);
|
||||
double receivedME = ElectricConversions.museEnergyFromRF(energy);
|
||||
double eatenME = giveEnergyTo(itemStack, receivedME);
|
||||
if (simulate) setCurrentEnergy(itemStack, current);
|
||||
return ElectricConversions.museEnergyToRF(eatenME);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int extractEnergy(ItemStack itemStack, int energy, boolean simulate) {
|
||||
double current = getCurrentEnergy(itemStack);
|
||||
double requesteddME = ElectricConversions.museEnergyFromRF(energy);
|
||||
double takenME = drainEnergyFrom(itemStack, requesteddME);
|
||||
if (simulate) {
|
||||
setCurrentEnergy(itemStack, current);
|
||||
}
|
||||
return ElectricConversions.museEnergyToRF(takenME);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEnergyStored(ItemStack itemStack) {
|
||||
return ElectricConversions.museEnergyToRF(getCurrentEnergy(itemStack));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxEnergyStored(ItemStack itemStack) {
|
||||
return ElectricConversions.museEnergyToRF(getMaxEnergy(itemStack));
|
||||
}
|
||||
|
||||
/* Applied Energistics 2 ---------------------------------------------------------------------- */
|
||||
@Override
|
||||
public double injectAEPower(ItemStack itemStack, double ae) {
|
||||
double current = getCurrentEnergy(itemStack);
|
||||
double recieved = ElectricConversions.museEnergyFromAE(ae);
|
||||
setCurrentEnergy(itemStack, current);
|
||||
return ElectricConversions.museEnergyToAE(recieved);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double extractAEPower(ItemStack itemStack, double ae) {
|
||||
double current = getCurrentEnergy(itemStack);
|
||||
double taken = ElectricConversions.museEnergyFromAE(ae);
|
||||
setCurrentEnergy(itemStack, current);
|
||||
return ElectricConversions.museEnergyToAE(taken);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getAEMaxPower(ItemStack itemStack) {
|
||||
return ElectricConversions.museEnergyToAE(getCurrentEnergy(itemStack));
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getAECurrentPower(ItemStack itemStack) {
|
||||
return ElectricConversions.museEnergyToAE(getCurrentEnergy(itemStack));
|
||||
}
|
||||
|
||||
@Override
|
||||
public AccessRestriction getPowerFlow(ItemStack itemStack) {
|
||||
return AccessRestriction.READ_WRITE;
|
||||
}
|
||||
}
|
|
@ -1,130 +0,0 @@
|
|||
//package net.machinemuse.powersuits.item;
|
||||
//
|
||||
//import net.machinemuse.api.ModuleManager;
|
||||
//import net.machinemuse.api.moduletrigger.IRightClickModule;
|
||||
//import net.machinemuse.numina.item.NuminaItemUtils;
|
||||
//import net.machinemuse.numina.network.MusePacketModeChangeRequest;
|
||||
//import net.machinemuse.numina.network.PacketSender;
|
||||
//import net.minecraft.entity.player.EntityPlayer;
|
||||
//import net.minecraft.item.ItemStack;
|
||||
//import net.minecraft.util.IIcon;
|
||||
//
|
||||
//import java.util.ArrayList;
|
||||
//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 class ModeChangingModularItem implements IModeChangingModularItem {
|
||||
// private static ModeChangingModularItem ourInstance = new ModeChangingModularItem();
|
||||
//
|
||||
// public static ModeChangingModularItem getInstance() {
|
||||
// return ourInstance;
|
||||
// }
|
||||
//
|
||||
// private ModeChangingModularItem() {
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// 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;
|
||||
// }
|
||||
//
|
||||
//
|
||||
// private int clampMode(int selection, int modesSize) {
|
||||
// if (selection > 0) {
|
||||
// return selection % modesSize;
|
||||
// } else {
|
||||
// return (selection + modesSize * (-selection)) % modesSize;
|
||||
// }
|
||||
// }
|
||||
////-------------
|
||||
//
|
||||
//
|
||||
// @Override
|
||||
// public List<String> getValidModes(ItemStack stack, EntityPlayer player) {
|
||||
// return getValidModes(stack);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// 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 {
|
||||
// List<String> validModes = getValidModes(itemStack);
|
||||
// if (!validModes.isEmpty()) {
|
||||
// return validModes.get(0);
|
||||
// } else {
|
||||
// return "";
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//}
|
|
@ -1,273 +0,0 @@
|
|||
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.MuseElectricItem;
|
||||
import net.machinemuse.numina.geometry.Colour;
|
||||
import net.machinemuse.powersuits.powermodule.misc.CosmeticGlowModule;
|
||||
import net.machinemuse.powersuits.powermodule.misc.TintModule;
|
||||
import net.machinemuse.utils.ElectricItemUtils;
|
||||
import net.machinemuse.utils.MuseCommonStrings;
|
||||
import net.machinemuse.utils.MuseStringUtils;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static net.machinemuse.numina.general.MuseMathUtils.clampDouble;
|
||||
|
||||
/**
|
||||
* Author: MachineMuse (Claire Semple)
|
||||
* Created: 7:49 PM, 4/23/13
|
||||
*
|
||||
* Ported to Java by lehjr on 11/4/16.
|
||||
*/
|
||||
public class ModularItemBase extends Item implements IModularItemBase {
|
||||
private static ModularItemBase INSTANCE;
|
||||
|
||||
public static ModularItemBase getInstance() {
|
||||
if (INSTANCE == null) {
|
||||
INSTANCE = new ModularItemBase();
|
||||
}
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public int getColorFromItemStack(ItemStack itemStack, int par2) {
|
||||
return getColorFromItemStack(itemStack).getInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Colour getGlowFromItemStack(ItemStack itemStack) {
|
||||
if (!ModuleManager.itemHasActiveModule(itemStack, CosmeticGlowModule.MODULE_GLOW)) {
|
||||
return Colour.LIGHTBLUE;
|
||||
}
|
||||
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 itemStack) {
|
||||
if (!ModuleManager.itemHasActiveModule(itemStack, TintModule.MODULE_TINT)) {
|
||||
return Colour.WHITE;
|
||||
}
|
||||
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 boolean requiresMultipleRenderPasses() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack itemStack, EntityPlayer player, List currentTipList, boolean advancedToolTips) {
|
||||
MuseCommonStrings.addInformation(itemStack, player, currentTipList, advancedToolTips);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String formatInfo(String string, double value) {
|
||||
return string + '\t' + MuseStringUtils.formatNumberShort(value);
|
||||
}
|
||||
|
||||
|
||||
/* IModularItem ------------------------------------------------------------------------------- */
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public List<String> getLongInfo(EntityPlayer player, ItemStack itemStack) {
|
||||
List<String> info = new ArrayList<>();
|
||||
|
||||
info.add("Detailed Summary");
|
||||
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 itemStack) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getPlayerEnergy(EntityPlayer player) {
|
||||
return ElectricItemUtils.getPlayerEnergy(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drainPlayerEnergy(EntityPlayer player, double drainEnergy) {
|
||||
ElectricItemUtils.drainPlayerEnergy(player, drainEnergy);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void givePlayerEnergy(EntityPlayer player, double joulesToGive) {
|
||||
ElectricItemUtils.givePlayerEnergy(player, joulesToGive);
|
||||
}
|
||||
|
||||
|
||||
/* MuseElectricItem --------------------------------------------------------------------------- */
|
||||
@Override
|
||||
public double getCurrentEnergy(ItemStack itemStack) {
|
||||
return MuseElectricItem.getInstance().getCurrentEnergy(itemStack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getMaxEnergy(ItemStack itemStack) {
|
||||
return MuseElectricItem.getInstance().getCurrentEnergy(itemStack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCurrentEnergy(ItemStack itemStack, double energy) {
|
||||
MuseElectricItem.getInstance().setCurrentEnergy(itemStack, energy);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double drainEnergyFrom(ItemStack itemStack, double requested) {
|
||||
return MuseElectricItem.getInstance().drainEnergyFrom(itemStack, requested);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double giveEnergyTo(ItemStack itemStack, double provided) {
|
||||
return MuseElectricItem.getInstance().giveEnergyTo(itemStack, provided);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxDamage(ItemStack itemStack) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public String getToolTip(ItemStack itemStack) {
|
||||
return itemStack.getTooltip(Minecraft.getMinecraft().thePlayer, false).toString();
|
||||
}
|
||||
|
||||
|
||||
/* Industrialcraft 2 -------------------------------------------------------------------------- */
|
||||
@Override
|
||||
public boolean canProvideEnergy(ItemStack itemStack) {
|
||||
return MuseElectricItem.getInstance().canProvideEnergy(itemStack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getChargedItem(ItemStack itemStack) {
|
||||
return MuseElectricItem.getInstance().getChargedItem(itemStack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getEmptyItem(ItemStack itemStack) {
|
||||
return MuseElectricItem.getInstance().getEmptyItem(itemStack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getMaxCharge(ItemStack itemStack) {
|
||||
return MuseElectricItem.getInstance().getMaxCharge(itemStack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getTier(ItemStack itemStack) {
|
||||
return MuseElectricItem.getInstance().getTier(itemStack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getTransferLimit(ItemStack itemStack) {
|
||||
return MuseElectricItem.getInstance().getTransferLimit(itemStack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double charge(ItemStack itemStack, double amount, int tier, boolean ignoreTransferLimit, boolean simulate) {
|
||||
return MuseElectricItem.getInstance().charge(itemStack, amount, tier, ignoreTransferLimit, simulate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double discharge(ItemStack itemStack, double amount, int tier, boolean ignoreTransferLimit, boolean externally, boolean simulate) {
|
||||
return MuseElectricItem.getInstance().discharge(itemStack, amount, tier, ignoreTransferLimit, externally, simulate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public 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 boolean use(ItemStack itemStack, double amount, EntityLivingBase entity) {
|
||||
return MuseElectricItem.getInstance().use(itemStack, amount, entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
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 itemStack, int energy, boolean simulate) {
|
||||
return MuseElectricItem.getInstance().receiveEnergy(itemStack, energy, simulate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int extractEnergy(ItemStack itemStack, int energy, boolean simulate) {
|
||||
return MuseElectricItem.getInstance().extractEnergy(itemStack, energy, simulate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEnergyStored(ItemStack itemStack) {
|
||||
return MuseElectricItem.getInstance().getEnergyStored(itemStack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxEnergyStored(ItemStack itemStack) {
|
||||
return MuseElectricItem.getInstance().getMaxEnergyStored(itemStack);
|
||||
}
|
||||
|
||||
|
||||
/* Applied Energistics 2 ---------------------------------------------------------------------- */
|
||||
@Override
|
||||
public double injectAEPower(ItemStack itemStack, double ae) {
|
||||
return MuseElectricItem.getInstance().injectAEPower(itemStack, ae);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double extractAEPower(ItemStack itemStack, double ae) {
|
||||
return MuseElectricItem.getInstance().extractAEPower(itemStack, ae);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getAEMaxPower(ItemStack itemStack) {
|
||||
return MuseElectricItem.getInstance().getAEMaxPower(itemStack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getAECurrentPower(ItemStack itemStack) {
|
||||
return MuseElectricItem.getInstance().getAECurrentPower(itemStack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AccessRestriction getPowerFlow(ItemStack itemStack) {
|
||||
return MuseElectricItem.getInstance().getPowerFlow(itemStack);
|
||||
}
|
||||
}
|
|
@ -27,7 +27,8 @@
|
|||
"Thaumcraft",
|
||||
"GalacticraftCore",
|
||||
"numina",
|
||||
"chisel"
|
||||
"chisel",
|
||||
"ae2wct"
|
||||
],
|
||||
"useDependencyInformation": true
|
||||
|
||||
|
|
Loading…
Reference in a new issue