private DiscreteTankControl GetControl(TankNode tankNode, WeaponNode weaponNode) { DiscreteTankControl control = new DiscreteTankControl(); ChassisComponent chassis = tankNode.chassis; MoveControl control2 = new MoveControl { MoveAxis = chassis.EffectiveMoveAxis, TurnAxis = chassis.EffectiveTurnAxis }; control.TurnAxis = Mathf.RoundToInt(control2.TurnAxis); control.MoveAxis = Mathf.RoundToInt(control2.MoveAxis); control.WeaponControl = Mathf.RoundToInt(weaponNode.weaponRotationControl.EffectiveControl); return(control); }
public void OnMoveCommandDiscrete(MoveCommandServerEvent e, TankNode tank, [JoinByTank] WeaponNode weapon) { base.Log.Debug("RECEIVE DISCRETE"); MoveCommand moveCommand = e.MoveCommand; Movement? movement = e.MoveCommand.Movement; this.ApplyMovement(tank, ref movement, false); MoveControl control = new MoveControl { MoveAxis = moveCommand.TankControlVertical, TurnAxis = moveCommand.TankControlHorizontal }; this.ApplyMoveControl(tank, new MoveControl?(control)); this.ApplyWeaponRotation(weapon, e.MoveCommand.WeaponRotation); this.ApplyWeaponControl(weapon, new float?(moveCommand.WeaponRotationControl)); }
public void OnTankAdded(NodeAddedEvent e, TankNode tank, [Context, JoinByTank] WeaponNode weapon) { base.Log.DebugFormat("INIT {0}", tank); TankMovementComponent tankMovement = tank.tankMovement; Movement?movement = new Movement?(tankMovement.Movement); this.ApplyMovement(tank, ref movement, true); MoveControl control = new MoveControl { MoveAxis = tankMovement.MoveControl.MoveAxis, TurnAxis = tankMovement.MoveControl.TurnAxis }; this.ApplyMoveControl(tank, new MoveControl?(control)); this.ApplyWeaponRotation(weapon, new float?(tankMovement.WeaponRotation)); this.ApplyWeaponControl(weapon, new float?(tankMovement.WeaponControl)); base.ScheduleEvent <TankMovementInitEvent>(tank); }