diff --git a/src/main/java/net/halbear/hvf/Entity/VehicleBaseEntity.java b/src/main/java/net/halbear/hvf/Entity/VehicleBaseEntity.java index fafe025..4b18e13 100644 --- a/src/main/java/net/halbear/hvf/Entity/VehicleBaseEntity.java +++ b/src/main/java/net/halbear/hvf/Entity/VehicleBaseEntity.java @@ -242,6 +242,34 @@ public class VehicleBaseEntity extends Entity { CurrentPositionVector = getPositionVec(); super.tick(); Controller.PollInputs(GetByteArrayValue("INPUT_DATA")); + + PhysicsTick(); + float CurrentPropRotation = GetFloatDataValue("TARGET_PROPELLER_ROTATION"); + float PropIncrementAmount = GetFloatDataValue("PROPELLER_ROTATION_SPEED"); + SetFloatDataValue("TARGET_PROPELLER_ROTATION",(CurrentPropRotation + PropIncrementAmount) % 360); + SetFloatDataValue("PROPELLER_ROTATION",CurrentPropRotation); + + SubClassTickUpdateEvent(); + TickUpdateEvent(); + if(this.world.isRemote()){ + SubClassServerSideTickEvent(); + ClientSideTickEvent(); + } else{ + SubClassClientSideTickEvent(); + ServerSideTickEvent(); + } + } + + public void RotationTick(){ + SetFloatDataValue("ORIENTATION_PITCH",(GetFloatDataValue("ORIENTATION_PITCH") + GetFloatDataValue("ADD_ORIENTATION_PITCH_NEXT_TICK"))%360); + SetFloatDataValue("ADD_ORIENTATION_PITCH_NEXT_TICK",0f); + SetFloatDataValue("ORIENTATION_ROLL",(GetFloatDataValue("ORIENTATION_ROLL") + GetFloatDataValue("ADD_ORIENTATION_ROLL_NEXT_TICK"))%360); + SetFloatDataValue("ADD_ORIENTATION_ROLL_NEXT_TICK",0f); + SetFloatDataValue("ORIENTATION_YAW",(GetFloatDataValue("ORIENTATION_YAW") + GetFloatDataValue("ADD_ORIENTATION_YAW_NEXT_TICK"))%360); + SetFloatDataValue("ADD_ORIENTATION_YAW_NEXT_TICK",0f); + } + + public void PhysicsTick(){ if(GetBooleanDataValue("ADHERES_TO_GRAVITY")){ if (!this.isOnGround()) { this.setMotion(this.getMotion().add(0, -GetDoubleDataValue("GRAVITY"), 0)); @@ -253,16 +281,7 @@ public class VehicleBaseEntity extends Entity { this.move(net.minecraft.entity.MoverType.SELF, this.getMotion()); this.setMotion(this.getMotion().mul(0.98D, 0.98D, 0.98D)); } - SetFloatDataValue("ORIENTATION_PITCH",(GetFloatDataValue("ORIENTATION_PITCH") + GetFloatDataValue("ADD_ORIENTATION_PITCH_NEXT_TICK"))%360); - SetFloatDataValue("ADD_ORIENTATION_PITCH_NEXT_TICK",0f); - SetFloatDataValue("ORIENTATION_ROLL",(GetFloatDataValue("ORIENTATION_ROLL") + GetFloatDataValue("ADD_ORIENTATION_ROLL_NEXT_TICK"))%360); - SetFloatDataValue("ADD_ORIENTATION_ROLL_NEXT_TICK",0f); - SetFloatDataValue("ORIENTATION_YAW",(GetFloatDataValue("ORIENTATION_YAW") + GetFloatDataValue("ADD_ORIENTATION_YAW_NEXT_TICK"))%360); - SetFloatDataValue("ADD_ORIENTATION_YAW_NEXT_TICK",0f); - float CurrentPropRotation = GetFloatDataValue("TARGET_PROPELLER_ROTATION"); - float PropIncrementAmount = GetFloatDataValue("PROPELLER_ROTATION_SPEED"); - SetFloatDataValue("TARGET_PROPELLER_ROTATION",(CurrentPropRotation + PropIncrementAmount) % 360); - SetFloatDataValue("PROPELLER_ROTATION",CurrentPropRotation); + RotationTick(); if(this.getMotion().z == 0 && this.getMotion().x == 0 && this.getMotion().y != 0){ double CenterOfMass = GetDoubleDataValue("CENTRE_OF_MASS_Z"); float CenterOfMassFloat = (float) CenterOfMass; @@ -288,15 +307,6 @@ public class VehicleBaseEntity extends Entity { } } } - SubClassTickUpdateEvent(); - TickUpdateEvent(); - if(this.world.isRemote()){ - SubClassServerSideTickEvent(); - ClientSideTickEvent(); - } else{ - SubClassClientSideTickEvent(); - ServerSideTickEvent(); - } } public void ApplyForce(double dx, double dy, double dz){