Example #1
0
        public static TileSet Import(WorldJson.TileSetDefinition tileSetJson, string sourceFile)
        {
            var   texture      = GD.Load <Texture>(GetTexturePath(tileSetJson, sourceFile));
            Image textureImage = texture.GetData();

            TileSet tileSet = new();

            int tileFullSize = tileSetJson.TileGridSize + tileSetJson.Spacing;
            int gridWidth    = (tileSetJson.PxWidth - tileSetJson.Padding) / tileFullSize;
            int gridHeight   = (tileSetJson.PxHeight - tileSetJson.Padding) / tileFullSize;

            int gridSize = gridWidth * gridHeight;

            for (int tileId = 0; tileId < gridSize; tileId++)
            {
                var tileRegion = GetTileRegion(tileId, tileSetJson);

                if (!textureImage.GetRect(tileRegion).IsInvisible())
                {
                    tileSet.CreateTile(tileId);
                    tileSet.TileSetTileMode(tileId, TileSet.TileMode.SingleTile);
                    tileSet.TileSetTexture(tileId, texture);
                    tileSet.TileSetRegion(tileId, tileRegion);
                }
            }

            return(tileSet);
        }
Example #2
0
 private static Rect2 GetTileRegion(int tileId, WorldJson.TileSetDefinition tileSetJson) => new()
Example #3
0
 private static string GetTexturePath(WorldJson.TileSetDefinition tileSetJson, string worldSourceFile)
 {
     return(worldSourceFile.GetBaseDir() + "/" + tileSetJson.TextureRelPath);
 }
 public virtual void PrepareTileSet(TileSet tileSet, WorldJson.TileSetDefinition json)
 {
 }
        public static Vector2 IdToPx(int tileId, WorldJson.TileSetDefinition tileSetJson)
        {
            var atlasGridWidth = tileSetJson.PxWidth / tileSetJson.TileGridSize;

            return(IdToPx(tileId, tileSetJson.TileGridSize, atlasGridWidth, tileSetJson.Padding, tileSetJson.Spacing));
        }