Ticket #1580: 1580.3.diff

File 1580.3.diff, 6.2 KB (added by Stan, 9 years ago)

Working Color Dropdown

  • binaries/data/mods/public/gui/common/settings.js

     
    3232    var settings = {
    3333        "Ceasefire": loadCeasefire(),
    3434        "GameSpeeds": loadSettingValuesFile("game_speeds.json"),
     35        "PlayerColors": loadPlayerColors(),
    3536        "PopulationCapacities": loadPopulationCapacities(),
    3637        "StartingResources": loadSettingValuesFile("starting_resources.json")
    3738    };
     
    8990}
    9091
    9192/**
     93* Loads available colors settings.
     94*
     95* @returns {Array|undefined}
     96*/
     97function loadPlayerColors()
     98{
     99    var json = Engine.ReadJSONFile("simulation/data/player_defaults.json");
     100
     101    if (!json || !json.PlayerData || !Array.isArray(json.PlayerData))
     102    {
     103        error("Could not load player_defaults.json");
     104        return undefined;
     105    }
     106
     107    return json.PlayerData.map(player => player.Color);
     108}
     109
     110/**
    92111 * Loads available population capacities.
    93112 *
    94113 * @returns {Array|undefined}
  • binaries/data/mods/public/gui/gamesetup/gamesetup.js

     
    77
    88const g_Ceasefire = prepareForDropdown(g_Settings ? g_Settings.Ceasefire : undefined);
    99const g_GameSpeeds = prepareForDropdown(g_Settings ? g_Settings.GameSpeeds.filter(speed => !speed.ReplayOnly) : undefined);
     10const g_PlayerColors = prepareForDropdown(g_Settings ? g_Settings.PlayerColors : undefined);
    1011const g_PopulationCapacities = prepareForDropdown(g_Settings ? g_Settings.PopulationCapacities : undefined);
    1112const g_StartingResources = prepareForDropdown(g_Settings ? g_Settings.StartingResources : undefined);
    1213
     
    5051
    5152var g_AIs = [];
    5253
     54var g_PlayerColorIds = [];
     55var g_PlayerColorNames = [];
     56var g_PlayerColorValues = [];
     57
    5358var g_ChatMessages = [];
    5459
    5560// Data caches
     
    380385            updateGameAttributes();
    381386        };
    382387
     388        // Populate color drop-down lists.
     389        var colorPicker = Engine.GetGUIObjectByName("playerColorPicker["+i+"]");
     390        colorPicker.list = getPlayerColorNames();
     391        colorPicker.list_data = getPlayerColorIds();
     392        colorPicker.selected = -1;
     393        // Update color
     394        colorPicker.onSelectionChange = function()
     395        {
     396            if (this.selected !== -1)
     397            {
     398                var numPlayers = g_GameAttributes.settings.PlayerData.length;
     399
     400            }
     401        }
     402
    383403        // Set events
    384404        var civ = Engine.GetGUIObjectByName("playerCiv["+i+"]");
    385405        civ.onSelectionChange = function() {
     
    413433    }
    414434}
    415435
     436function getPlayerColorIds()
     437{
     438    for(let i = 0; i < g_PlayerColors.r.length;++i)
     439        g_PlayerColorIds[i] = i;
     440
     441    return g_PlayerColorIds;
     442}
     443function getPlayerColorNames()
     444{
     445    for(let i = 0; i < g_PlayerColors.r.length;++i)
     446        g_PlayerColorNames[i] = "[color=\"" + g_PlayerColors.r[i] + " " + g_PlayerColors.g[i] + " " + g_PlayerColors.b[i] + " 255\"]" + "■";
     447
     448        return g_PlayerColorNames;
     449}
     450function getPlayerColorValues()
     451{
     452    for(let i = 0; i < g_PlayerColors.r.length;++i)
     453    {
     454        g_PlayerColorValues[i].r = g_PlayerColors.r[i];
     455        g_PlayerColorValues[i].g = g_PlayerColors.g[i];
     456        g_PlayerColorValues[i].b = g_PlayerColors.b[i];
     457    }
     458
     459    return g_PlayerColorValues;
     460}
     461
    416462function handleNetMessage(message)
    417463{
    418464    log("Net message: " + uneval(message));
  • binaries/data/mods/public/gui/gamesetup/gamesetup.xml

     
    4242            <!-- Player assignments -->
    4343            <object size="24 49 100%-440 345" type="image" sprite="ModernDarkBoxGold" name="playerAssignmentsPanel">
    4444                <object size="0 6 100% 30">
    45                     <object name="playerNameHeading" type="text" style="ModernLabelText" size="0 0 22% 100%">
     45                    <object name="playerNameHeading" type="text" style="ModernLabelText" size="0 0 16% 100%">
    4646                        <translatableAttribute id="caption">Player Name</translatableAttribute>
    4747                    </object>
     48                    <object name="playerColorHeading" type="text" style="ModernLabelText" size="-2% 0 40% 100%">
     49                        <translatableAttribute id="caption">Color</translatableAttribute>
     50                    </object>
    4851                    <object name="playerPlacementHeading" type="text" style="ModernLabelText" size="22%+5 0 50%+35 100%">
    4952                        <translatableAttribute id="caption">Player Placement</translatableAttribute>
    5053                    </object>
     
    7174                    <repeat count="8">
    7275                        <object name="playerBox[n]" size="0 0 100% 32" hidden="true">
    7376                            <object name="playerColor[n]" type="image" size="0 0 100% 100%"/>
    74                             <object name="playerName[n]" type="text" style="ModernLabelText" size="0 2 22% 30"/>
     77                            <object name="playerName[n]" type="text" style="ModernLabelText" size="0 0 16% 100%"/>
     78                            <object name="playerColorPicker[n]" type="dropdown" style="ModernDropDown" size="16%+5 2 20%+5 30" tooltip_style="onscreenToolTip">
     79                                <translatableAttribute id="tooltip">Pick Color.</translatableAttribute>
     80                            </object>
    7581                            <object name="playerAssignment[n]" type="dropdown" style="ModernDropDown" size="22%+5 2 50%+35 30" tooltip_style="onscreenToolTip">
    7682                                <translatableAttribute id="tooltip">Select player.</translatableAttribute>
    7783                            </object>
     
    152158                    tooltip_style="onscreenToolTip">
    153159                    <translatableAttribute id="tooltip">Select a map to play on.</translatableAttribute>
    154160                    <action on="SelectionChange">
    155                         if (this.list_data[this.selected]) 
     161                        if (this.list_data[this.selected])
    156162                            selectMap(this.list_data[this.selected]);
    157163                    </action>
    158164                </object>
     
    179185
    180186            <!-- Map Description -->
    181187            <object size="100%-425 529 100%-25 100%-60">
    182                 <object name="mapInfoName" type="text" style="ModernLeftLabelText" size="0 0 100%-120 30"/> 
     188                <object name="mapInfoName" type="text" style="ModernLeftLabelText" size="0 0 100%-120 30"/>
    183189                <object type="image" sprite="ModernDarkBoxGold" size="0 30 100% 100%">
    184190                    <object name="mapInfoDescription" type="text" style="MapDescription" size="0 0 100% 100%"/>
    185191                </object>