From 58dcea4f629ae9bbd5cea18b02684f2729b22aa1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Tue, 25 Mar 2014 14:31:17 +0100 Subject: [PATCH 1/2] fixed log spam when ic2 is installed --- .../common/tileentity/traits/power/IndustrialCraft2.scala | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 2bc4d7c49..a04e8ffb8 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 @@ -15,19 +15,19 @@ trait IndustrialCraft2 extends Common with IEnergySink { @Optional.Method(modid = "IC2") override def validate() { super.validate() - if (!addedToPowerGrid) TickHandler.scheduleIC2Add(this) + if (isServer && !addedToPowerGrid) TickHandler.scheduleIC2Add(this) } @Optional.Method(modid = "IC2") override def invalidate() { super.invalidate() - if (addedToPowerGrid) TickHandler.scheduleIC2Remove(this) + if (isServer && addedToPowerGrid) TickHandler.scheduleIC2Remove(this) } @Optional.Method(modid = "IC2") override def onChunkUnload() { super.onChunkUnload() - if (addedToPowerGrid) TickHandler.scheduleIC2Remove(this) + if (isServer && addedToPowerGrid) TickHandler.scheduleIC2Remove(this) } // ----------------------------------------------------------------------- // From b1a41fffc8fe559fc714e77c6c606a2ff8de3de0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Thu, 27 Mar 2014 19:57:48 +0100 Subject: [PATCH 2/2] avoid potential crashes in power logic --- .../tileentity/traits/power/BuildCraft.scala | 9 +++++---- .../traits/power/IndustrialCraft2.scala | 15 +++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) 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 2afc87565..32b48578c 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,20 +1,21 @@ package li.cil.oc.common.tileentity.traits.power import buildcraft.api.power.{PowerHandler, IPowerReceptor} -import cpw.mods.fml.common.Optional -import net.minecraftforge.common.ForgeDirection +import cpw.mods.fml.common.{ModAPIManager, Optional} import li.cil.oc.Settings +import net.minecraftforge.common.ForgeDirection @Optional.Interface(iface = "buildcraft.api.power.IPowerReceptor", modid = "BuildCraftAPI|power") 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 a04e8ffb8..41ab4cf52 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,33 +1,32 @@ 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.server.TickHandler -import net.minecraftforge.common.ForgeDirection import li.cil.oc.Settings +import net.minecraftforge.common.ForgeDirection @Optional.Interface(iface = "ic2.api.energy.tile.IEnergySink", modid = "IC2") 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 (isServer && !addedToPowerGrid) TickHandler.scheduleIC2Add(this) + if (useIndustrialCraft2Power && !addedToPowerGrid) TickHandler.scheduleIC2Add(this) } - @Optional.Method(modid = "IC2") override def invalidate() { super.invalidate() - if (isServer && addedToPowerGrid) TickHandler.scheduleIC2Remove(this) + if (useIndustrialCraft2Power && addedToPowerGrid) TickHandler.scheduleIC2Remove(this) } - @Optional.Method(modid = "IC2") override def onChunkUnload() { super.onChunkUnload() - if (isServer && addedToPowerGrid) TickHandler.scheduleIC2Remove(this) + if (useIndustrialCraft2Power && addedToPowerGrid) TickHandler.scheduleIC2Remove(this) } // ----------------------------------------------------------------------- //