mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2025-12-27 11:35:22 +09:00
Adding Game Settings Gui Works
This commit is contained in:
@@ -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)
|
||||
@@ -128,7 +128,7 @@ groups['User']:add_rank{
|
||||
power=4
|
||||
}
|
||||
|
||||
rank['Admin']:edit('allow',false,{
|
||||
ranks['Admin']:edit('allow',false,{
|
||||
['game-settings']=true
|
||||
})
|
||||
|
||||
|
||||
@@ -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.
|
||||
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
|
||||
Reference in New Issue
Block a user