Exemplo n.º 1
0
        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));
        }
Exemplo n.º 3
0
        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());
        }
Exemplo n.º 4
0
        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());
        }