mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2025-12-30 20:41:41 +09:00
Refactor of commands
This commit is contained in:
193
old/modules/GameSettingsGui/control.lua
Normal file
193
old/modules/GameSettingsGui/control.lua
Normal file
@@ -0,0 +1,193 @@
|
||||
--- A gui for controlling game settings with sliders as well as some global commands.
|
||||
-- @module GameSettingsGui@4.0.0
|
||||
-- @author Cooldude2606
|
||||
-- @license https://github.com/explosivegaming/scenario/blob/master/LICENSE
|
||||
|
||||
-- Module Require
|
||||
local Server = require('ExpGamingCore.Server')
|
||||
local Gui = require('ExpGamingCore.Gui')
|
||||
|
||||
-- Local Variables
|
||||
--{type='slider',object='',key='',name='',min=x,max=y}
|
||||
--{type='function',object='',key='',name='',param={}}
|
||||
local basic_settings = {
|
||||
{type='slider',object='force',key='manual_mining_speed_modifier',name='mining-speed',min=0,max=10},
|
||||
{type='slider',object='force',key='manual_crafting_speed_modifier',name='craft-speed',min=0,max=10},
|
||||
{type='slider',object='force',key='character_running_speed_modifier',name='running-speed',min=0,max=10},
|
||||
{type='slider',object='force',key='character_build_distance_bonus',name='build-distance',min=0,max=50},
|
||||
{type='slider',object='force',key='character_reach_distance_bonus',name='reach-distance',min=0,max=50},
|
||||
{type='slider',object='force',key='worker_robots_speed_modifier',name='bot-speed',min=0,max=10},
|
||||
{type='slider',object='force',key='laboratory_speed_modifier',name='lab-speed',min=0,max=10},
|
||||
{type='slider',object='force',key='stack_inserter_capacity_bonus',name='stack-bonus',min=1,max=30}
|
||||
}
|
||||
|
||||
local advanced_settings = {
|
||||
{type='slider',object='force',key='quickbar_count',name='quickbar-count',min=1,max=5},
|
||||
{type='slider',object='force',key='character_inventory_slots_bonus',name='inventory-size',min=0,max=1000},
|
||||
{type='slider',object='force',key='mining_drill_productivity_bonus',name='mining-prod',min=0,max=10},
|
||||
{type='slider',object='game',key='speed',name='game-speed',min=0.01,max=5},
|
||||
{type='function',object='surface',key='clear_pollution',name='clear-pollution'},
|
||||
{type='function',object='game',key='server_save',name='save'},
|
||||
{type='function',object='force',key='reset_technology_effects',name='reload-effects'},
|
||||
{type='function',object='enemy',key='kill_all_units',name='kill-biters'},
|
||||
{type='function',object='force',key='rechart',name='reload-map'},
|
||||
{type='function',object='game',key='force_crc',name='crc'},
|
||||
{type='function',object='force',key='reset',name='reset-force'}
|
||||
}
|
||||
|
||||
local personal_settings = {
|
||||
{type='slider',object='player',key='character_mining_speed_modifier',name='mining-speed',min=0,max=10},
|
||||
{type='slider',object='player',key='character_crafting_speed_modifier',name='craft-speed',min=0,max=10},
|
||||
{type='slider',object='player',key='character_running_speed_modifier',name='running-speed',min=0,max=10},
|
||||
{type='slider',object='player',key='character_build_distance_bonus',name='build-distance',min=0,max=50},
|
||||
{type='slider',object='player',key='character_reach_distance_bonus',name='reach-distance',min=0,max=50},
|
||||
{type='slider',object='player',key='character_inventory_slots_bonus',name='inventory-size',min=0,max=1000},
|
||||
{type='slider',object='player',key='quickbar_count_bonus',name='quickbar-count',min=0,max=5}
|
||||
}
|
||||
|
||||
local _root_list = {basic_settings=basic_settings,advanced_settings=advanced_settings,personal_settings=personal_settings}
|
||||
|
||||
-- Module Define
|
||||
local module_verbose = false
|
||||
local ThisModule = {}
|
||||
|
||||
-- Function Define
|
||||
local function _get_data(root_frame)
|
||||
local object = root_frame.name
|
||||
local key = root_frame.setting_name.caption
|
||||
for _,setting in pairs(_root_list[object]) do
|
||||
if key == setting.key then return setting end
|
||||
end
|
||||
end
|
||||
|
||||
local function _object_list(player) return {game=game,player=player,force=player.force,enemy=game.forces['enemy'],surface=player.surface} end
|
||||
|
||||
for name,group in pairs(_root_list) do
|
||||
for key,setting in pairs(group) do
|
||||
local _added = nil
|
||||
if setting.type == 'slider' then
|
||||
_added = Gui.inputs.add_slider('game-settings-'..setting.name,'horizontal',setting.min,setting.max,
|
||||
function(player,root_frame)
|
||||
local data = _get_data(root_frame)
|
||||
local objects = _object_list(player)
|
||||
local object = objects[data.object]
|
||||
return object[data.key] or 1
|
||||
end,
|
||||
function(player,value,percent,element)
|
||||
local data = _get_data(element.parent)
|
||||
local objects = _object_list(player)
|
||||
local object = objects[data.object]
|
||||
local _caption = string.format('%.2f',value); if value > 2 then _caption = string.format('%.2f',math.floor(value)) end
|
||||
object[data.key] = tonumber(_caption)
|
||||
element.parent.counter.caption = _caption
|
||||
end
|
||||
)
|
||||
elseif setting.type == 'function' then
|
||||
_added = Gui.inputs.add_checkbox('game-settings-'..setting.name,true,nil,false,function(player,element)
|
||||
local data = _get_data(element.parent.parent)
|
||||
local objects = _object_list(player)
|
||||
local object = objects[data.object]
|
||||
-- if key is a function it will run the function rather than attempt to get a function
|
||||
if is_type(data.key,'function') then pcall(data.key,object,unpack(data.params))
|
||||
else pcall(object[data.key],unpack(data.params)) end
|
||||
Server.new_thread{
|
||||
timeout=60,
|
||||
data=element
|
||||
}:on_event('timeout',function(self)
|
||||
if self.data and self.data.valid then
|
||||
self.data.parent.parent['game-settings-are-you-sure'].state = false
|
||||
self.data.parent.style.visible = false
|
||||
self.data.state = false
|
||||
end
|
||||
end):open()
|
||||
end)
|
||||
if not setting.params then setting.params = {} end
|
||||
end
|
||||
setting._loaded = _added
|
||||
setting._group = name
|
||||
end
|
||||
end
|
||||
|
||||
local are_you_sure = Gui.inputs.add_checkbox('game-settings-are-you-sure',true,nil,false,function(player,element)
|
||||
element.parent.sure.style.visible = true
|
||||
Server.new_thread{
|
||||
timeout=600,
|
||||
data=element
|
||||
}:on_event('timeout',function(self)
|
||||
if self.data and self.data.valid then
|
||||
self.data.state = false
|
||||
self.data.parent.sure.style.visible = false
|
||||
end
|
||||
end):open()
|
||||
end)
|
||||
|
||||
local function _draw_setting(frame,setting)
|
||||
frame = frame.add{type='flow'}.add{
|
||||
type='flow',
|
||||
name=setting._group
|
||||
}
|
||||
frame.add{
|
||||
type='label',
|
||||
caption={'GameSettingsGui.effect-'..setting.name},
|
||||
style='caption_label'
|
||||
}
|
||||
frame.add{
|
||||
type='label',
|
||||
caption=setting.key,
|
||||
name='setting_name'
|
||||
}.style.visible = false
|
||||
if setting.type == 'slider' then
|
||||
local slider = setting._loaded(frame)
|
||||
slider.style.width = 300
|
||||
local _caption = string.format('%.2f',slider.slider_value); if slider.slider_value > 2 then _caption = tostring(math.floor(slider.slider_value)) end
|
||||
frame.add{
|
||||
type='label',
|
||||
name='counter',
|
||||
caption=_caption
|
||||
}
|
||||
elseif setting.type == 'function' then
|
||||
are_you_sure(frame)
|
||||
local flow = frame.add{type='flow',name='sure'}
|
||||
flow.style.visible = false
|
||||
flow.add{
|
||||
type='label',
|
||||
caption={'GameSettingsGui.sure'},
|
||||
style='bold_red_label'
|
||||
}
|
||||
setting._loaded(flow)
|
||||
end
|
||||
end
|
||||
|
||||
ThisModule.Gui = Gui.center{
|
||||
name='game-settings',
|
||||
caption='utility/no_building_material_icon',
|
||||
tooltip={'GameSettingsGui.tooltip'}
|
||||
}:add_tab('basic',{'GameSettingsGui.basic-name'},{'GameSettingsGui.basic-name'},function(frame)
|
||||
frame.add{
|
||||
type='label',
|
||||
caption={'GameSettingsGui.basic-message'}
|
||||
}.style.single_line = false
|
||||
for _,setting in pairs(basic_settings) do
|
||||
_draw_setting(frame,setting)
|
||||
end
|
||||
end):add_tab('advanced',{'GameSettingsGui.advanced-name'},{'GameSettingsGui.advanced-tooltip'},function(frame)
|
||||
frame.add{
|
||||
type='label',
|
||||
caption={'GameSettingsGui.advanced-message'}
|
||||
}.style.single_line = false
|
||||
for _,setting in pairs(advanced_settings) do
|
||||
_draw_setting(frame,setting)
|
||||
end
|
||||
end):add_tab('personal',{'GameSettingsGui.personal-name'},{'GameSettingsGui.personal-tooltip'},function(frame)
|
||||
frame.add{
|
||||
type='label',
|
||||
caption={'GameSettingsGui.personal-message'}
|
||||
}.style.single_line = false
|
||||
for _,setting in pairs(personal_settings) do
|
||||
_draw_setting(frame,setting)
|
||||
end
|
||||
end)
|
||||
|
||||
-- Module return
|
||||
-- when called it will open the center gui for the player
|
||||
return setmetatable(ThisModule,{__call=function(self,...) self.Gui(...) end})
|
||||
31
old/modules/GameSettingsGui/locale/de.cfg
Normal file
31
old/modules/GameSettingsGui/locale/de.cfg
Normal file
@@ -0,0 +1,31 @@
|
||||
[GameSettingsGui]
|
||||
name=Spieleinstellungen
|
||||
tooltip=Erlaubt das Modifizieren von Spieleinstellungen. Bitte mit Bedacht benutzen.
|
||||
basic-name=Einfache Einstellungen
|
||||
basic-tooltip=Diese Einstellungen sind ohne Probleme veränderbar, sie verursachen keine großen Probleme im nachhinein.
|
||||
basic-message=Dies sind fraktionsweite Einstellungen, welche genutzt werden können um das Spiel zu vereinfachen und es für Alle angenehmer zu machen.
|
||||
advanced-name=Erweiterte Einstellungen
|
||||
advanced-tooltip=Diese Einstellungen sollten nicht von Leuten benutzt werden, die nicht wissen was sie tun.
|
||||
advanced-message=Bitte ändere keine dieser Einstellungen ausser du bist dir 100% sicher was sie tun,lass game.speed allein, da es einen viel größeren Effekt hat als du denkst.
|
||||
personal-name=Persönliche Einstellungen
|
||||
personal-tooltip=Diese Einstellungen betreffen nur deinen Spieler. Wenn man dich beim cheaten erwischt bist du auf dich allein gestellt.
|
||||
personal-message=Diese Einstellungen betreffen nur deinen Spieler, übertreib es nicht ansonsten besteht die Gefahr, dass dich normale Spieler (gierige Kleinkinder) dabei erwischen (und rumheulen).
|
||||
sure=Bist du dir Sicher?!
|
||||
effect-mining-speed=Abbaugeschwindigkeit
|
||||
effect-craft-speed=Herstellgeschwindigkeit
|
||||
effect-running-speed=Laufgeschwindigkeit
|
||||
effect-build-distance=Baudistanz
|
||||
effect-reach-distance=Armreichweite
|
||||
effect-bot-speed=Robotergeschwindigkeit
|
||||
effect-lab-speed=Laborgeschwindigkeit
|
||||
effect-stack-bonus=Stapelnonuss
|
||||
effect-quickbar-count=Anzahl Schnellleistenelemente
|
||||
effect-inventory-size=Inventargröße
|
||||
effect-mining-prod=Abbauproduktivität
|
||||
effect-game-speed=Spielgeschwindigkeit
|
||||
effect-save=Spiel speichern
|
||||
effect-reload-effects=Effekte neu laden
|
||||
effect-reload-map=Minimap neu laden
|
||||
effect-kill-biters=Töte alle Beisser
|
||||
effect-crc=Forciere CRC check
|
||||
effect-reset-force=Fraktion zurücksetzen
|
||||
32
old/modules/GameSettingsGui/locale/en.cfg
Normal file
32
old/modules/GameSettingsGui/locale/en.cfg
Normal file
@@ -0,0 +1,32 @@
|
||||
[GameSettingsGui]
|
||||
name=Game Settings
|
||||
tooltip=Edits Game Settings. Please use responsibly.
|
||||
basic-name=Basic Settings
|
||||
basic-tooltip=These settings are safe to edit and have no big impact.
|
||||
basic-message=Basic Settings can be used to improve game play for players.
|
||||
advanced-name=Advanced Settings
|
||||
advanced-tooltip=These settings should be left alone unless you know what you are doing.
|
||||
advanced-message=Please do not touch the Advanced Settings unless you are 100% sure what you are doing: changes made to these settings might have a bigger impact than you realise.
|
||||
personal-name=Personal Settings
|
||||
personal-tooltip=Personal Settings only affect you.
|
||||
personal-message=Personal Settings only affect your character. If you are spotted as a result of these settings, you are on your own!
|
||||
sure=Are you sure?
|
||||
effect-mining-speed=Mining Speed
|
||||
effect-craft-speed=Crafting Speed
|
||||
effect-running-speed=Running Speed
|
||||
effect-build-distance=Build Distance
|
||||
effect-reach-distance=Reach Distance
|
||||
effect-bot-speed=Bot Speed
|
||||
effect-lab-speed=Lab Speed
|
||||
effect-stack-bonus=Stack Bonus
|
||||
effect-quickbar-count=Quickbar Count
|
||||
effect-inventory-size=Inventory Size
|
||||
effect-mining-prod=Mining Productivity
|
||||
effect-game-speed=Game Speed
|
||||
effect-save=Save Game
|
||||
effect-reload-effects=Reload Effects
|
||||
effect-reload-map=Reload Minimap
|
||||
effect-kill-biters=Kill Biters
|
||||
effect-crc=Force CRC Check
|
||||
effect-reset-force=Reset Force
|
||||
effect-clear-pollution=Clear Pollution
|
||||
31
old/modules/GameSettingsGui/locale/fr.cfg
Normal file
31
old/modules/GameSettingsGui/locale/fr.cfg
Normal file
@@ -0,0 +1,31 @@
|
||||
[GameSettingsGui]
|
||||
name=Game Settings
|
||||
tooltip=Allows for editing of the game settings, please use resposibliy.
|
||||
basic-name=Basic Settings
|
||||
basic-tooltip=These settings are safe to change with no large effects.
|
||||
basic-message=These settings are force wide settings which can be used to inprove gameplay and make it more enjoyible for players.
|
||||
advanced-name=Advanced Settings
|
||||
advanced-tooltip=These settings should be left alone unless you know what you are doing.
|
||||
advanced-message=Please do not touch these settings at all unless you know 100% what they do and the effect of using them, leave game.speed alone it has a bigger effect then you think.
|
||||
personal-name=Personal Settings
|
||||
personal-tooltip=These will only effect you, if you are spoted you are on your own.
|
||||
personal-message=These settings will only effect your player any changes you make are to be resposible ones and dont over do it or you may be caught using them.
|
||||
sure=Are You Sure!
|
||||
effect-mining-speed=Mining Speed
|
||||
effect-craft-speed=Crafting Speed
|
||||
effect-running-speed=Running Speed
|
||||
effect-build-distance=Build Distance
|
||||
effect-reach-distance=Reach Distance
|
||||
effect-bot-speed=Bot Speed
|
||||
effect-lab-speed=Lab Speed
|
||||
effect-stack-bonus=Stack Bonus
|
||||
effect-quickbar-count=Quickbar Count
|
||||
effect-inventory-size=Inventory Size
|
||||
effect-mining-prod=Mining Productivity
|
||||
effect-game-speed=Game Speed
|
||||
effect-save=Save Game
|
||||
effect-reload-effects=Reload Effects
|
||||
effect-reload-map=Reload Minimap
|
||||
effect-kill-biters=Kill Biters
|
||||
effect-crc=Force CRC Check
|
||||
effect-reset-force=Reset Force
|
||||
31
old/modules/GameSettingsGui/locale/nl.cfg
Normal file
31
old/modules/GameSettingsGui/locale/nl.cfg
Normal file
@@ -0,0 +1,31 @@
|
||||
[GameSettingsGui]
|
||||
name=Game instellingen
|
||||
tooltip=Maakt het mogelijk om gameinstellingen te wijzigen. Gebruik het verantwoord!
|
||||
basic-name=Basis instellingen
|
||||
basic-tooltip=Deze instellingen kunnen veilig worden gewijzigd.
|
||||
basic-message=Deze instellingen kunnen worden gebruikt om het spelervaring voor de spelers te verbeteren.
|
||||
advanced-name=Geavanceerde instellingen
|
||||
advanced-tooltip=Het is ten zeerste aangeraden om niet aan deze instellingen te zitten, tenzij je weet wat je doet.
|
||||
advanced-message=Waarschuwing: Niet aan deze instellingen zitten tenzij je honderd procent zeker weet wat je aan het doen bent. Het wijzigen van deze instellingen kunnen een groter effect hebben dan je denkt.
|
||||
personal-name=Persoonlijke instellingen
|
||||
personal-tooltip=Deze instellingen hebben alleen effect op jouw speler.
|
||||
personal-message=Deze instellingen hebben alleen effect op jouw speler: gebruik het verantwoord, aangezien het overmatig gebruik van deze instellingen niet zijn toegestaan.
|
||||
sure=Weet je het zeker?
|
||||
effect-mining-speed=Mining Snelheid
|
||||
effect-craft-speed=Crafting Snelheid
|
||||
effect-running-speed=Ren Snelheid
|
||||
effect-build-distance=Bouwafstand
|
||||
effect-reach-distance=Bereik
|
||||
effect-bot-speed=Bot Snelheid
|
||||
effect-lab-speed=Lab Snelheid
|
||||
effect-stack-bonus=Stack Bonus
|
||||
effect-quickbar-count=Quickbar Count
|
||||
effect-inventory-size=Inventory grootte
|
||||
effect-mining-prod=Mining Productiviteit
|
||||
effect-game-speed=Gamesnelheid
|
||||
effect-save=Opslaan
|
||||
effect-reload-effects=Effecten herladen
|
||||
effect-reload-map=Minimap herladen
|
||||
effect-kill-biters=Biters vermoorden
|
||||
effect-crc=Forceer CRC check
|
||||
effect-reset-force=Forceren resetten
|
||||
31
old/modules/GameSettingsGui/locale/sv-SE.cfg
Normal file
31
old/modules/GameSettingsGui/locale/sv-SE.cfg
Normal file
@@ -0,0 +1,31 @@
|
||||
[GameSettingsGui]
|
||||
name=Game Settings
|
||||
tooltip=Edits Game Settings. Please use responsibly.
|
||||
basic-name=Basic Settings
|
||||
basic-tooltip=These settings are safe to edit and have no big impact.
|
||||
basic-message=Basic Settings can be used to improve game play for players.
|
||||
advanced-name=Advanced Settings
|
||||
advanced-tooltip=These settings should be left alone unless you know what you are doing.
|
||||
advanced-message=Please do not touch the Advanced Settings unless you are 100% sure what you are doing: changes made to these settings might have a bigger impact than you realize.
|
||||
personal-name=Personal Settings
|
||||
personal-tooltip=Personal Settings only affects you.
|
||||
personal-message=Personal Settings only affects your character. If you are spotted as a result of these settings, you are on your own!
|
||||
sure=Are you sure?
|
||||
effect-mining-speed=Mining Speed
|
||||
effect-craft-speed=Crafting Speed
|
||||
effect-running-speed=Running Speed
|
||||
effect-build-distance=Build Distance
|
||||
effect-reach-distance=Reach Distance
|
||||
effect-bot-speed=Bot Speed
|
||||
effect-lab-speed=Lab Speed
|
||||
effect-stack-bonus=Stack Bonus
|
||||
effect-quickbar-count=Quickbar Count
|
||||
effect-inventory-size=Inventory Size
|
||||
effect-mining-prod=Mining Productivity
|
||||
effect-game-speed=Game Speed
|
||||
effect-save=Save Game
|
||||
effect-reload-effects=Reload Effects
|
||||
effect-reload-map=Reload Minimap
|
||||
effect-kill-biters=Kill Biters
|
||||
effect-crc=Force CRC Check
|
||||
effect-reset-force=Reset Force
|
||||
21
old/modules/GameSettingsGui/softmod.json
Normal file
21
old/modules/GameSettingsGui/softmod.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"name": "GameSettingsGui",
|
||||
"version": "4.0.0",
|
||||
"description": "A gui for controlling game settings with sliders as well as some global commands.",
|
||||
"location": "FSM_ARCHIVE",
|
||||
"keywords": [
|
||||
"Gui",
|
||||
"Game",
|
||||
"Game Settings",
|
||||
"Settings",
|
||||
"Admin"
|
||||
],
|
||||
"author": "Cooldude2606",
|
||||
"contact": "Discord: Cooldude2606#5241",
|
||||
"license": "https://github.com/explosivegaming/scenario/blob/master/LICENSE",
|
||||
"dependencies": {
|
||||
"ExpGamingCore.Server": "^4.0.0",
|
||||
"ExpGamingCore.Gui": "^4.0.0"
|
||||
},
|
||||
"submodules": {}
|
||||
}
|
||||
Reference in New Issue
Block a user