Faster tile fetch on click

essentially negligible speed improvement, but improved readability
This commit is contained in:
Kurt 2020-04-08 10:16:20 -07:00
parent 0d979a8b7b
commit 5491ab3ac5
2 changed files with 21 additions and 12 deletions

View File

@ -119,17 +119,17 @@ private Button CreateGridItem(int index, int x, int y)
button.Click += (sender, args) =>
{
GetTile(button, out var tile, out var obj);
var tile = GetTile(Layer, index);
switch (ModifierKeys)
{
default: ViewTile(tile); return;
case Keys.Shift: SetTile(tile, obj); return;
case Keys.Alt: DeleteTile(tile, obj); return;
case Keys.Shift: SetTile(tile, button); return;
case Keys.Alt: DeleteTile(tile, button); return;
}
};
button.MouseEnter += (sender, args) =>
{
GetTile(button, out var tile, out var obj);
var tile = GetTile(Layer, index);
var str = GameInfo.Strings;
var name = str.GetItemName(tile.DisplayItemId);
TT_Hover.SetToolTip(button, name);
@ -196,10 +196,14 @@ private void GetTile(object sender, out FieldItem tile, out Button obj)
if (index < 0)
throw new ArgumentException(nameof(Button));
var layer = Layer;
var x = X + (index % GridWidth);
var y = Y + (index / GridWidth);
tile = layer.GetTile(x, y);
tile = GetTile(Layer, index);
}
private FieldItem GetTile(FieldItemLayer layer, int index)
{
var x = X + (index % layer.GridWidth);
var y = Y + (index / layer.GridWidth);
return layer.GetTile(x, y);
}
private static void RefreshTile(Control button, FieldItem tile)

View File

@ -113,12 +113,12 @@ private Button CreateGridItem(int index, int x, int y)
button.Click += (sender, args) =>
{
GetTile(button, out var tile, out var obj);
var tile = GetTile(index);
switch (ModifierKeys)
{
default: ViewTile(tile); return;
case Keys.Shift: SetTile(tile, obj); return;
case Keys.Alt: DeleteTile(tile, obj); return;
case Keys.Shift: SetTile(tile, button); return;
case Keys.Alt: DeleteTile(tile, button); return;
}
};
return button;
@ -180,9 +180,14 @@ private void GetTile(object sender, out TerrainTile tile, out Button obj)
if (index < 0)
throw new ArgumentException(nameof(Button));
tile = GetTile(index);
}
private TerrainTile GetTile(int index)
{
var x = X + (index % GridWidth);
var y = Y + (index / GridWidth);
tile = Terrain.GetTile(x, y);
return Terrain.GetTile(x, y);
}
private static void RefreshTile(Control button, TerrainTile tile)