private void UpdatePositionForOthers(Vector2 position) { var id = playerGameObjectGetter.GetPlayerGameObject().Id; var directionTransform = playerGameObjectGetter.GetPlayerGameObject().Components.GetComponent <IDirectionTransform>().AssertNotNull(); var direction = directionTransform.Direction.GetDirectionsFromDirection(); var parameters = new SceneObjectPositionChangedEventParameters(id, position.X, position.Y, direction); interestAreaNotifier.NotifySubscribers((byte)GameEvents.PositionChanged, parameters, MessageSendOptions.DefaultUnreliable((byte)GameDataChannels.Position)); }
private void OnPositionChanged(SceneObjectPositionChangedEventParameters parameters) { var id = parameters.SceneObjectId; if (sceneObject.Id != id) { return; } var position = new Vector2(parameters.X, parameters.Y); var direction = parameters.Direction; SetPosition(position, direction); }
private void OnPositionChanged(Vector2 position) { var body = GetBody().AssertNotNull(); body.SetXForm(position.FromVector2(), body.GetAngle()); if (Vector2.Distance(position, lastPosition) > 0.1f) { UpdatePositionForAll(); lastPosition = position; } void UpdatePositionForAll() { var direction = directionTransform.Direction.GetDirectionsFromDirection(); var parameters = new SceneObjectPositionChangedEventParameters(Id, position.X, position.Y, direction); InterestAreaNotifier.NotifySubscribers((byte)GameEvents.PositionChanged, parameters, MessageSendOptions.DefaultUnreliable((byte)GameDataChannels.Position)); } }