From fd308286decd60190db1ddbe2960f20c183ed5b3 Mon Sep 17 00:00:00 2001 From: Cooldude2606 Date: Thu, 4 Jan 2018 00:41:27 +0000 Subject: [PATCH] Adding Game Settings Gui Works --- Addons/Guis/game-settings.lua | 97 ++++++++++++++++++----------------- Addons/playerRanks.lua | 2 +- locale/en/game-settings.cfg | 6 ++- 3 files changed, 55 insertions(+), 50 deletions(-) diff --git a/Addons/Guis/game-settings.lua b/Addons/Guis/game-settings.lua index 1ce06ae5..fe23d79a 100644 --- a/Addons/Guis/game-settings.lua +++ b/Addons/Guis/game-settings.lua @@ -11,8 +11,8 @@ Discord: https://discord.gg/r6dC2uK --{type='slider',object='',key='',name='',min=x,max=y} --{type='function',object='',key='',name='',param={}} local basic_settings = { - -- mining - -- crafting + {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 @@ -22,12 +22,12 @@ local basic_settings = { } local advanced_settings = { - -- hotbar count + {type='slider',object='force',key='quickbar_count',name='quickbar-count',min=1,max=5}, -- inventory size -- mining prog -- game speed -- force crc -function - -- save game -function + {type='function',object='game',key='server_save',name='save'} -- reset force -function -- reload effects -function -- kill bitters -function @@ -35,8 +35,8 @@ local advanced_settings = { } local personal_settings = { - -- craft speed - -- mining speed + {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 @@ -49,47 +49,48 @@ local _root_list = {basic_settings=basic_settings,advanced_settings=advanced_set local function _get_data(root_frame) local object = root_frame.name local key = root_frame.setting_name.caption - local data = _root_list[object] and _root_list[object][key] - return data + 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} end for name,group in pairs(_root_list) do for key,setting in pairs(group) do - if key ~= '_loaded' and key ~= key then - 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 nil - end, - function(player,value,percent,element) - local data = _get_data(element.parent) - local objects = _object_list(player) - local object = objects[data.object] - object[key] = value - element.parent.counter.caption = tostring(value) - end - ) - elseif setting.type == 'function' then - _added = Gui.add_check('game-settings-'..setting.name,true,nil,false,function(player,element) + 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] - pcall(object[data.key],unpack(data.params)) - end) - end - setting._loaded = _added - setting._group = name + object[data.key] = value + element.parent.counter.caption = tostring(value) + 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 objects = _object_list(player) + local object = objects[data.object] + pcall(object[data.key],unpack(data.params)) + end) + if not setting.params then setting.params = {} end end + setting._loaded = _added + setting._group = name end end local function _draw_setting(frame,setting) + local frame = frame.add{type='flow'} local frame = frame.add{ type='flow', name=setting._group @@ -101,15 +102,15 @@ local function _draw_setting(frame,setting) } frame.add{ type='label', - caption=settings.name, + caption=setting.key, name='setting_name' - } + }.style.visible = false if setting.type == 'slider' then local slider = setting._loaded:draw(frame) frame.add{ type='label', name='counter', - caption=tostring(slider.value) + caption=tostring(slider.slider_value) } elseif setting.type == 'function' then setting._loaded:draw(frame) @@ -121,27 +122,27 @@ Gui.center.add{ caption='utility/no_building_material_icon', tooltip={'game-settings.tooltip'} }:add_tab('basic',{'game-settings.basic-name'},{'game-settings.basic-name'},function(frame) + frame.add{ + type='label', + caption={'game-settings.basic-message'} + }.style.single_line = false for _,setting in pairs(basic_settings) do - frame.add{ - type='label', - caption={'game-settings.basic-message'} - } _draw_setting(frame,setting) end end):add_tab('advanced',{'game-settings.advanced-name'},{'game-settings.advanced-tooltip'},function(frame) + frame.add{ + type='label', + caption={'game-settings.advanced-message'} + }.style.single_line = false for _,setting in pairs(advanced_settings) do - frame.add{ - type='label', - caption={'game-settings.advanced-message'} - } _draw_setting(frame,setting) end end):add_tab('personal',{'game-settings.personal-name'},{'game-settings.personal-tooltip'},function(frame) + frame.add{ + type='label', + caption={'game-settings.personal-message'} + }.style.single_line = false for _,setting in pairs(personal_settings) do - frame.add{ - type='label', - caption={'game-settings.personal-message'} - } _draw_setting(frame,setting) end end) \ No newline at end of file diff --git a/Addons/playerRanks.lua b/Addons/playerRanks.lua index 85834a56..1fc1fe70 100644 --- a/Addons/playerRanks.lua +++ b/Addons/playerRanks.lua @@ -128,7 +128,7 @@ groups['User']:add_rank{ power=4 } -rank['Admin']:edit('allow',false,{ +ranks['Admin']:edit('allow',false,{ ['game-settings']=true }) diff --git a/locale/en/game-settings.cfg b/locale/en/game-settings.cfg index dd6fad1f..e9468aac 100644 --- a/locale/en/game-settings.cfg +++ b/locale/en/game-settings.cfg @@ -9,4 +9,8 @@ advanced-tooltip=These settings should be left alone unless you know what you ar 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. \ No newline at end of file +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. +effect-mining-speed=Mining Speed +effect-craft-speed=Crafting Speed +effect-quickbar-count=Quickbar Count +effect-save=Save Game \ No newline at end of file