mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2025-12-27 11:35:22 +09:00
148 lines
5.2 KiB
Lua
148 lines
5.2 KiB
Lua
--[[
|
|
Explosive Gaming
|
|
|
|
This file can be used with permission but this and the credit below must remain in the file.
|
|
Contact a member of management on our discord to seek permission to use our code.
|
|
Any changes that you may make to the code are yours but that does not make the script yours.
|
|
Discord: https://discord.gg/r6dC2uK
|
|
]]
|
|
--Please Only Edit Below This Line-----------------------------------------------------------
|
|
|
|
--{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}
|
|
-- running
|
|
-- build distance
|
|
-- reach
|
|
-- bot speed
|
|
-- lab speed
|
|
-- stack bonus
|
|
}
|
|
|
|
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
|
|
}
|
|
|
|
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
|
|
}
|
|
|
|
local _root_list = {basic_settings=basic_settings,advanced_settings=advanced_settings,personal_settings=personal_settings}
|
|
|
|
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} 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]
|
|
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
|
|
}
|
|
frame.add{
|
|
type='label',
|
|
caption={'game-settings.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:draw(frame)
|
|
frame.add{
|
|
type='label',
|
|
name='counter',
|
|
caption=tostring(slider.slider_value)
|
|
}
|
|
elseif setting.type == 'function' then
|
|
setting._loaded:draw(frame)
|
|
end
|
|
end
|
|
|
|
Gui.center.add{
|
|
name='game-settings',
|
|
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
|
|
_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
|
|
_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
|
|
_draw_setting(frame,setting)
|
|
end
|
|
end) |