예제 #1
0
 public void GetTilePointTableForMap(int mapId, out TilePointTable tilePointTable)
 {
     if (mapId < 0 || !masterTilePointDictionary.TryGetValue(mapId, out tilePointTable))
     {
         throw new ManagerException(TileManagerException.MapDoesNotExists, "Map with id '{0}' could not be found.", mapId);
     }
 }
예제 #2
0
        public MapBase(int id, string name, TilePointTable tiles)
        {
            this.tiles = tiles;

            MapId = id;
            Name  = name;
            MaxPlayersPerInstance = 0;
        }
예제 #3
0
        private void TileManagerOnRenderInvoked(object sender, int invokedMapId, ref TilePointTable tilePointTable)
        {
            if (invokedMapId != this.mapId)
            {
                return;
            }

            tilePointTableCached = tilePointTable;
            InternalDoRender(tilePointTableCached);
        }
예제 #4
0
        /// <summary>
        /// Internal rendering method. This actually initiates the rendering logic of <see cref="TileEngine"/>
        /// </summary>
        /// <param name="tilePointTable"><see cref="TilePointTable"/> data to render on screen</param>
        private void InternalDoRender(TilePointTable tilePointTable)
        {
            if (!isOpenGLInitialized)
            {
                return;
            }

            tileEngine.DoRender(ref tilePointTable);

            if (OnRenderingComplete != null)
            {
                OnRenderingComplete();
            }
        }
예제 #5
0
        private MapBase InitializeMap(int id, string name, int width, int height)
        {
            var tiles = new TilePointTable();

            for (int x = 0; x < width; x++)
            {
                for (int y = 0; y < height; y++)
                {
                    var tp  = new TilePoint(x, y);
                    var tpl = new TilePointLayer(tp, 1);
                    tpl.Movement = MovementTypes.Walk;
                    tpl.SetLayer(new TilePointTileLayer(1));

                    tp.SetLayer(tpl);
                }
            }

            return(new MapBase(id, name, tiles));
        }