예제 #1
0
        private void SynchroPath(object sender, IncomingMessage receivedMessage)
        {
            Entity owner = networkedScene.EntityManager.Find(receivedMessage.ReadString());

            if (owner != null && !owner.IsDisposed)
            {
                int pathLength            = receivedMessage.ReadInt32();
                MovementBehavior movement = owner.FindComponent <MovementBehavior>();

                if (movement != null)
                {
                    List <LayerTile> path = new List <LayerTile>(pathLength);

                    Map map = Map.map;
                    for (int i = 0; i < pathLength; i++)
                    {
                        LayerTile tile = map.GetTileByMapCoordinates(receivedMessage.ReadInt32(), receivedMessage.ReadInt32());
                        if (tile != null)
                        {
                            path.Add(tile);
                        }
                    }
                    movement.SetPathForClient(path);
                }
            }
        }