public static Tile GetTile(LDtkIntGridValueAsset asset, Color color) { string name = asset.name; if (_cachedTiles.ContainsKey(name)) { return(_cachedTiles[name]); } Tile newTile = MakeTile(asset.ReferencedAsset, color); _cachedTiles.Add(name, newTile); return(newTile); }
private static void BuildIntGridValue(LDtkDataLayer layer, LDtkDataIntGridValue intValueData, LDtkIntGridValueAssetCollection valueAssets, Tilemap tilemap) { LDtkDefinitionIntGridValue definition = layer.Definition.intGridValues[intValueData.v]; LDtkIntGridValueAsset asset = valueAssets.GetAssetByIdentifier(definition.identifier); if (asset == null) { return; } Vector2Int cellCoord = LDtkToolOriginCoordConverter.GetTopLeftOriginCellCoordFromCoordID(intValueData.coordId, layer.__cWid); Vector2 coord = LDtkToolOriginCoordConverter.ConvertCell(cellCoord, layer.__cHei); Tile tileAsset = LDtkProviderTile.GetTile(asset, definition.color.ToColor()); Vector3Int c = new Vector3Int((int)coord.x, (int)coord.y, 0); tilemap.SetTile(c, tileAsset); }