Felix Boucher ebe035840c tidy up + add test tiles + small doc
La feature était désorganisé et il n'y avait rien pour tester ou démontrer la fonctionalité

J'ai rangé tous les scripts dans des dossiers enfants de LevelEditor.

Tous les fichiers du level editor sont dans le namespace GatherAndDefend.LevelEditor.

J'ai ajouté un type de tile qui peut instantier un prefab au startup.

J'ai créé un level de test.
2023-05-10 19:01:31 -04:00

47 lines
1.3 KiB
C#

using System.Collections.Generic;
using UnityEngine.Tilemaps;
using UnityEngine;
using System;
namespace GatherAndDefend.LevelEditor
{
[Serializable]
public class TilemapData
{
[SerializeField]
private string _key;
[SerializeField]
private List<TileData> tiles;
public string Key => _key;
public void LoadToTilemap(Tilemap reference)
{
foreach (TileData data in tiles)
{
reference.SetTile(data.Position, data.Tile);
}
}
public void SaveFromTilemap(Tilemap reference)
{
_key = reference.name;
tiles = new List<TileData>();
BoundsInt bounds = reference.cellBounds;
for (int i = bounds.xMin; i <= bounds.xMax; i++)
{
for (int j = bounds.yMin; j <= bounds.yMax; j++)
{
Vector3Int position = new Vector3Int(i, j);
TileBase tile = reference.GetTile(position);
if (!tile) continue;
var tileData = new TileData(position, tile);
tiles.Add(tileData);
}
}
}
public TilemapData()
{
tiles = new List<TileData>();
}
}
}