Replace actor list with count in UnitBuilderBotModule.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user