rewritten core side to include tons more metadata/structure
need to rewrite renderer to output full map image rather than skipping sea
This commit is contained in:
Kurt
2026-01-19 01:20:43 -06:00
parent 9a54d0fb9a
commit 50ce05af6f
44 changed files with 968 additions and 544 deletions

View File

@@ -12,7 +12,7 @@ public partial class PlayerHouseEditor : Form
private readonly MainSave SAV;
private readonly IPlayerHouse[] Houses;
private readonly IReadOnlyList<Player> Players;
private RoomItemManager Manager;
private RoomManager Manager;
private const int scale = 24;
private int Index = -1;
@@ -25,7 +25,7 @@ public PlayerHouseEditor(IPlayerHouse[] houses, IReadOnlyList<Player> players, M
SAV = sav;
Houses = houses;
Players = players;
Manager = new RoomItemManager(houses[0].GetRoom(0));
Manager = new RoomManager(houses[0].GetRoom(0));
var data = GameInfo.Strings.ItemDataSource;
ItemEdit.Initialize(data, true);
@@ -111,7 +111,7 @@ private void B_EditFlags_Click(object sender, EventArgs e)
private void PB_Room_MouseMove(object sender, MouseEventArgs e)
{
var l = CurrentLayer;
var l = Current;
var oldTile = l.GetTile(HoverX, HoverY);
var tile = GetTile(l, e, out var x, out var y);
if (ReferenceEquals(tile, oldTile))
@@ -124,7 +124,7 @@ private void PB_Room_MouseMove(object sender, MouseEventArgs e)
private void SetCoordinateText(int x, int y, string name) => L_Coordinates.Text = $"({x:000},{y:000}) = {name}";
private Item GetTile(ItemLayer layer, MouseEventArgs e, out int x, out int y)
private Item GetTile(LayerItem layer, MouseEventArgs e, out int x, out int y)
{
SetHoveredItem(e);
return layer.GetTile(x = HoverX, y = HoverY);
@@ -157,12 +157,12 @@ private void ReloadManager(IPlayerHouse house)
if (unsupported.Count != 0)
WinFormsUtil.Alert(MessageStrings.MsgFieldItemUnsupportedLayer2Tile);
var room = house.GetRoom(RoomIndex);
Manager = new RoomItemManager(room);
Manager = new RoomManager(room);
}
private void DrawLayer() => DrawRoom(CurrentLayer);
private void DrawLayer() => DrawRoom(Current);
private void DrawRoom(ItemLayer layer)
private void DrawRoom(LayerItem layer)
{
var w = layer.TileInfo.TotalWidth;
var h = layer.TileInfo.TotalHeight;
@@ -186,7 +186,7 @@ private void NUD_Layer_ValueChanged(object sender, EventArgs e)
private void PlayerHouseEditor_Click(object sender, MouseEventArgs e)
{
var tile = GetTile(CurrentLayer, e, out var x, out var y);
var tile = GetTile(Current, e, out var x, out var y);
OmniTile(tile, x, y);
}
@@ -211,7 +211,7 @@ private void Menu_View_Click(object sender, EventArgs e)
var x = HoverX;
var y = HoverY;
var tile = CurrentLayer.GetTile(x, y);
var tile = Current.GetTile(x, y);
ViewTile(tile, x, y);
}
@@ -220,7 +220,7 @@ private void Menu_Set_Click(object sender, EventArgs e)
var x = HoverX;
var y = HoverY;
var tile = CurrentLayer.GetTile(x, y);
var tile = Current.GetTile(x, y);
SetTile(tile, x, y);
}
@@ -229,17 +229,17 @@ private void Menu_Reset_Click(object sender, EventArgs e)
var x = HoverX;
var y = HoverY;
var tile = CurrentLayer.GetTile(x, y);
var tile = Current.GetTile(x, y);
DeleteTile(tile, x, y);
}
private ItemLayer CurrentLayer => Manager.Layers[(int)NUD_Layer.Value - 1];
private LayerItem Current => Manager.Layers[(int)NUD_Layer.Value - 1];
private void ViewTile(Item tile, int x, int y)
{
if (CHK_RedirectExtensionLoad.Checked && tile.IsExtension)
{
var l = CurrentLayer;
var l = Current;
var rx = Math.Max(0, Math.Min(l.TileInfo.TotalWidth - 1, x - tile.ExtensionX));
var ry = Math.Max(0, Math.Min(l.TileInfo.TotalHeight - 1, y - tile.ExtensionY));
var redir = l.GetTile(rx, ry);
@@ -257,7 +257,7 @@ private void ViewTile(Item tile)
private void SetTile(Item tile, int x, int y)
{
var l = CurrentLayer;
var l = Current;
var pgt = new Item();
ItemEdit.SetItem(pgt);
var permission = l.IsOccupied(pgt, x, y);
@@ -289,9 +289,9 @@ private void DeleteTile(Item tile, int x, int y)
{
x -= tile.ExtensionX;
y -= tile.ExtensionY;
tile = CurrentLayer.GetTile(x, y);
tile = Current.GetTile(x, y);
}
CurrentLayer.DeleteExtensionTiles(tile, x, y);
Current.DeleteExtensionTiles(tile, x, y);
}
tile.Delete();