Beispiel #1
0
        public void ControllableEntityMoved(ControllableEntity e)
        {
            /*
             * //Log.Trace("Controllable Entity Moved", "ControllableEntityAdded");
             * var notice = new SEGarden.Notifications.AlertNotification() {
             *  Text = "Controllable Entity " + e.EntityId + " Moved",
             *  DisplaySeconds = 5
             * };
             * notice.Raise();
             */

            ObservingEntity observer = e as ObservingEntity;

            if (observer != null)
            {
                UpdateObservingGridPosition(observer);
            }

            RevealedGrid grid = e as RevealedGrid;

            if (grid != null)
            {
                UpdateRememberedGridPosition(grid);
            }
        }
Beispiel #2
0
        public Main()
        {
            Log.Trace("Registering session components", "Main");
            UpdateManager.RegisterSessionComponent(new ServerConcealSession());
            UpdateManager.RegisterSessionComponent(new ClientConcealSession());

            Log.Trace("Registering character component", "Main");
            UpdateManager.RegisterEntityComponent(
                ((e) => {
                //Log.Trace("Running constructor", "ctr");
                Character c = new Character(e);
                return(c);
            }),
                typeof(MyObjectBuilder_Character),
                RunLocation.Server);

            Log.Trace("Registering grid component", "Main");
            UpdateManager.RegisterEntityComponent(
                ((e) => {
                //Log.Trace("Running constructor", "ctr");
                RevealedGrid c = new RevealedGrid(e);
                return(c);
            }),
                typeof(MyObjectBuilder_CubeGrid),
                RunLocation.Server);
        }
Beispiel #3
0
        // can occur from messaging and entity hooks so safed
        // provide instruction queue for managed resource updates
        // wait to conceal after notifying other mods for a few frames
        public bool QueueConceal(long entityId)
        {
            RevealedGrid grid = Revealed.GetGrid(entityId);

            if (grid == null)
            {
                Log.Error("Couldn't find grid to conceal " + entityId, "QueueConceal");
                return(false);
            }

            return(QueueConceal(grid));
        }
Beispiel #4
0
        private void ForgetGrid(RevealedGrid e)
        {
            long id = e.EntityId;

            if (!Grids.ContainsKey(id))
            {
                Log.Error("Not stored " + id, "ForgetGrid");
                return;
            }

            Log.Trace("Removing " + id, "ForgetGrid");
            Grids.Remove(id);
            GridTree.Remove(e);
        }
Beispiel #5
0
        private void RememberGrid(RevealedGrid e)
        {
            long id = e.EntityId;

            if (Grids.ContainsKey(id))
            {
                Log.Error("Already added " + id, "RememberGrid");
                return;
            }

            Log.Trace("Adding " + id, "RememberGrid");
            Grids.Add(id, e);
            GridTree.Add(e);
        }
Beispiel #6
0
        public bool QueueConceal(RevealedGrid grid)
        {
            if (!grid.IsConcealable)
            {
                Log.Warning("Is not concealable: " + grid.EntityId, "QueueConceal");
                return(false);
            }

            Log.Trace("Equeuing grid for conceal " + grid.EntityId, "QueueConceal");
            GridConcealQueue.Enqueue(grid);
            ConcealQueuedMessage msg = new ConcealQueuedMessage(grid.EntityId);

            msg.SendToAll();

            return(true);
        }
Beispiel #7
0
        public static RevealedGridsResponse FromBytes(byte[] bytes)
        {
            VRage.ByteStream      stream   = new VRage.ByteStream(bytes, bytes.Length);
            RevealedGridsResponse response = new RevealedGridsResponse();

            response.LoadFromByteStream(stream);

            RevealedGrid grid;
            ushort       count = stream.getUShort();

            //Log.Trace("Retrieving " + count + " grids from response", "ToBytes");
            for (int i = 0; i < count; i++)
            {
                grid = new RevealedGrid(stream);
                response.RevealedGrids.Add(grid);
                //Log.Trace("Added grid " + grid.EntityId, "ToBytes");
            }

            return(response);
        }
Beispiel #8
0
        public void ControllableEntityRemoved(ControllableEntity e)
        {
            Log.Trace("Controllable Entity Removed", "ControllableEntityRemoved");

            //if (e.IsControlled) ForgetControlledEntity(e);

            ObservingEntity observer = e as ObservingEntity;

            if (observer != null)
            {
                ForgetObservingEntity(observer);
            }

            RevealedGrid grid = e as RevealedGrid;

            if (grid != null)
            {
                ForgetGrid(grid);
            }

            //Character character = e as Character;
            //if (character != null) ForgetCharacter(character);
        }
Beispiel #9
0
        public void ControllableEntityAdded(ControllableEntity e)
        {
            Log.Trace("Controllable Entity Added", "ControllableEntityAdded");

            //if (e.IsControlled) RememberControlledEntity(e);

            ObservingEntity observer = e as ObservingEntity;

            if (observer != null)
            {
                RememberObservingEntity(observer);
            }

            RevealedGrid grid = e as RevealedGrid;

            if (grid != null)
            {
                RememberGrid(grid);
            }

            //Character character = e as Character;
            //if (character != null) RememberCharacter(character);
        }
Beispiel #10
0
 private void UpdateRememberedGridPosition(RevealedGrid e)
 {
     GridTree.Move(e);
 }