From a8c145e0710a6529f68e3a765a89cacaa41e115a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Fri, 18 Sep 2015 00:04:36 +0200 Subject: [PATCH] Increase "duration" to keep potion effects at to make stuff work that needs time to activate (such as nausea and nightvision), make it instantly stop on disabling instead. Fixed onEnable/onDisable callbacks. --- .../cil/oc/common/nanomachines/ControllerImpl.scala | 1 - .../common/nanomachines/provider/PotionProvider.scala | 11 +++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/main/scala/li/cil/oc/common/nanomachines/ControllerImpl.scala b/src/main/scala/li/cil/oc/common/nanomachines/ControllerImpl.scala index 214014487..240503dfb 100644 --- a/src/main/scala/li/cil/oc/common/nanomachines/ControllerImpl.scala +++ b/src/main/scala/li/cil/oc/common/nanomachines/ControllerImpl.scala @@ -282,7 +282,6 @@ class ControllerImpl(val player: EntityPlayer) extends Controller with WirelessE private def cleanActiveBehaviors(): Unit = { if (activeBehaviorsDirty) { configuration.synchronized(if (activeBehaviorsDirty) { - activeBehaviors.clear() val newBehaviors = configuration.behaviors.filter(_.isActive).map(_.behavior) val addedBehaviors = newBehaviors -- activeBehaviors val removedBehaviors = activeBehaviors -- newBehaviors diff --git a/src/main/scala/li/cil/oc/common/nanomachines/provider/PotionProvider.scala b/src/main/scala/li/cil/oc/common/nanomachines/provider/PotionProvider.scala index 19c998b49..b26db07b3 100644 --- a/src/main/scala/li/cil/oc/common/nanomachines/provider/PotionProvider.scala +++ b/src/main/scala/li/cil/oc/common/nanomachines/provider/PotionProvider.scala @@ -40,7 +40,7 @@ object PotionProvider extends SimpleProvider { } class PotionBehavior(val potion: Potion, player: EntityPlayer) extends SimpleBehavior(player) { - final val RefreshInterval = 40 + final val Duration = 600 def amplifier(player: EntityPlayer) = api.Nanomachines.getController(player).getInputCount(this) - 1 @@ -48,13 +48,12 @@ object PotionProvider extends SimpleProvider { override def onEnable(): Unit = {} - override def onDisable(): Unit = {} + override def onDisable(): Unit = { + player.removePotionEffect(potion.id) + } override def update(): Unit = { - player.getActivePotionEffect(potion) match { - case effect: PotionEffect if effect.getDuration > RefreshInterval / 2 => // Effect still active. - case _ => player.addPotionEffect(new PotionEffect(potion.id, RefreshInterval, amplifier(player))) - } + player.addPotionEffect(new PotionEffect(potion.id, Duration, amplifier(player))) } }