Fixed turbine's mech node not updating

This commit is contained in:
Robert S 2014-06-07 07:11:10 -04:00
parent 72b268611a
commit 63918f16b3

View file

@ -1,14 +1,12 @@
package resonantinduction.mechanical.energy.turbine; package resonantinduction.mechanical.energy.turbine;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;
import resonant.api.grid.INode; import resonant.api.grid.INode;
import resonant.api.grid.INodeProvider; import resonant.api.grid.INodeProvider;
import resonant.lib.network.Synced; import resonant.lib.network.Synced;
import resonant.lib.network.Synced.SyncedInput; import resonant.lib.network.Synced.SyncedInput;
import resonant.lib.network.Synced.SyncedOutput; import resonant.lib.network.Synced.SyncedOutput;
import resonantinduction.core.interfaces.IMechanicalNode;
import resonantinduction.mechanical.energy.grid.MechanicalNode; import resonantinduction.mechanical.energy.grid.MechanicalNode;
//TODO: MC 1.7, merge turbines in. //TODO: MC 1.7, merge turbines in.
@ -21,46 +19,6 @@ public class TileMechanicalTurbine extends TileTurbineBase implements INodeProvi
protected double prevAngularVelocity; protected double prevAngularVelocity;
protected class TurbineNode extends MechanicalNode
{
public TurbineNode(INodeProvider parent)
{
super(parent);
}
@Override
public boolean canConnect(ForgeDirection from, Object source)
{
if (source instanceof MechanicalNode && !(source instanceof TileMechanicalTurbine))
{
/**
* Face to face stick connection.
*/
TileEntity sourceTile = position().translate(from).getTileEntity(getWorld());
if (sourceTile instanceof INodeProvider)
{
MechanicalNode sourceInstance = (MechanicalNode) ((INodeProvider) sourceTile).getNode(MechanicalNode.class, from.getOpposite());
return sourceInstance == source && from == getDirection().getOpposite();
}
}
return false;
}
@Override
public boolean inverseRotation(ForgeDirection dir, IMechanicalNode with)
{
return dir == getDirection().getOpposite();
}
@Override
public float getRatio(ForgeDirection dir, IMechanicalNode with)
{
return getMultiBlock().isConstructed() ? multiBlockRadius - 0.5f : 0.5f;
}
};
public TileMechanicalTurbine() public TileMechanicalTurbine()
{ {
super(); super();
@ -84,6 +42,7 @@ public class TileMechanicalTurbine extends TileTurbineBase implements INodeProvi
@Override @Override
public void updateEntity() public void updateEntity()
{ {
mechanicalNode.update(0.05f);
if (!worldObj.isRemote) if (!worldObj.isRemote)
{ {
renderAngularVelocity = (double) mechanicalNode.angularVelocity; renderAngularVelocity = (double) mechanicalNode.angularVelocity;
@ -137,9 +96,7 @@ public class TileMechanicalTurbine extends TileTurbineBase implements INodeProvi
mechanicalNode.load(nbt); mechanicalNode.load(nbt);
} }
/** /** Writes a tile entity to NBT. */
* Writes a tile entity to NBT.
*/
@Override @Override
@SyncedOutput @SyncedOutput
public void writeToNBT(NBTTagCompound nbt) public void writeToNBT(NBTTagCompound nbt)