Fixed Gears not rotating correctly, and crashing when broken
This commit is contained in:
parent
e50b502335
commit
6b444dc5b7
|
@ -14,21 +14,45 @@ abstract class MultipartNode(parent: INodeProvider) extends NodeConnector(parent
|
|||
{
|
||||
override def world: World =
|
||||
{
|
||||
return if (parent.isInstanceOf[TMultiPart]) (parent.asInstanceOf[TMultiPart]).world else if (parent.isInstanceOf[TileEntity]) (parent.asInstanceOf[TileEntity]).getWorldObj else null
|
||||
if(parent != null) {
|
||||
if (parent.isInstanceOf[TMultiPart])
|
||||
return parent.asInstanceOf[TMultiPart].world
|
||||
else if (parent.isInstanceOf[TileEntity])
|
||||
return parent.asInstanceOf[TileEntity].getWorldObj
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
override def x: Double =
|
||||
{
|
||||
return if (parent.isInstanceOf[TMultiPart]) (parent.asInstanceOf[TMultiPart]).x else if (parent.isInstanceOf[TileEntity]) (parent.asInstanceOf[TileEntity]).xCoord else 0
|
||||
if(parent != null) {
|
||||
if (parent.isInstanceOf[TMultiPart])
|
||||
return (parent.asInstanceOf[TMultiPart]).x
|
||||
else if (parent.isInstanceOf[TileEntity])
|
||||
return (parent.asInstanceOf[TileEntity]).xCoord
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
override def y: Double =
|
||||
{
|
||||
return if (parent.isInstanceOf[TMultiPart]) (parent.asInstanceOf[TMultiPart]).y else if (parent.isInstanceOf[TileEntity]) (parent.asInstanceOf[TileEntity]).yCoord else 0
|
||||
if(parent != null) {
|
||||
if (parent.isInstanceOf[TMultiPart])
|
||||
return (parent.asInstanceOf[TMultiPart]).y
|
||||
else if (parent.isInstanceOf[TileEntity])
|
||||
return (parent.asInstanceOf[TileEntity]).yCoord
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
override def z: Double =
|
||||
{
|
||||
return if (parent.isInstanceOf[TMultiPart]) (parent.asInstanceOf[TMultiPart]).z else if (parent.isInstanceOf[TileEntity]) (parent.asInstanceOf[TileEntity]).zCoord else 0
|
||||
if(parent != null) {
|
||||
if (parent.isInstanceOf[TMultiPart])
|
||||
return (parent.asInstanceOf[TMultiPart]).z
|
||||
else if (parent.isInstanceOf[TileEntity])
|
||||
return (parent.asInstanceOf[TileEntity]).zCoord
|
||||
}
|
||||
return 0
|
||||
}
|
||||
}
|
||||
|
|
|
@ -142,7 +142,7 @@ public class MechanicalNode extends MultipartNode implements IMechanicalNode, IS
|
|||
Entry<Object, ForgeDirection> entry = it.next();
|
||||
ForgeDirection dir = entry.getValue();
|
||||
|
||||
if (entry.getKey() instanceof Mechanical) adjacentMech = (MechanicalNode) entry.getKey();
|
||||
if (entry.getKey() instanceof MechanicalNode) adjacentMech = (MechanicalNode) entry.getKey();
|
||||
if (entry.getKey() instanceof INodeProvider)
|
||||
{
|
||||
INode node = ((INodeProvider) entry.getKey()).getNode(MechanicalNode.class, dir.getOpposite());
|
||||
|
|
|
@ -3,6 +3,7 @@ package resonantinduction.mechanical.energy.grid;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import codechicken.multipart.*;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Items;
|
||||
import net.minecraft.item.Item;
|
||||
|
@ -12,10 +13,6 @@ import net.minecraft.util.MovingObjectPosition;
|
|||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
import codechicken.lib.data.MCDataInput;
|
||||
import codechicken.lib.data.MCDataOutput;
|
||||
import codechicken.multipart.ControlKeyModifer;
|
||||
import codechicken.multipart.JCuboidPart;
|
||||
import codechicken.multipart.JNormalOcclusion;
|
||||
import codechicken.multipart.TFacePart;
|
||||
import resonant.engine.ResonantEngine;
|
||||
import universalelectricity.api.core.grid.INode;
|
||||
import universalelectricity.api.core.grid.INodeProvider;
|
||||
|
@ -46,6 +43,23 @@ public abstract class PartMechanical extends JCuboidPart implements JNormalOcclu
|
|||
this.tier = itemDamage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNeighborChanged()
|
||||
{
|
||||
super.onNeighborChanged();
|
||||
node.reconstruct();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPartChanged(TMultiPart part)
|
||||
{
|
||||
super.onPartChanged(part);
|
||||
if(part instanceof INodeProvider)
|
||||
{
|
||||
node.reconstruct();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update()
|
||||
{
|
||||
|
@ -54,7 +68,6 @@ public abstract class PartMechanical extends JCuboidPart implements JNormalOcclu
|
|||
{
|
||||
ticks = 0;
|
||||
}
|
||||
|
||||
//Make sure to update on both sides
|
||||
this.node.update();
|
||||
|
||||
|
@ -112,7 +125,9 @@ public abstract class PartMechanical extends JCuboidPart implements JNormalOcclu
|
|||
public INode getNode(Class<? extends INode> nodeType, ForgeDirection from)
|
||||
{
|
||||
if (nodeType.isAssignableFrom(node.getClass()))
|
||||
{
|
||||
return node;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
@ -37,13 +37,11 @@ public class GearNode extends MechanicalNode
|
|||
angularVelocity = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gear().tier == 10)
|
||||
{
|
||||
torque = 100;
|
||||
angularVelocity = 100;
|
||||
}
|
||||
}
|
||||
if (gear().tier == 10)
|
||||
{
|
||||
torque = 100;
|
||||
angularVelocity = 100;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in a new issue