Differential D3243 Diff 16503 binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/Daytime.js
Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Dropdowns/Daytime.js
GameSettingControls.Daytime = class extends GameSettingControlDropdown | GameSettingControls.Daytime = class Daytime extends GameSettingControlDropdown | ||||
{ | { | ||||
constructor(...args) | constructor(...args) | ||||
{ | { | ||||
super(...args); | super(...args); | ||||
this.values = undefined; | this.values = undefined; | ||||
g_NewGameSettings.daytime.watch(() => this.render(), ["value", "data"]); | |||||
this.render(); | |||||
} | } | ||||
onHoverChange() | onHoverChange() | ||||
{ | { | ||||
this.dropdown.tooltip = this.values.Description[this.dropdown.hovered] || this.Tooltip; | this.dropdown.tooltip = this.values.Description[this.dropdown.hovered] || this.Tooltip; | ||||
} | } | ||||
onMapChange(mapData) | render() | ||||
{ | { | ||||
if (mapData && mapData.settings && mapData.settings.Daytime) | this.setHidden(!g_NewGameSettings.daytime.data); | ||||
if (!g_NewGameSettings.daytime.data) | |||||
{ | { | ||||
this.gameSettingsControl.updateGameAttributes(); | |||||
return; | |||||
} | |||||
this.values = prepareForDropdown([ | this.values = prepareForDropdown([ | ||||
{ | { | ||||
"Id": "random", | "Id": "random", | ||||
"Name": setStringTags(this.RandomTitle, this.RandomItemTags), | "Name": setStringTags(this.RandomTitle, this.RandomItemTags), | ||||
"Description": this.RandomDescription, | "Description": this.RandomDescription, | ||||
"Preview": mapData.settings.Preview | "Preview": g_NewGameSettings.map.data.settings.Preview | ||||
}, | }, | ||||
...mapData.settings.Daytime.map(item => ({ | ...g_NewGameSettings.daytime.data.map(item => ({ | ||||
"Id": item.Id, | "Id": item.Id, | ||||
"Name": translate(item.Name), | "Name": translate(item.Name), | ||||
"Description": translate(item.Description), | "Description": translate(item.Description), | ||||
"Preview": item.Preview | "Preview": item.Preview | ||||
})) | })) | ||||
]); | ]); | ||||
this.dropdown.list = this.values.Name; | this.dropdown.list = this.values.Name; | ||||
this.dropdown.list_data = this.values.Id; | this.dropdown.list_data = this.values.Id; | ||||
} | |||||
else | |||||
this.values = undefined; | |||||
this.setHidden(!this.values); | |||||
} | |||||
onGameAttributesChange() | this.setSelectedValue(g_NewGameSettings.daytime.value); | ||||
{ | |||||
if (!g_GameAttributes.map) | |||||
return; | |||||
if (this.values) | |||||
{ | |||||
if (this.values.Id.indexOf(g_GameAttributes.settings.Daytime || undefined) == -1) | |||||
{ | |||||
g_GameAttributes.settings.Daytime = "random"; | |||||
this.gameSettingsControl.updateGameAttributes(); | this.gameSettingsControl.updateGameAttributes(); | ||||
} | } | ||||
let preview = this.values.Preview[this.values.Id.indexOf(g_GameAttributes.settings.Daytime)]; | |||||
if (!g_GameAttributes.settings.Preview || g_GameAttributes.settings.Preview != preview) | |||||
{ | |||||
g_GameAttributes.settings.Preview = preview; | |||||
this.gameSettingsControl.updateGameAttributes(); | |||||
} | |||||
} | |||||
else if (g_GameAttributes.settings.Daytime !== undefined) | |||||
{ | |||||
delete g_GameAttributes.settings.Daytime; | |||||
this.gameSettingsControl.updateGameAttributes(); | |||||
} | |||||
} | |||||
onGameAttributesBatchChange() | |||||
{ | |||||
if (g_GameAttributes.settings.Daytime) | |||||
this.setSelectedValue(g_GameAttributes.settings.Daytime); | |||||
} | |||||
getAutocompleteEntries() | getAutocompleteEntries() | ||||
{ | { | ||||
return this.values && this.values.Name.slice(1); | return this.values && this.values.Name.slice(1); | ||||
} | } | ||||
onSelectionChange(itemIdx) | onSelectionChange(itemIdx) | ||||
{ | { | ||||
g_GameAttributes.settings.Daytime = this.values.Id[itemIdx]; | g_NewGameSettings.daytime.setValue(this.values.Id[itemIdx]); | ||||
this.gameSettingsControl.updateGameAttributes(); | |||||
this.gameSettingsControl.setNetworkGameAttributes(); | this.gameSettingsControl.setNetworkGameAttributes(); | ||||
} | } | ||||
onPickRandomItems() | |||||
{ | |||||
if (this.values && g_GameAttributes.settings.Daytime == "random") | |||||
{ | |||||
g_GameAttributes.settings.Daytime = pickRandom(this.values.Id.slice(1)); | |||||
this.gameSettingsControl.updateGameAttributes(); | |||||
this.gameSettingsControl.pickRandomItems(); | |||||
} | |||||
} | |||||
}; | }; | ||||
GameSettingControls.Daytime.prototype.TitleCaption = | GameSettingControls.Daytime.prototype.TitleCaption = | ||||
translate("Daytime"); | translate("Daytime"); | ||||
GameSettingControls.Daytime.prototype.Tooltip = | GameSettingControls.Daytime.prototype.Tooltip = | ||||
translate("Select whether the match takes place at daylight or night."); | translate("Select whether the match takes place at daylight or night."); | ||||
GameSettingControls.Daytime.prototype.RandomTitle = | GameSettingControls.Daytime.prototype.RandomTitle = | ||||
translateWithContext("daytime selection", "Random"); | translateWithContext("daytime selection", "Random"); | ||||
GameSettingControls.Daytime.prototype.RandomDescription = | GameSettingControls.Daytime.prototype.RandomDescription = | ||||
translateWithContext("daytime selection", "Randomly pick a time of the day."); | translateWithContext("daytime selection", "Randomly pick a time of the day."); | ||||
GameSettingControls.Daytime.prototype.AutocompleteOrder = 0; | GameSettingControls.Daytime.prototype.AutocompleteOrder = 0; |
Wildfire Games · Phabricator