diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java index 028080a73..29634935e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java @@ -35,6 +35,7 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc private int turnTimer; public float rotor; public float lastRotor; + public float fanAcceleration = 0F; public List list2 = new ArrayList(); @@ -101,16 +102,17 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc } else { this.lastRotor = this.rotor; + this.rotor += this.fanAcceleration; + + if(this.rotor >= 360) { + this.rotor -= 360; + this.lastRotor -= 360; + } if(turnTimer > 0) { - - this.rotor += 25F; - - if(this.rotor >= 360) { - this.rotor -= 360; - this.lastRotor -= 360; - } - + + this.fanAcceleration = Math.max(0F, Math.min(25F, this.fanAcceleration += 0.1F)); + Random rand = worldObj.rand; ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection side = dir.getRotation(ForgeDirection.UP); @@ -123,6 +125,9 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc -dir.offsetX * 0.2, 0, -dir.offsetZ * 0.2); } } + if(turnTimer < 0) { + this.fanAcceleration = Math.max(0F, Math.min(25F, this.fanAcceleration -= 0.1F)); + } } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java index e5839ad54..16590a571 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java @@ -33,7 +33,8 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme private boolean shouldTurn; public float rotor; public float lastRotor; - + public float fanAcceleration = 0F; + public TileEntityMachineLargeTurbine() { super(7); @@ -104,17 +105,20 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme data.setBoolean("operational", operational); this.networkPack(data, 50); } else { - this.lastRotor = this.rotor; + this.rotor += this.fanAcceleration; + + if(this.rotor >= 360) { + this.rotor -= 360; + this.lastRotor -= 360; + } if(shouldTurn) { - - this.rotor += 15F; - - if(this.rotor >= 360) { - this.rotor -= 360; - this.lastRotor -= 360; - } + + this.fanAcceleration = Math.max(0F, Math.min(15F, this.fanAcceleration += 0.1F)); + } + if(!shouldTurn) { + this.fanAcceleration = Math.max(0F, Math.min(15F, this.fanAcceleration -= 0.1F)); } } }