From 56ab302f0edfc242e1f405befa215a7281ed2411 Mon Sep 17 00:00:00 2001 From: Calclavia Date: Sun, 26 Jan 2014 20:55:33 +0800 Subject: [PATCH] Finished up large gears! --- .../mechanical/gear/PartGear.java | 39 ++++++++++++++----- .../mechanical/network/MechanicalNetwork.java | 8 ++-- .../mechanical/network/PartMechanical.java | 8 ++-- 3 files changed, 39 insertions(+), 16 deletions(-) diff --git a/src/main/java/resonantinduction/mechanical/gear/PartGear.java b/src/main/java/resonantinduction/mechanical/gear/PartGear.java index e2e0c56e..e64735e6 100644 --- a/src/main/java/resonantinduction/mechanical/gear/PartGear.java +++ b/src/main/java/resonantinduction/mechanical/gear/PartGear.java @@ -69,15 +69,16 @@ public class PartGear extends PartMechanical implements IMechanical, IMultiBlock } getMultiBlock().update(); - super.update(); + + if (getMultiBlock().isPrimary()) + { + super.update(); + } } @Override public boolean activate(EntityPlayer player, MovingObjectPosition hit, ItemStack item) { - if (!world().isRemote) - System.out.println(getNetwork()); - if (BlockAdvanced.isUsableWrench(player, player.getCurrentEquippedItem(), x(), y(), z())) { if (player.isSneaking()) @@ -163,7 +164,6 @@ public class PartGear extends PartMechanical implements IMechanical, IMultiBlock { displaceCheck = 2; } - /** Look for gears outside this block space, the relative UP, DOWN, LEFT, RIGHT */ for (int i = 0; i < 4; i++) { @@ -221,7 +221,12 @@ public class PartGear extends PartMechanical implements IMechanical, IMultiBlock @Override public Object[] getConnections() { - return getMultiBlock().get().connections; + if (!getMultiBlock().isPrimary()) + { + return new Object[6]; + } + + return connections; } @Override @@ -305,10 +310,10 @@ public class PartGear extends PartMechanical implements IMechanical, IMultiBlock @Override public void onMultiBlockChanged() { + tile().notifyPartChange(this); + if (!world().isRemote) { - refresh(); - tile().notifyPartChange(this); sendDescUpdate(); } } @@ -348,6 +353,11 @@ public class PartGear extends PartMechanical implements IMechanical, IMultiBlock @Override public boolean canConnect(ForgeDirection from, Object source) { + if (!getMultiBlock().isPrimary()) + { + return false; + } + if (source instanceof IMechanical) { /** @@ -356,6 +366,14 @@ public class PartGear extends PartMechanical implements IMechanical, IMultiBlock */ if (from == placementSide.getOpposite()) { + if (source instanceof PartGear) + { + if (((PartGear) source).tile() == tile() && !getMultiBlock().isConstructed()) + { + return true; + } + } + TileEntity sourceTile = getPosition().translate(from.getOpposite()).getTileEntity(world()); if (sourceTile instanceof IMechanical) @@ -376,7 +394,6 @@ public class PartGear extends PartMechanical implements IMechanical, IMultiBlock { if (this != destinationPart) { - System.out.println("WORK" + ((PartGear) destinationPart).isCenterMultiBlock()); return ((PartGear) destinationPart).isCenterMultiBlock(); } else @@ -384,6 +401,10 @@ public class PartGear extends PartMechanical implements IMechanical, IMultiBlock return true; } } + else + { + return true; + } } } } diff --git a/src/main/java/resonantinduction/mechanical/network/MechanicalNetwork.java b/src/main/java/resonantinduction/mechanical/network/MechanicalNetwork.java index d9f947aa..7d882755 100644 --- a/src/main/java/resonantinduction/mechanical/network/MechanicalNetwork.java +++ b/src/main/java/resonantinduction/mechanical/network/MechanicalNetwork.java @@ -71,13 +71,13 @@ public class MechanicalNetwork extends Network for (int i = 0; i < connections.length; i++) { ForgeDirection dir = ForgeDirection.getOrientation(i); - Object adacent = connections[i]; + Object adjacent = connections[i]; - if (adacent instanceof IMechanical) + if (adjacent instanceof IMechanical) { - IMechanical adjacentMech = ((IMechanical) adacent).getInstance(dir); + IMechanical adjacentMech = ((IMechanical) adjacent).getInstance(dir.getOpposite()); - if (adjacentMech != null) + if (adjacentMech != null && adjacent != mechanical) { float ratio = adjacentMech.getRatio(dir) / mechanical.getRatio(dir.getOpposite()); long torque = mechanical.getTorque(); diff --git a/src/main/java/resonantinduction/mechanical/network/PartMechanical.java b/src/main/java/resonantinduction/mechanical/network/PartMechanical.java index 6fb737c0..0ca9c4c5 100644 --- a/src/main/java/resonantinduction/mechanical/network/PartMechanical.java +++ b/src/main/java/resonantinduction/mechanical/network/PartMechanical.java @@ -82,7 +82,7 @@ public abstract class PartMechanical extends JCuboidPart implements JNormalOcclu markPacketUpdate = true; } - if (!world().isRemote && markPacketUpdate && ticks % 20 == 0) + if (!world().isRemote && markPacketUpdate && ticks % 10 == 0) { sendRotationPacket(); markPacketUpdate = false; @@ -285,7 +285,8 @@ public abstract class PartMechanical extends JCuboidPart implements JNormalOcclu @Override public void setAngularVelocity(float velocity) { - this.angularVelocity = velocity; + if (!world().isRemote) + this.angularVelocity = velocity; } @Override @@ -297,7 +298,8 @@ public abstract class PartMechanical extends JCuboidPart implements JNormalOcclu @Override public void setTorque(long torque) { - this.torque = torque; + if (!world().isRemote) + this.torque = torque; } @Override