fixed optional methods, removed part of IC2 support due to problems with interface stripping

This commit is contained in:
MachineMuse 2015-08-25 07:23:53 -06:00
parent f79fe7d0dd
commit 15cedbace4
3 changed files with 11 additions and 62 deletions

View file

@ -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))

View file

@ -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
}

View file

@ -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))