Ticket #3887: put_auras_back_in_structree.patch

File put_auras_back_in_structree.patch, 2.9 KB (added by s0600204, 8 years ago)
  • globalscripts/Templates.js

     
    7272 *               of properties.
    7373 * @param aurasTemplate An object in the form of {key: {auraName: "", auraDescription: ""}}
    7474 */
    75 function GetTemplateDataHelper(template, player, aurasTemplate)
     75function GetTemplateDataHelper(template, player, auraTemplates)
    7676{
    7777    var ret = {};
    7878
     
    121121    if (template.Auras)
    122122    {
    123123        ret.auras = {};
    124         for (let auraID in aurasTemplate)
     124        for (let auraID of template.Auras._string.split(/\s+/))
    125125        {
    126             let aura = aurasTemplate[auraID];
     126            let aura = auraTemplates[auraID];
    127127            if (aura.auraName)
    128128                ret.auras[auraID] = {
    129129                    "name": aura.auraName || null,
  • gui/structree/helper.js

     
    11var g_TemplateData = {};
    22var g_TechnologyData = {};
     3var g_AuraData = {};
    34
    45function loadTemplate(templateName)
    56{
     
    89        // We need to clone the template because we want to perform some translations.
    910        var data = clone(Engine.GetTemplate(templateName));
    1011        translateObjectKeys(data, ["GenericName", "SpecificName", "Tooltip"]);
    11        
     12
     13        if (template.Auras)
     14            for (let auraID of template.Auras._string.split(/\s+/))
     15                loadAuraData(auraID);
     16
    1217        g_TemplateData[templateName] = data;
    1318    }
    1419
     
    2934    return g_TechnologyData[templateName];
    3035}
    3136
     37function loadAuraData(templateName)
     38{
     39    if (!(templateName in g_AuraData))
     40    {
     41        let filename = "simulation/data/auras/" + templateName + ".json";
     42        let data = Engine.ReadJSONFile(filename);
     43        translateObjectKeys(data, ["auraName", "auraDescription"]);
     44
     45        g_AuraData[templateName] = data;
     46    }
     47
     48    return g_AuraData[templateName];
     49}
     50
    3251/**
    3352 * Fetch a value from an entity's template
    3453 *
     
    85104function GetTemplateData(templateName)
    86105{
    87106    var template = loadTemplate(templateName);
    88     return GetTemplateDataHelper(template);
     107    return GetTemplateDataHelper(template, null, g_AuraData);
    89108}
  • gui/structree/load.js

     
    4141        return null;
    4242    var template = loadTemplate(templateName);
    4343
    44     var unit = GetTemplateDataHelper(template);
     44    var unit = GetTemplateDataHelper(template, null, g_AuraData);
    4545    unit.phase = false;
    4646
    4747    if (unit.requiredTechnology)
     
    8787function loadStructure(templateName)
    8888{
    8989    var template = loadTemplate(templateName);
    90     var structure = GetTemplateDataHelper(template);
     90    var structure = GetTemplateDataHelper(template, null, g_AuraData);
    9191    structure.phase = false;
    9292
    9393    if (structure.requiredTechnology)