private void SetInput(CharacterMoveModes moveModes, float rotationAngleRad) { this.characterInput.MoveModes = moveModes; this.characterInput.RotationAngleRad = rotationAngleRad; //// uncomment visualize rotation angle correctness with Physics Visualizer //var fromPosition = this.character.Position // + (0, this.character.ProtoCharacter.CharacterWorldWeaponOffsetRanged); //var toPosition = fromPosition + (30, 0).RotateRad(rotationAngleRad); //Client.Characters.CurrentPlayerCharacter.PhysicsBody.PhysicsSpace.TestLine( // fromPosition, // toPosition, // collisionGroup: null); if (!this.characterInput.HasChanged) { return; } this.characterInput.SetChanged(false); var command = new CharacterInputUpdate( this.characterInput.MoveModes, this.characterInput.RotationAngleRad); ((PlayerCharacter)this.character.ProtoCharacter) .ClientSetInput(command); }
public void Send(CharacterInputUpdate data) { this.lastInputId = ++this.lastInputId; this.lastInputData = data; this.lastInputSentCount = 0; this.lastInputIsServerAck = false; this.SendNow(); }