Replace actor list with count in UnitBuilderBotModule.

This commit is contained in:
Paul Chote
2019-10-05 12:22:19 +01:00
committed by reaperrr
parent b839796b89
commit 3ad3c39b21

View File

@@ -49,8 +49,7 @@ namespace OpenRA.Mods.Common.Traits
readonly List<string> queuedBuildRequests = new List<string>();
IBotRequestPauseUnitProduction[] requestPause;
List<Actor> idleUnits = new List<Actor>();
int idleUnitCount;
int ticks;
@@ -68,7 +67,7 @@ namespace OpenRA.Mods.Common.Traits
void IBotNotifyIdleBaseUnits.UpdatedIdleBaseUnits(List<Actor> idleUnits)
{
this.idleUnits = idleUnits;
idleUnitCount = idleUnits.Count;
}
void IBotTick.BotTick(IBot bot)
@@ -88,7 +87,7 @@ namespace OpenRA.Mods.Common.Traits
}
foreach (var q in Info.UnitQueues)
BuildUnit(bot, q, idleUnits.Count < Info.IdleBaseUnitsMaximum);
BuildUnit(bot, q, idleUnitCount < Info.IdleBaseUnitsMaximum);
}
}
@@ -218,7 +217,7 @@ namespace OpenRA.Mods.Common.Traits
return new List<MiniYamlNode>()
{
new MiniYamlNode("QueuedBuildRequests", FieldSaver.FormatValue(queuedBuildRequests.ToArray())),
new MiniYamlNode("IdleUnits", FieldSaver.FormatValue(idleUnits.Select(a => a.ActorID).ToArray()))
new MiniYamlNode("IdleUnitCount", FieldSaver.FormatValue(idleUnitCount))
};
}
@@ -234,13 +233,9 @@ namespace OpenRA.Mods.Common.Traits
queuedBuildRequests.AddRange(FieldLoader.GetValue<string[]>("QueuedBuildRequests", queuedBuildRequestsNode.Value.Value));
}
var idleUnitsNode = data.FirstOrDefault(n => n.Key == "IdleUnits");
if (idleUnitsNode != null)
{
idleUnits.Clear();
idleUnits.AddRange(FieldLoader.GetValue<uint[]>("IdleUnits", idleUnitsNode.Value.Value)
.Select(a => world.GetActorById(a)));
}
var idleUnitCountNode = data.FirstOrDefault(n => n.Key == "IdleUnitCount");
if (idleUnitCountNode != null)
idleUnitCount = FieldLoader.GetValue<int>("IdleUnitCount", idleUnitCountNode.Value.Value);
}
}
}