Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/gui/reference/common/TemplateLister.js
Show All 9 Lines | class TemplateLister | ||||
} | } | ||||
/** | /** | ||||
* Compile lists of templates buildable/trainable/researchable of a given civ. | * Compile lists of templates buildable/trainable/researchable of a given civ. | ||||
* | * | ||||
* @param {Object} civCode | * @param {Object} civCode | ||||
* @param {Object} civData - Data defining every civ in the game. | * @param {Object} civData - Data defining every civ in the game. | ||||
*/ | */ | ||||
compileTemplateLists(civCode, civData) | compileTemplateLists(civCode, civData, civModifiers) | ||||
{ | { | ||||
if (this.hasTemplateLists(civCode)) | if (this.hasTemplateLists(civCode)) | ||||
return this.templateLists.get(civCode); | return this.templateLists.get(civCode); | ||||
let templatesToParse = civData[civCode].StartEntities.map(entity => entity.Template); | let templatesToParse = civData[civCode].StartEntities.map(entity => entity.Template); | ||||
let templateLists = { | let templateLists = { | ||||
"units": new Map(), | "units": new Map(), | ||||
"structures": new Map(), | "structures": new Map(), | ||||
"techs": new Map(), | "techs": new Map(), | ||||
"wallsetPieces": new Map() | "wallsetPieces": new Map() | ||||
}; | }; | ||||
do | do | ||||
{ | { | ||||
const templatesThisIteration = templatesToParse; | const templatesThisIteration = templatesToParse; | ||||
templatesToParse = []; | templatesToParse = []; | ||||
for (let templateBeingParsed of templatesThisIteration) | for (let templateBeingParsed of templatesThisIteration) | ||||
{ | { | ||||
let baseOfTemplateBeingParsed = this.TemplateLoader.getVariantBaseAndType(templateBeingParsed, civCode)[0]; | let baseOfTemplateBeingParsed = this.TemplateLoader.getVariantBaseAndType(templateBeingParsed, civCode)[0]; | ||||
let list = this.deriveTemplateListsFromTemplate(templateBeingParsed, civCode); | let list = this.deriveTemplateListsFromTemplate(templateBeingParsed, civCode, civModifiers); | ||||
Lint: prefer-const: 'list' is never reassigned. Use 'const' instead. | |||||
for (let type in list) | for (let type in list) | ||||
for (let templateName of list[type]) | for (let templateName of list[type]) | ||||
{ | { | ||||
if (type != "techs") | if (type != "techs") | ||||
{ | { | ||||
let templateVariance = this.TemplateLoader.getVariantBaseAndType(templateName, civCode); | let templateVariance = this.TemplateLoader.getVariantBaseAndType(templateName, civCode); | ||||
if (templateVariance[1].passthru) | if (templateVariance[1].passthru) | ||||
templateName = templateVariance[0]; | templateName = templateVariance[0]; | ||||
▲ Show 20 Lines • Show All 62 Lines • ▼ Show 20 Lines | class TemplateLister | ||||
{ | { | ||||
return this.templateLists.has(civCode); | return this.templateLists.has(civCode); | ||||
} | } | ||||
/** | /** | ||||
* Compiles lists of buildable, trainable, or researchable entities from | * Compiles lists of buildable, trainable, or researchable entities from | ||||
* a named template. | * a named template. | ||||
*/ | */ | ||||
deriveTemplateListsFromTemplate(templateName, civCode) | deriveTemplateListsFromTemplate(templateName, civCode, civModifiers) | ||||
{ | { | ||||
if (!templateName || !Engine.TemplateExists(templateName)) | if (!templateName || !Engine.TemplateExists(templateName)) | ||||
return {}; | return {}; | ||||
let template = this.TemplateLoader.loadEntityTemplate(templateName, civCode); | let template = this.TemplateLoader.loadEntityTemplate(templateName, civCode); | ||||
let templateLists = this.TemplateLoader.deriveProductionQueue(template, civCode); | let templateLists = this.TemplateLoader.deriveProductionQueue(template, civCode, civModifiers); | ||||
Lint: prefer-const 'templateLists' is never reassigned. Use 'const' instead. Lint: prefer-const: 'templateLists' is never reassigned. Use 'const' instead. | |||||
templateLists.structures = this.TemplateLoader.deriveBuildQueue(template, civCode); | templateLists.structures = this.TemplateLoader.deriveBuildQueue(template, civCode); | ||||
if (template.WallSet) | if (template.WallSet) | ||||
{ | { | ||||
templateLists.wallsetPieces = []; | templateLists.wallsetPieces = []; | ||||
for (let segment in template.WallSet.Templates) | for (let segment in template.WallSet.Templates) | ||||
{ | { | ||||
segment = template.WallSet.Templates[segment].replace(/\{(civ|native)\}/g, civCode); | segment = template.WallSet.Templates[segment].replace(/\{(civ|native)\}/g, civCode); | ||||
if (Engine.TemplateExists(segment)) | if (Engine.TemplateExists(segment)) | ||||
templateLists.wallsetPieces.push(segment); | templateLists.wallsetPieces.push(segment); | ||||
} | } | ||||
} | } | ||||
return templateLists; | return templateLists; | ||||
} | } | ||||
} | } |
Wildfire Games · Phabricator
'list' is never reassigned. Use 'const' instead.