Index: binaries/data/mods/public/simulation/components/Builder.js =================================================================== --- binaries/data/mods/public/simulation/components/Builder.js +++ binaries/data/mods/public/simulation/components/Builder.js @@ -47,11 +47,18 @@ let disabledTemplates = cmpPlayer.GetDisabledTemplates(); - let cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager); - - return entities.filter(ent => !disabledTemplates[ent] && cmpTemplateManager.TemplateExists(ent)); + return entities.filter(ent => !disabledTemplates[ent] && CheckTemplateExists(ent)); }; +Builder.prototype.templateExistsCache = {}; + +function CheckTemplateExists(template) +{ + if (!(template in Builder.prototype.templateExistsCache)) + Builder.prototype.templateExistsCache[template] = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager).TemplateExists(template); + return Builder.prototype.templateExistsCache[template]; +} + Builder.prototype.GetRange = function() { let max = 2;