Felix Boucher 5347f2c3ff ranger les scripts du LevelEditor
puisqu'on utilise des assembly definitions maintenant, il est important que les scripts soient posés dans le dossier Scripts pour qu'ils soient accessibles aux autres scripts. Il a donc fallu déplacer les scripts se trouvant dans le dossier LevelEditor.
2023-05-22 23:13:17 -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>();
}
}
}