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