diff --git a/Addons/Guis/game-settings.lua b/Addons/Guis/game-settings.lua index fe23d79a..949a494f 100644 --- a/Addons/Guis/game-settings.lua +++ b/Addons/Guis/game-settings.lua @@ -12,36 +12,36 @@ Discord: https://discord.gg/r6dC2uK --{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} - -- running - -- build distance - -- reach - -- bot speed - -- lab speed - -- stack bonus + {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}, - -- inventory size - -- mining prog - -- game speed - -- force crc -function - {type='function',object='game',key='server_save',name='save'} - -- reset force -function - -- reload effects -function - -- kill bitters -function - -- re chart map -function + {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='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} - -- running speed - -- build distance - -- reach distance - -- quick bar count - -- inventory slots + {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} @@ -54,7 +54,7 @@ local function _get_data(root_frame) end end -local function _object_list(player) return {game=game,player=player,force=player.force} end +local function _object_list(player) return {game=game,player=player,force=player.force,enemy=game.forces['enemy']} end for name,group in pairs(_root_list) do for key,setting in pairs(group) do @@ -71,16 +71,27 @@ for name,group in pairs(_root_list) do local data = _get_data(element.parent) local objects = _object_list(player) local object = objects[data.object] - object[data.key] = value - element.parent.counter.caption = tostring(value) + 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) + local data = _get_data(element.parent.parent) local objects = _object_list(player) local object = objects[data.object] pcall(object[data.key],unpack(data.params)) + Server.new_thread{ + timeout=60, + data=element + }:on_event('timeout',function(self) + if self.data and self.data.valid then + element.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 @@ -89,6 +100,19 @@ for name,group in pairs(_root_list) do 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) local frame = frame.add{type='flow'} local frame = frame.add{ @@ -107,13 +131,23 @@ local function _draw_setting(frame,setting) }.style.visible = false if setting.type == 'slider' then local slider = setting._loaded:draw(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=tostring(slider.slider_value) + caption=_caption } elseif setting.type == 'function' then - setting._loaded:draw(frame) + are_you_sure:draw(frame) + local flow = frame.add{type='flow',name='sure'} + flow.style.visible = false + flow.add{ + type='label', + caption={'game-settings.sure'}, + style='bold_red_label' + } + setting._loaded:draw(flow) end end diff --git a/locale/en/game-settings.cfg b/locale/en/game-settings.cfg index e9468aac..cfbcc6e9 100644 --- a/locale/en/game-settings.cfg +++ b/locale/en/game-settings.cfg @@ -10,7 +10,22 @@ advanced-message=Please do not touch these settings at all unless you know 100% 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-save=Save Game \ No newline at end of file +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 \ No newline at end of file