misc performance improvements

Preallocate the terrain-building objects and reuse

changed:
- grid alternates with a slightly-darker to help indicate the larger 2x2 tile grid.
- put plaza & buildings behind the gridlines
This commit is contained in:
Kurt
2020-05-02 23:02:37 -07:00
parent 5b5d1b2bce
commit 928e699168
12 changed files with 165 additions and 120 deletions

View File

@@ -2,26 +2,34 @@
namespace NHSE.Core
{
public class MapManager
public class MapManager : MapTerrainStructure
{
public readonly FieldItemManager Items;
public int MapLayer { get; set; } // 0 or 1
public MapManager(MainSave sav) : base(sav)
{
Items = new FieldItemManager(sav.GetFieldItems());
}
public FieldItemLayer CurrentLayer => MapLayer == 0 ? Items.Layer1 : Items.Layer2;
}
public class MapTerrainStructure
{
public readonly TerrainManager Terrain;
public readonly IReadOnlyList<Building> Buildings;
public uint PlazaX { get; set; }
public uint PlazaY { get; set; }
public int MapLayer { get; set; } // 0 or 1
public MapManager(MainSave sav)
public MapTerrainStructure(MainSave sav)
{
Items = new FieldItemManager(sav.GetFieldItems());
Terrain = new TerrainManager(sav.GetTerrainTiles());
Buildings = sav.Buildings;
PlazaX = sav.PlazaX;
PlazaY = sav.PlazaY;
}
public FieldItemLayer CurrentLayer => MapLayer == 0 ? Items.Layer1 : Items.Layer2;
}
}