Fixed gears not connecting to gearshafts

This commit is contained in:
Robert S 2014-06-07 07:03:02 -04:00
parent 9f4c9edf7d
commit 898f471c7a
2 changed files with 36 additions and 28 deletions

View file

@ -170,10 +170,18 @@ public class GearNode extends MechanicalNode
{
INodeProvider parent = ((MechanicalNode) with).getParent();
/** Check for flat connections (gear face on gear face) */
/** Check for flat connections (gear face on gear face) to make sure it's actually on
* this gear block. */
if (from == gear().placementSide.getOpposite())
{
if (parent instanceof PartGear)
if (parent instanceof PartGear || parent instanceof PartGearShaft)
{
if (parent instanceof PartGearShaft)
{
PartGearShaft shaft = (PartGearShaft) parent;
return shaft.tile().partMap(from.getOpposite().ordinal()) == gear() && Math.abs(shaft.placementSide.offsetX) == Math.abs(gear().placementSide.offsetX) && Math.abs(shaft.placementSide.offsetY) == Math.abs(gear().placementSide.offsetY) && Math.abs(shaft.placementSide.offsetZ) == Math.abs(gear().placementSide.offsetZ);
}
else if (parent instanceof PartGear)
{
if (((PartGear) parent).tile() == gear().tile() && !gear().getMultiBlock().isConstructed())
{
@ -186,8 +194,8 @@ public class GearNode extends MechanicalNode
if (part instanceof PartGear)
{
/** Case when we connect gears via edges internally. Large gear attempt
* to connect to small gear. */
/** Case when we connect gears via edges internally. Large gear
* attempt to connect to small gear. */
PartGear sourceGear = (PartGear) part;
if (sourceGear.isCenterMultiBlock() && !sourceGear.getMultiBlock().isPrimary())
@ -212,6 +220,7 @@ public class GearNode extends MechanicalNode
}
}
}
}
/** Face to face stick connection. */
TileEntity sourceTile = position().translate(from.getOpposite()).getTileEntity(world());

View file

@ -38,7 +38,6 @@ public class PartGearShaft extends PartMechanical
public PartGearShaft()
{
super();
node = new GearShaftNode(this);
}