From a042b71a15909c5ca8720341bee1582e642b3d1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Sun, 23 Mar 2014 11:06:52 +0100 Subject: [PATCH] fixed robots always dropping items forward into the world (even for dropUp and dropDown) --- .../scala/li/cil/oc/common/tileentity/traits/Computer.scala | 2 ++ .../scala/li/cil/oc/common/tileentity/traits/Inventory.scala | 4 ++-- src/main/scala/li/cil/oc/server/component/robot/Player.scala | 2 +- src/main/scala/li/cil/oc/server/component/robot/Robot.scala | 1 - 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/scala/li/cil/oc/common/tileentity/traits/Computer.scala b/src/main/scala/li/cil/oc/common/tileentity/traits/Computer.scala index a46449c17..959113f4b 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/traits/Computer.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/traits/Computer.scala @@ -8,7 +8,9 @@ import li.cil.oc.api.network.{Node, Analyzable} import li.cil.oc.client.Sound import li.cil.oc.common.tileentity.RobotProxy import li.cil.oc.server.driver +import li.cil.oc.server.{PacketSender => ServerPacketSender} import li.cil.oc.Settings +import li.cil.oc.util.ExtendedNBT._ import li.cil.oc.util.mods.Waila import net.minecraft.entity.player.EntityPlayer import net.minecraft.nbt.{NBTTagString, NBTTagCompound} diff --git a/src/main/scala/li/cil/oc/common/tileentity/traits/Inventory.scala b/src/main/scala/li/cil/oc/common/tileentity/traits/Inventory.scala index 72a145468..81bba825b 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/traits/Inventory.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/traits/Inventory.scala @@ -54,11 +54,11 @@ trait Inventory extends TileEntity with inventory.Inventory { val rng = world.rand val (tx, ty, tz) = ( 0.1 * rng.nextGaussian + direction.offsetX * 0.45, - 0.1 * rng.nextGaussian + 0.1, + 0.1 * rng.nextGaussian + direction.offsetY * 0.65 + (direction.offsetX + direction.offsetZ) * 0.1, 0.1 * rng.nextGaussian + direction.offsetZ * 0.45) val entity = new EntityItem(world, x + 0.5 + tx, y + 0.5 + ty, z + 0.5 + tz, stack.copy()) entity.motionX = 0.0125 * rng.nextGaussian + direction.offsetX * 0.03 - entity.motionY = 0.0125 * rng.nextGaussian + 0.03 + entity.motionY = 0.0125 * rng.nextGaussian + direction.offsetY * 0.08 + (direction.offsetX + direction.offsetZ) * 0.03 entity.motionZ = 0.0125 * rng.nextGaussian + direction.offsetZ * 0.03 entity.delayBeforeCanPickup = 15 world.spawnEntityInWorld(entity) diff --git a/src/main/scala/li/cil/oc/server/component/robot/Player.scala b/src/main/scala/li/cil/oc/server/component/robot/Player.scala index a62e4f2ae..a06aaab15 100644 --- a/src/main/scala/li/cil/oc/server/component/robot/Player.scala +++ b/src/main/scala/li/cil/oc/server/component/robot/Player.scala @@ -290,7 +290,7 @@ class Player(val robot: tileentity.Robot) extends EntityPlayer(robot.world, Sett } override def dropPlayerItemWithRandomChoice(stack: ItemStack, inPlace: Boolean) = - robot.spawnStackInWorld(stack, if (inPlace) ForgeDirection.UNKNOWN else robot.facing) + robot.spawnStackInWorld(stack, if (inPlace) ForgeDirection.UNKNOWN else facing) private def callUsingItemInSlot[T](slot: Int, f: (ItemStack) => T, repair: Boolean = true) = { val itemsBefore = adjacentItems diff --git a/src/main/scala/li/cil/oc/server/component/robot/Robot.scala b/src/main/scala/li/cil/oc/server/component/robot/Robot.scala index 3888ce47a..e48d092d2 100644 --- a/src/main/scala/li/cil/oc/server/component/robot/Robot.scala +++ b/src/main/scala/li/cil/oc/server/component/robot/Robot.scala @@ -211,7 +211,6 @@ class Robot(val robot: tileentity.Robot) extends ManagedComponent { return result(true) } } - // TODO Drop into the direction of the call (i.e. down if dropDown). player.dropPlayerItemWithRandomChoice(dropped, inPlace = false) context.pause(Settings.get.dropDelay) result(true)