Complete support of civ replacement in Builder list as in ProductionQueue list. Reviewed by s0600204.

Differential Revision: https://code.wildfiregames.com/D707
This was SVN commit r19952.
This commit is contained in:
fatherbushido
2017-08-07 20:00:29 +00:00
parent 37c2f18b9e
commit ba71cf5ea9
2 changed files with 18 additions and 1 deletions
@@ -42,7 +42,10 @@ Builder.prototype.GetEntitiesList = function()
return entities;
let disabledTemplates = cmpPlayer.GetDisabledTemplates();
return entities.filter(ent => !disabledTemplates[ent]);
let cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager);
return entities.filter(ent => !disabledTemplates[ent] && cmpTemplateManager.TemplateExists(ent));
};
Builder.prototype.GetRange = function()
@@ -6,6 +6,10 @@ Engine.LoadComponentScript("Builder.js");
const builderId = 6;
const playerId = 1;
AddMock(SYSTEM_ENTITY, IID_TemplateManager, {
"TemplateExists": () => true
});
let cmpBuilder = ConstructComponent(builderId, "Builder", {
"Rate": 1.0,
"Entities": { "_string": "structures/{civ}_barracks structures/{civ}_civil_centre" }
@@ -38,6 +42,16 @@ AddMock(builderId, IID_Ownership, {
TS_ASSERT_UNEVAL_EQUALS(cmpBuilder.GetEntitiesList(), ["structures/iber_barracks", "structures/iber_civil_centre"]);
AddMock(SYSTEM_ENTITY, IID_TemplateManager, {
"TemplateExists": name => name == "structures/iber_civil_centre"
});
TS_ASSERT_UNEVAL_EQUALS(cmpBuilder.GetEntitiesList(), ["structures/iber_civil_centre"]);
AddMock(SYSTEM_ENTITY, IID_TemplateManager, {
"TemplateExists": () => true
});
AddMock(1, IID_Player, {
"GetDisabledTemplates": () => ({ "structures/athen_barracks": true }),
"GetPlayerID": () => playerId