private void Handle(PlayerEntity player, IUserCmd cmd) { if (!player.hasCameraStateNew) { return; } if (!player.hasCameraStateOutputNew) { return; } DummyCameraMotorState.Convert(player.cameraStateNew, _state); var archotRotation = player.cameraArchor.ArchorEulerAngle; if (player.cameraStateNew.CameraMotorInput == null) { player.cameraStateNew.CameraMotorInput = new DummyCameraMotorInput(); } DummyCameraMotorInput _input = (DummyCameraMotorInput)player.cameraStateNew.CameraMotorInput; _input.Generate(_contexts, player, cmd, archotRotation.y, archotRotation.x, _state); for (int i = 0; i < (int)SubCameraMotorType.End; i++) { var type = (SubCameraMotorType)i; PreProcessInput(player, _input, _motors.GetDict(type), _state.Get(type), _state); } DummyCameraMotorState.Convert(_state, player.cameraStateNew); }
private void UpdateCamera(IUserCmdOwner owner, IUserCmd cmd) { PlayerEntity player = owner.OwnerEntity as PlayerEntity; if (!player.hasCameraStateNew) { return; } if (!player.hasCameraStateOutputNew) { return; } // var finalOutput = player.cameraStateOutputNew; DummyCameraMotorState.Convert(player.cameraStateNew, _state); var archotRotation = player.cameraArchor.ArchorEulerAngle; if (player.cameraStateNew.CameraMotorInput == null) { player.cameraStateNew.CameraMotorInput = new DummyCameraMotorInput(); } DummyCameraMotorInput _input = (DummyCameraMotorInput)player.cameraStateNew.CameraMotorInput; _input.Generate(player, cmd, archotRotation.y, archotRotation.x); foreach (SubCameraMotorType i in _subCameraMotorTypeArray) { var type = i; PreProcessInput(player, _input, _motors.GetDict(type), _state.Get(type), _state); } DummyCameraMotorState.Convert(_state, player.cameraStateNew); }
private void Handle(PlayerEntity player, IUserCmd cmd) { if (!player.hasCameraStateNew) { return; } if (!player.hasCameraStateOutputNew) { return; } if (player.cameraStateNew.CameraMotorInput == null) { player.cameraStateNew.CameraMotorInput = new DummyCameraMotorInput(); } DummyCameraMotorState.Convert(player.cameraStateNew, _state); DummyCameraMotorInput _input = (DummyCameraMotorInput)player.cameraStateNew.CameraMotorInput; _input.Generate(player, cmd, _state, LockView); for (int i = 0; i < (int)SubCameraMotorType.End; i++) { var type = (SubCameraMotorType)i; PreProcessInput(player, _input, _motors.GetDict(type), _state.Get(type), _state); } DummyCameraMotorState.Convert(_state, player.cameraStateNew); }
private void PreProcessInput(PlayerEntity player, DummyCameraMotorInput input, Dictionary <int, ICameraNewMotor> dict, SubCameraMotorState subState, DummyCameraMotorState state) { if (!dict.ContainsKey(subState.NowMode)) { return; } if (!dict.ContainsKey(subState.LastMode)) { return; } var nowMotor = dict[subState.NowMode]; nowMotor.PreProcessInput(player, input, state); }
private void UpdateCamera(IUserCmdOwner owner, IUserCmd cmd) { PlayerEntity player = owner.OwnerEntity as PlayerEntity; if (!player.hasCameraStateNew) { return; } if (!player.hasCameraStateOutputNew) { return; } //观战玩家时,摄像机方向由被观战玩家决定 if (player.gamePlay.IsObserving()) { int objId = player.gamePlay.CameraEntityId; var entity = _contexts.player.GetEntityWithEntityKey(new EntityKey(objId, (short)EEntityType.Player)); if (entity != null) { return; } } DummyCameraMotorState.Convert(player.cameraStateNew, _state); var archotRotation = player.cameraArchor.ArchorEulerAngle; if (player.cameraStateNew.CameraMotorInput == null) { player.cameraStateNew.CameraMotorInput = new DummyCameraMotorInput(); } DummyCameraMotorInput _input = (DummyCameraMotorInput)player.cameraStateNew.CameraMotorInput; _input.Generate(_contexts, player, cmd, archotRotation.y, archotRotation.x); for (int i = 0; i < (int)SubCameraMotorType.End; i++) { var type = (SubCameraMotorType)i; PreProcessInput(player, _input, _motors.GetDict(type), _state.Get(type), _state); } DummyCameraMotorState.Convert(_state, player.cameraStateNew); }