Exemple #1
0
        public void SetTileInArray(MapTile.MapTileType type, int x, int y, int z)
        {
            int index = x + (y * mapDepth) + (z * mapHeight * mapWidth);

            if(index > tileTypeArray.Count)
            {
                Util.Log("Index out of range!");

                return;
            }

            tileTypeArray[index] = type;
        }
Exemple #2
0
        public void SetTile(MapTile.MapTileType type, int x, int y, int z)
        {
            int index = 0;
            index |= x;
            index |= y << 24;
            index |= z << 48;
            MapTile haveCurrentTile;

            if (visibleTiles.TryGetValue(index, out haveCurrentTile))
            {
                if (type == MapTile.MapTileType.TILE_EMPTY)
                {
                    haveCurrentTile.RemoveSelf();
                    visibleTiles.Remove(index);
                }
                else
                {
                    haveCurrentTile.myType = type;
                }

            }
            else if (type != MapTile.MapTileType.TILE_EMPTY)
            {
                haveCurrentTile = new MapTile(type, x, y, z);

                haveCurrentTile.Graphic = new Image(Assets.GFX_TEST_TILE);
                haveCurrentTile.Graphic.CenterOrigin();

                haveCurrentTile.X = X + (x * (mapTileSizeX / 2) + y * (mapTileSizeX / 2));
                haveCurrentTile.Y = Y - (z * (mapTileSizeY / 2) + y * (mapTileSizeY / 2) - x * (mapTileSizeY / 2));
                haveCurrentTile.Layer = -(2 * z) + y - (x / 2);

                visibleTiles.Add(index, haveCurrentTile);
                Scene.Add(haveCurrentTile);
            }
        }