From 70f85edf3e01f9e424b8b6fc2787025e1b25dc32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Mon, 1 Jun 2015 21:48:36 +0200 Subject: [PATCH] Dangit Minecraft! *shakes fist* Fixes second issue mentioned in #1193. --- src/main/scala/li/cil/oc/common/item/data/PrintData.scala | 4 ++-- .../li/cil/oc/common/tileentity/traits/RedstoneAware.scala | 2 +- src/main/scala/li/cil/oc/util/ExtendedWorld.scala | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/scala/li/cil/oc/common/item/data/PrintData.scala b/src/main/scala/li/cil/oc/common/item/data/PrintData.scala index 5b915a380..b2272da65 100644 --- a/src/main/scala/li/cil/oc/common/item/data/PrintData.scala +++ b/src/main/scala/li/cil/oc/common/item/data/PrintData.scala @@ -31,7 +31,7 @@ class PrintData extends ItemData { var isBeaconBase = false var lightLevel = 0 - def hasActiveState = stateOn.size > 0 + def hasActiveState = stateOn.nonEmpty def emitLight = lightLevel > 0 @@ -111,7 +111,7 @@ object PrintData { def computeApproximateOpacity(shapes: Iterable[PrintData.Shape]) = { var volume = 1f - if (shapes.size > 0) for (x <- 0 until 16 / stepping; y <- 0 until 16 / stepping; z <- 0 until 16 / stepping) { + if (shapes.nonEmpty) for (x <- 0 until 16 / stepping; y <- 0 until 16 / stepping; z <- 0 until 16 / stepping) { val bounds = AxisAlignedBB.getBoundingBox( x * step, y * step, z * step, (x + 1) * step, (y + 1) * step, (z + 1) * step) diff --git a/src/main/scala/li/cil/oc/common/tileentity/traits/RedstoneAware.scala b/src/main/scala/li/cil/oc/common/tileentity/traits/RedstoneAware.scala index 3ba0f4cd5..b0299dcd9 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/traits/RedstoneAware.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/traits/RedstoneAware.scala @@ -35,7 +35,7 @@ trait RedstoneAware extends RotationAware with IConnectable with IRedstoneEmitte if (value != isOutputEnabled) { _isOutputEnabled = value if (!value) { - for (i <- 0 until _output.length) { + for (i <- _output.indices) { _output(i) = 0 } } diff --git a/src/main/scala/li/cil/oc/util/ExtendedWorld.scala b/src/main/scala/li/cil/oc/util/ExtendedWorld.scala index 42f3a0f9c..7c2006d76 100644 --- a/src/main/scala/li/cil/oc/util/ExtendedWorld.scala +++ b/src/main/scala/li/cil/oc/util/ExtendedWorld.scala @@ -43,7 +43,8 @@ object ExtendedWorld { def getBlockHarvestTool(position: BlockPosition) = getBlock(position).getHarvestTool(getBlockMetadata(position)) - def computeRedstoneSignal(position: BlockPosition, side: ForgeDirection) = math.max(world.isBlockProvidingPowerTo(position.offset(side), side.getOpposite), world.getIndirectPowerLevelTo(position.offset(side), side.getOpposite)) + // Passing `side` instead of `side.getOpposite` is *correct* here, because Minecraft. + def computeRedstoneSignal(position: BlockPosition, side: ForgeDirection) = math.max(world.isBlockProvidingPowerTo(position.offset(side), side), world.getIndirectPowerLevelTo(position.offset(side), side)) def isBlockProvidingPowerTo(position: BlockPosition, side: ForgeDirection) = world.isBlockProvidingPowerTo(position.x, position.y, position.z, side.ordinal)