From 5446f66f59df8e10d6106c01c4e4c69743b01850 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Sat, 29 Mar 2014 16:51:41 +0100 Subject: [PATCH 1/2] some checks to avoid class loader trying to load cc api when it's not present --- .../li/cil/oc/server/driver/item/FileSystem.scala | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/scala/li/cil/oc/server/driver/item/FileSystem.scala b/src/main/scala/li/cil/oc/server/driver/item/FileSystem.scala index 9209a68f0..570dbce48 100644 --- a/src/main/scala/li/cil/oc/server/driver/item/FileSystem.scala +++ b/src/main/scala/li/cil/oc/server/driver/item/FileSystem.scala @@ -1,5 +1,6 @@ package li.cil.oc.server.driver.item +import cpw.mods.fml.common.Loader import dan200.computercraft.api.media.IMedia import li.cil.oc import li.cil.oc.api.driver.Slot @@ -12,10 +13,12 @@ import net.minecraft.nbt.NBTTagCompound import net.minecraft.tileentity.TileEntity object FileSystem extends Item { - override def worksWith(stack: ItemStack) = isOneOf(stack, Items.hdd1, Items.hdd2, Items.hdd3, Items.floppyDisk) || ComputerCraft.isDisk(stack) + override def worksWith(stack: ItemStack) = + isOneOf(stack, Items.hdd1, Items.hdd2, Items.hdd3, Items.floppyDisk) || + (Loader.isModLoaded("ComputerCraft") && ComputerCraft.isDisk(stack)) override def createEnvironment(stack: ItemStack, container: TileEntity) = - if (ComputerCraft.isDisk(stack) && container != null) { + if (Loader.isModLoaded("ComputerCraft") && ComputerCraft.isDisk(stack) && container != null) { val address = addressFromTag(dataTag(stack)) val mount = ComputerCraft.createDiskMount(stack, container.getWorldObj) Option(oc.api.FileSystem.asManagedEnvironment(mount, new ComputerCraftLabel(stack), container)) match { @@ -24,14 +27,15 @@ object FileSystem extends Item { environment case _ => null } - } else Items.multi.subItem(stack) match { + } + else Items.multi.subItem(stack) match { case Some(hdd: HardDiskDrive) => createEnvironment(stack, hdd.kiloBytes * 1024, container) case Some(disk: FloppyDisk) => createEnvironment(stack, Settings.get.floppySize * 1024, container) case _ => null } override def slot(stack: ItemStack) = - if (ComputerCraft.isDisk(stack)) Slot.Disk + if (Loader.isModLoaded("ComputerCraft") && ComputerCraft.isDisk(stack)) Slot.Disk else Items.multi.subItem(stack) match { case Some(hdd: HardDiskDrive) => Slot.HardDiskDrive case Some(disk: FloppyDisk) => Slot.Disk From 5350d8a62608e708bf4a9b7364dfa1c11af976e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Sat, 29 Mar 2014 16:59:52 +0100 Subject: [PATCH 2/2] fixed charger not recognizing already present redstone signals when placed --- src/main/scala/li/cil/oc/common/tileentity/Charger.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/scala/li/cil/oc/common/tileentity/Charger.scala b/src/main/scala/li/cil/oc/common/tileentity/Charger.scala index 1c62aea21..9a04c32a2 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/Charger.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/Charger.scala @@ -86,8 +86,8 @@ class Charger extends traits.Environment with traits.RedstoneAware with traits.R // ----------------------------------------------------------------------- // - override protected def onRedstoneInputChanged(side: ForgeDirection) { - super.onRedstoneInputChanged(side) + override protected def updateRedstoneInput(side: ForgeDirection) { + super.updateRedstoneInput(side) val signal = math.max(0, math.min(15, ForgeDirection.VALID_DIRECTIONS.map(input).max)) if (invertSignal) chargeSpeed = (15 - signal) / 15.0