private void AddSceneObject(SceneObjectParameters parameters) { var id = parameters.Id; var name = parameters.Name; if (sceneObjects.ContainsKey(id)) { LogUtils.Log(MessageBuilder.Trace($"Scene object with id #{id} already exists."), LogMessageType.Warning); return; } var sceneObject = CreateSceneObject(name, new Vector3(parameters.X, parameters.Y)); if (sceneObject == null) { return; } sceneObject.name = name; var sceneObjectComponent = sceneObject.GetComponent <ISceneObject>(); sceneObjectComponent.Id = id; sceneObjects.Add(id, sceneObjectComponent); LogUtils.Log(MessageBuilder.Trace($"Added a new scene object with id #{id}")); }
public static EnterSceneResponseParameters CreateDummyCharacter(int id, string name, CharacterClasses characterClass, Vector2 spawnPosition, Directions spawnDirection) { const string OBJECT_FROM_GAME_RESOURCES = "Local Player"; var sceneObject = new SceneObjectParameters(id, OBJECT_FROM_GAME_RESOURCES, spawnPosition.x, spawnPosition.y, spawnDirection); var characterFromDatabase = new CharacterParameters(name, characterClass, CharacterIndex.Zero); var character = new CharacterSpawnDetailsParameters(sceneObject.Id, characterFromDatabase, spawnDirection); return(new EnterSceneResponseParameters(sceneObject, character)); }
private void OnSubscriberAdded(ISceneObject sceneObject) { var positionTransform = sceneObject.Components.GetComponent <IPositionTransform>().AssertNotNull(); var directionTransform = sceneObject.Components.GetComponent <IDirectionTransform>().AssertNotNull(); var sharedSceneObject = new SceneObjectParameters(sceneObject.Id, sceneObject.Name, positionTransform.Position.X, positionTransform.Position.Y, directionTransform.Direction.GetDirectionsFromDirection()); var parameters = new SceneObjectAddedEventParameters(sharedSceneObject); eventSender.Send((byte)GameEvents.SceneObjectAdded, parameters, MessageSendOptions.DefaultReliable()); }
private void OnSubscribersAdded(IReadOnlyList <ISceneObject> sceneObjects) { var sharedSceneObjects = new SceneObjectParameters[sceneObjects.Count]; for (var i = 0; i < sceneObjects.Count; i++) { sharedSceneObjects[i].Id = sceneObjects[i].Id; sharedSceneObjects[i].Name = sceneObjects[i].Name; var positionTransform = sceneObjects[i].Components.GetComponent <IPositionTransform>().AssertNotNull(); sharedSceneObjects[i].X = positionTransform.Position.X; sharedSceneObjects[i].Y = positionTransform.Position.Y; var directionTransform = sceneObjects[i].Components.GetComponent <IDirectionTransform>().AssertNotNull(); sharedSceneObjects[i].Direction = directionTransform.Direction.GetDirectionsFromDirection(); } var parameters = new SceneObjectsAddedEventParameters(sharedSceneObjects); eventSender.Send((byte)GameEvents.SceneObjectsAdded, parameters, MessageSendOptions.DefaultReliable()); }