Refactor state management, other changes
- State information stored in a table that is automatically populated - Changing state data handled by function instead of duplicating code - Add configuration to print all configs on skin load - Add debugPrint function which prints variable and returns it - Use local scope for snore functions
This commit is contained in:
parent
752aca78c7
commit
7de0e7f399
118
script.lua
118
script.lua
@ -90,34 +90,50 @@ function mergeTable(tb1, tb2)
|
|||||||
if type(k)=="number" then
|
if type(k)=="number" then
|
||||||
table.insert(t, v)
|
table.insert(t, v)
|
||||||
else
|
else
|
||||||
if t[k]~=nil then
|
if t[k]==nil then
|
||||||
t[k]=v
|
t[k]=v
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
return t
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function debugPrint(var)
|
||||||
|
print(dumpTable(var))
|
||||||
|
return var
|
||||||
|
end
|
||||||
|
|
||||||
-- }}}
|
-- }}}
|
||||||
|
|
||||||
-- local state variables (do not access within pings) --
|
-- master state variables and configuration (do not access within pings) --
|
||||||
-- armor_enabled=data.load("armor_enabled")
|
do
|
||||||
-- if armor_enabled==nil then
|
local defaults={
|
||||||
-- armor_enabled=true
|
["armor_enabled"]=true,
|
||||||
-- else
|
["vanilla_enabled"]=false,
|
||||||
-- armor_enabled=armor_enabled=="true"
|
["snore_enabled"]=true,
|
||||||
-- end
|
["print_settings"]=false
|
||||||
-- vanilla_enabled=data.load("vanilla_enabled")
|
}
|
||||||
-- if vanilla_enabled==nil then
|
|
||||||
-- vanilla_enabled=false
|
skin_state=mergeTable(
|
||||||
-- else
|
map(unstring,data.loadAll()),
|
||||||
-- vanilla_enabled=vanilla_enabled=="true"
|
defaults)
|
||||||
-- end
|
end
|
||||||
-- snore_enabled=data.load("snore_enabled")
|
|
||||||
-- if snore_enabled==nil then
|
if skin_state.print_settings==true then
|
||||||
-- snore_enabled=false
|
print("Settings:")
|
||||||
-- else
|
for k, v in pairs(skin_state) do
|
||||||
-- snore_enabled=snore_enabled=="true"
|
print(tostring(k)..": "..tostring(v))
|
||||||
-- end
|
end
|
||||||
state={}
|
end
|
||||||
|
|
||||||
|
function setState(name, state)
|
||||||
|
if state == nil then
|
||||||
|
skin_state[name]=not skin_state[name]
|
||||||
|
else
|
||||||
|
skin_state[name]=state
|
||||||
|
end
|
||||||
|
data.save(name, skin_state[name])
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
-- Parts --
|
-- Parts --
|
||||||
@ -136,7 +152,6 @@ for _, v in pairs(VANILLA_INNER) do table.insert(VANILLA_ALL,v) end
|
|||||||
for _, v in pairs(VANILLA_OUTER) do table.insert(VANILLA_ALL,v) end
|
for _, v in pairs(VANILLA_OUTER) do table.insert(VANILLA_ALL,v) end
|
||||||
|
|
||||||
SNORES={"snore-1", "snore-2", "snore-3"}
|
SNORES={"snore-1", "snore-2", "snore-3"}
|
||||||
snore_index=1
|
|
||||||
|
|
||||||
-- Expression change -- {{{
|
-- Expression change -- {{{
|
||||||
do
|
do
|
||||||
@ -202,13 +217,8 @@ end
|
|||||||
|
|
||||||
--- Toggle Armor ---
|
--- Toggle Armor ---
|
||||||
function setArmor(state)
|
function setArmor(state)
|
||||||
if state == nil then
|
setState("armor_enabled", state)
|
||||||
armor_enabled=not armor_enabled
|
ping.setArmor(skin_state.armor_enabled)
|
||||||
else
|
|
||||||
armor_enabled=state
|
|
||||||
end
|
|
||||||
data.save("armor_enabled", armor_enabled)
|
|
||||||
ping.setArmor(armor_enabled)
|
|
||||||
end
|
end
|
||||||
function ping.setArmor(state)
|
function ping.setArmor(state)
|
||||||
for key, value in pairs(armor_model) do
|
for key, value in pairs(armor_model) do
|
||||||
@ -216,35 +226,31 @@ function ping.setArmor(state)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function snore()
|
do
|
||||||
|
local snore_enabled=false
|
||||||
|
local snore_index=1
|
||||||
|
function snore()
|
||||||
if snore_enabled then
|
if snore_enabled then
|
||||||
sound.playCustomSound(SNORES[snore_index], player.getPos(), vectors.of{20,1})
|
sound.playCustomSound(SNORES[snore_index],
|
||||||
|
player.getPos(), vectors.of{20,1})
|
||||||
snore_index=snore_index%#SNORES+1
|
snore_index=snore_index%#SNORES+1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function setSnoring(state)
|
function setSnoring(state)
|
||||||
if state == nil then
|
setState("snore_enabled", state)
|
||||||
snore_enabled=not snore_enabled
|
ping.setSnoring(skin_state.snore_enabled)
|
||||||
else
|
end
|
||||||
|
|
||||||
|
function ping.setSnoring(state)
|
||||||
snore_enabled=state
|
snore_enabled=state
|
||||||
end
|
end
|
||||||
data.save("snore_enabled", snore_enabled)
|
|
||||||
end
|
|
||||||
|
|
||||||
function ping.setSnoring(state)
|
|
||||||
snore_enabled=state
|
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Toggle Vanilla ---
|
--- Toggle Vanilla ---
|
||||||
function setVanilla(state)
|
function setVanilla(state)
|
||||||
if state == nil then
|
setState("vanilla_enabled", state)
|
||||||
vanilla_enabled=not vanilla_enabled
|
ping.setVanilla(skin_state.vanilla_enabled)
|
||||||
else
|
|
||||||
vanilla_enabled=state
|
|
||||||
end
|
|
||||||
data.save("vanilla_enabled", vanilla_enabled)
|
|
||||||
ping.setVanilla(vanilla_enabled)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function ping.setVanilla(state)
|
function ping.setVanilla(state)
|
||||||
@ -258,9 +264,9 @@ function ping.setVanilla(state)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function syncState()
|
function syncState()
|
||||||
ping.setArmor(armor_enabled)
|
ping.setArmor(skin_state.armor_enabled)
|
||||||
ping.setVanilla(vanilla_enabled)
|
ping.setVanilla(skin_state.vanilla_enabled)
|
||||||
ping.setSnoring(snore_enabled)
|
ping.setSnoring(skin_state.snore_enabled)
|
||||||
end
|
end
|
||||||
-- }}}
|
-- }}}
|
||||||
|
|
||||||
@ -379,7 +385,7 @@ function onCommand(input)
|
|||||||
input=splitstring(input)
|
input=splitstring(input)
|
||||||
if input[1] == chat_prefix .. "vanilla" then
|
if input[1] == chat_prefix .. "vanilla" then
|
||||||
setVanilla()
|
setVanilla()
|
||||||
print("Vanilla skin is now " .. (vanilla_enabled and "enabled" or "disabled"))
|
print("Vanilla skin is now " .. (skin_state.vanilla_enabled and "enabled" or "disabled"))
|
||||||
end
|
end
|
||||||
if input[1] == chat_prefix .. "toggle_custom" then
|
if input[1] == chat_prefix .. "toggle_custom" then
|
||||||
for key, value in pairs(model) do
|
for key, value in pairs(model) do
|
||||||
@ -403,12 +409,16 @@ function onCommand(input)
|
|||||||
if input[1] == chat_prefix .. "snore" then
|
if input[1] == chat_prefix .. "snore" then
|
||||||
if input[2] == "toggle" or #input==1 then
|
if input[2] == "toggle" or #input==1 then
|
||||||
setSnoring()
|
setSnoring()
|
||||||
log("Snoring is now " .. (snore_enabled and "enabled" or "disabled"))
|
log("Snoring is now " .. (skin_state.snore_enabled and "enabled" or "disabled"))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if input[1] == chat_prefix .. "armor" then
|
if input[1] == chat_prefix .. "armor" then
|
||||||
setArmor()
|
setArmor()
|
||||||
log("Armor is now " .. (armor_enabled and "enabled" or "disabled"))
|
log("Armor is now " .. (skin_state.armor_enabled and "enabled" or "disabled"))
|
||||||
|
end
|
||||||
|
if input[1] == chat_prefix .. "settings" then
|
||||||
|
setState("print_settings")
|
||||||
|
log("Printing of settings on skin load is now " .. (skin_state.print_settings and "enabled" or "disabled"))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user