Don't update resource layer more than needed

This commit is contained in:
Gustas
2025-03-28 14:13:47 +02:00
committed by Paul Chote
parent 83bbb357d1
commit 955634a520

View File

@@ -136,25 +136,24 @@ namespace OpenRA.Mods.Common.Widgets
public void Do()
{
foreach (var resourceCell in cellResources)
{
resourceLayer.ClearResources(resourceCell.Cell);
resourceLayer.AddResource(resourceType, resourceCell.Cell, resourceLayer.GetMaxDensity(resourceType));
}
}
public void Undo()
{
foreach (var resourceCell in cellResources)
{
resourceLayer.ClearResources(resourceCell.Cell);
if (resourceCell.OldResourceTile.Type != null)
// If resources match, simulate a replace command.
if (resourceCell.OldResourceTile.Type == resourceType || resourceCell.OldResourceTile.Type == null)
resourceLayer.ClearResources(resourceCell.Cell);
if (resourceCell.OldResourceTile.Type == resourceType || resourceCell.OldResourceTile.Type != null)
resourceLayer.AddResource(resourceCell.OldResourceTile.Type, resourceCell.Cell, resourceCell.OldResourceTile.Density);
}
}
public void Add(CellResource resourceCell)
{
resourceLayer.ClearResources(resourceCell.Cell);
resourceLayer.AddResource(resourceType, resourceCell.Cell, resourceLayer.GetMaxDensity(resourceType));
cellResources.Add(resourceCell);
Text = FluentProvider.GetMessage(AddedResource, "count", cellResources.Count, "type", resourceType);