diff --git a/src/main/scala/li/cil/oc/common/tileentity/traits/power/BuildCraft.scala b/src/main/scala/li/cil/oc/common/tileentity/traits/power/BuildCraft.scala index 3cad4a45d..fec4d973f 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/traits/power/BuildCraft.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/traits/power/BuildCraft.scala @@ -1,7 +1,7 @@ package li.cil.oc.common.tileentity.traits.power import buildcraft.api.power.{PowerHandler, IPowerReceptor} -import cpw.mods.fml.common.Optional +import cpw.mods.fml.common.{ModAPIManager, Optional} import li.cil.oc.Settings import net.minecraftforge.common.util.ForgeDirection @@ -9,12 +9,13 @@ import net.minecraftforge.common.util.ForgeDirection trait BuildCraft extends Common with IPowerReceptor { private var powerHandler: Option[AnyRef] = None + private lazy val useBuildCraftPower = isServer && !Settings.get.ignorePower && ModAPIManager.INSTANCE.hasAPI("BuildCraftAPI|power") + // ----------------------------------------------------------------------- // - @Optional.Method(modid = "BuildCraftAPI|power") override def updateEntity() { super.updateEntity() - if (isServer && !Settings.get.ignorePower && world.getWorldTime % Settings.get.tickFrequency == 0) { + if (useBuildCraftPower && world.getWorldTime % Settings.get.tickFrequency == 0) { for (side <- ForgeDirection.VALID_DIRECTIONS) { val demand = globalBufferSize(side) - globalBuffer(side) if (demand > 1) { diff --git a/src/main/scala/li/cil/oc/common/tileentity/traits/power/IndustrialCraft2.scala b/src/main/scala/li/cil/oc/common/tileentity/traits/power/IndustrialCraft2.scala index ac03f10dd..2a093ccfc 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/traits/power/IndustrialCraft2.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/traits/power/IndustrialCraft2.scala @@ -1,6 +1,6 @@ package li.cil.oc.common.tileentity.traits.power -import cpw.mods.fml.common.Optional +import cpw.mods.fml.common.{Loader, Optional} import ic2.api.energy.tile.IEnergySink import li.cil.oc.common.EventHandler import li.cil.oc.Settings @@ -10,24 +10,23 @@ import net.minecraftforge.common.util.ForgeDirection trait IndustrialCraft2 extends Common with IEnergySink { var addedToPowerGrid = false + private val useIndustrialCraft2Power = isServer && !Settings.get.ignorePower && Loader.isModLoaded("IC2") + // ----------------------------------------------------------------------- // - @Optional.Method(modid = "IC2") override def validate() { super.validate() - if (!addedToPowerGrid) EventHandler.scheduleIC2Add(this) + if (useIndustrialCraft2Power && !addedToPowerGrid) EventHandler.scheduleIC2Add(this) } - @Optional.Method(modid = "IC2") override def invalidate() { super.invalidate() - if (addedToPowerGrid) EventHandler.scheduleIC2Remove(this) + if (useIndustrialCraft2Power && addedToPowerGrid) EventHandler.scheduleIC2Remove(this) } - @Optional.Method(modid = "IC2") override def onChunkUnload() { super.onChunkUnload() - if (addedToPowerGrid) EventHandler.scheduleIC2Remove(this) + if (useIndustrialCraft2Power && addedToPowerGrid) EventHandler.scheduleIC2Remove(this) } // ----------------------------------------------------------------------- //