fixed optional methods, removed part of IC2 support due to problems with interface stripping
This commit is contained in:
parent
f79fe7d0dd
commit
15cedbace4
|
@ -1,5 +1,6 @@
|
|||
package net.machinemuse.api
|
||||
|
||||
import cpw.mods.fml.common.Optional
|
||||
import net.minecraft.entity.player.EntityPlayer
|
||||
import net.minecraft.item.{ItemArmor, ItemStack}
|
||||
import net.machinemuse.utils.ElectricItemUtils
|
||||
|
@ -18,7 +19,10 @@ with ApiaristArmor {
|
|||
|
||||
}
|
||||
|
||||
@Optional.Interface(iface = "forestry.api.apiculture.IArmorApiarist", modid = "Forestry", striprefs = true)
|
||||
trait ApiaristArmor extends IArmorApiarist {
|
||||
|
||||
@Optional.Method(modid = "Forestry")
|
||||
def protectPlayer(player: EntityPlayer, armor: ItemStack, cause: String, doProtect: Boolean): Boolean = {
|
||||
if (ModuleManager.itemHasActiveModule(armor, ApiaristArmorModule.MODULE_APIARIST_ARMOR)) {
|
||||
ElectricItemUtils.drainPlayerEnergy(player, ModuleManager.computeModularProperty(armor, ApiaristArmorModule.APIARIST_ARMOR_ENERGY_CONSUMPTION))
|
||||
|
|
|
@ -1,29 +1,24 @@
|
|||
package net.machinemuse.api.electricity
|
||||
|
||||
import cofh.api.energy.IEnergyContainerItem
|
||||
import ic2.api.item.ElectricItem;
|
||||
import ic2.api.item.IElectricItemManager;
|
||||
import ic2.api.item.ISpecialElectricItem;
|
||||
import ic2.api.item.ElectricItem
|
||||
import ic2.api.item.IElectricItemManager
|
||||
import ic2.api.item.ISpecialElectricItem
|
||||
|
||||
import cpw.mods.fml.common.Optional
|
||||
import net.machinemuse.api.ModuleManager
|
||||
import net.machinemuse.api.electricity.ElectricConversions._
|
||||
import net.machinemuse.utils.{ElectricItemUtils, MuseItemUtils}
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.EntityLivingBase
|
||||
import net.minecraft.item.{Item, ItemStack}
|
||||
|
||||
/**
|
||||
* Author: MachineMuse (Claire Semple)
|
||||
* Created: 10:12 PM, 4/20/13
|
||||
*/
|
||||
@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 = "cofh.api.energy.IEnergyContainerItem", modid = "CoFHCore", striprefs = true)
|
||||
trait MuseElectricItem extends Item
|
||||
with IEnergyContainerItem
|
||||
with ISpecialElectricItem
|
||||
with IElectricItemManager {
|
||||
// ICBM
|
||||
with IEnergyContainerItem {
|
||||
/**
|
||||
* Call to get the energy of an item
|
||||
*
|
||||
|
@ -88,57 +83,6 @@ trait MuseElectricItem extends Item
|
|||
}
|
||||
}
|
||||
|
||||
// IC2
|
||||
def getManager(itemStack: ItemStack) = this
|
||||
|
||||
def chargeFromArmor(itemStack: ItemStack, entity: EntityLivingBase) = ElectricItem.rawManager.chargeFromArmor(itemStack,entity)
|
||||
|
||||
def use(itemStack: ItemStack, amount: Double, entity: EntityLivingBase) = ElectricItem.rawManager.use(itemStack,museEnergyToEU(amount),entity)
|
||||
|
||||
def canProvideEnergy(itemStack: ItemStack): Boolean = true
|
||||
|
||||
def getCharge(itemStack: ItemStack): Double = museEnergyToEU(getCurrentEnergy(itemStack))
|
||||
|
||||
def getMaxCharge(itemStack: ItemStack): Double = museEnergyToEU(getMaxEnergy(itemStack))
|
||||
|
||||
def getTier(itemStack: ItemStack): Int = ElectricConversions.getTier(itemStack)
|
||||
|
||||
def getTransferLimit(itemStack: ItemStack): Double = museEnergyToEU(Math.sqrt(getMaxEnergy(itemStack)))
|
||||
|
||||
def charge(itemStack: ItemStack, amount: Double, tier: Int, ignoreTransferLimit: Boolean, simulate: Boolean): Double = {
|
||||
val current: Double = getCurrentEnergy(itemStack)
|
||||
val transfer = {
|
||||
if (ignoreTransferLimit || amount < getTransferLimit(itemStack))
|
||||
museEnergyFromEU(amount)
|
||||
else
|
||||
getTransferLimit(itemStack)
|
||||
}
|
||||
val given: Double = giveEnergyTo(itemStack, transfer)
|
||||
if (simulate) {
|
||||
setCurrentEnergy(itemStack, current)
|
||||
}
|
||||
museEnergyToEU(given)
|
||||
}
|
||||
|
||||
def discharge(itemStack: ItemStack, amount: Double, tier: Int, ignoreTransferLimit: Boolean, externally: Boolean, simulate: Boolean): Double = {
|
||||
val current: Double = getCurrentEnergy(itemStack)
|
||||
val transfer = {
|
||||
if (ignoreTransferLimit || amount < getTransferLimit(itemStack))
|
||||
museEnergyFromEU(amount)
|
||||
else
|
||||
getTransferLimit(itemStack)
|
||||
}
|
||||
val taken: Double = drainEnergyFrom(itemStack, transfer)
|
||||
if (simulate) {
|
||||
setCurrentEnergy(itemStack, current)
|
||||
}
|
||||
museEnergyToEU(taken)
|
||||
}
|
||||
|
||||
def canUse(itemStack: ItemStack, amount: Double): Boolean = museEnergyFromEU(amount) < getCurrentEnergy(itemStack)
|
||||
|
||||
def getToolTip(itemStack: ItemStack): String = ElectricItem.rawManager.getToolTip(itemStack)
|
||||
|
||||
// TE
|
||||
def receiveEnergy(stack: ItemStack, energy: Int, simulate: Boolean): Int = {
|
||||
val current: Double = getCurrentEnergy(stack)
|
||||
|
@ -164,5 +108,5 @@ trait MuseElectricItem extends Item
|
|||
|
||||
def getMaxEnergyStored(theItem: ItemStack) = museEnergyToRF(getMaxEnergy(theItem)).toInt
|
||||
|
||||
override def getMaxDamage(itemStack:ItemStack) = 0
|
||||
override def getMaxDamage(itemStack: ItemStack) = 0
|
||||
}
|
||||
|
|
|
@ -193,6 +193,7 @@ with ModeChangingModularItem {
|
|||
}
|
||||
}
|
||||
|
||||
@Optional.Method(modid = "Forestry")
|
||||
def getSaplingModifier(stack: ItemStack, world: World, player: EntityPlayer, x: Int, y: Int, z: Int): Float = {
|
||||
if (ModuleManager.itemHasActiveModule(stack, GrafterModule.MODULE_GRAFTER)) {
|
||||
ElectricItemUtils.drainPlayerEnergy(player, ModuleManager.computeModularProperty(stack, GrafterModule.GRAFTER_ENERGY_CONSUMPTION))
|
||||
|
|
Loading…
Reference in a new issue