Compare commits

..

5 Commits

Author SHA1 Message Date
8428d6e027
Update nulllib 2023-06-26 23:40:20 -04:00
400318bb63
Add start of sharedconfig callbacks 2023-06-26 22:07:41 -04:00
79cd101467
Refresh PartsManager during init 2023-06-26 15:48:30 -04:00
7e1f68e6f8
Refactor deprecated code 2023-06-26 15:48:15 -04:00
b3b518dc42
Update nulllib 2023-06-26 15:45:32 -04:00
2 changed files with 34 additions and 26 deletions

@ -1 +1 @@
Subproject commit b891cf1efce1f68b1be09063e4cb83af5ac8a180 Subproject commit a65b6b323dc7c3c80f0305b28f126cd9d2b317ac

View File

@ -3,12 +3,6 @@
--- Initial definitions --- --- Initial definitions ---
-- rewrite compat -- rewrite compat
model=models.player_model model=models.player_model
armor_model={
["BOOTS"]=vanilla_model.BOOTS,
["LEGGINGS"]=vanilla_model.LEGGINGS,
["CHESTPLATE"]=vanilla_model.CHESTPLATE,
["HELMET"]=vanilla_model.HELMET
}
ping=pings ping=pings
-- Texture dimensions -- -- Texture dimensions --
@ -27,13 +21,21 @@ sharedconfig=require("nulllib.sharedconfig")
wave=nmath.wave wave=nmath.wave
lerp=math.lerp lerp=math.lerp
-- Master and local state variables -- {{{ -- Master config -- {{{
-- Local State (these are copied by pings at runtime) -- -- Local State (these are copied by pings at runtime) --
---@deprecated use sharedstate or sharedconfig
local_state={} local_state={}
---@deprecated use sharedstate or sharedconfig
old_state={} old_state={}
-- master state variables and configuration (do not access within pings) -- -- master state variables and configuration (do not access within pings) --
do do
local is_host=host:isHost() local function refresh_armor()
if player:isLoaded() then PartsManager.refreshPartList(VANILLA_GROUPS.ARMOR) end
end
local function refresh_tail()
if player:isLoaded() then PartsManager.refreshPart(model.Body_Tail) end
end
local defaults={ local defaults={
["armor_enabled"]=true, ["armor_enabled"]=true,
["vanilla_enabled"]=false, ["vanilla_enabled"]=false,
@ -41,6 +43,12 @@ do
["print_settings"]=false, ["print_settings"]=false,
["tail_enabled"]=true, ["tail_enabled"]=true,
} }
local callbacks={
["armor_enabled"]=refresh_armor,
["tail_enabled"]=refresh_tail
}
sharedconfig.load_defaults(defaults, callbacks)
end end
function printSettings() function printSettings()
@ -56,20 +64,19 @@ end
-- Part groups {{{ -- Part groups {{{
VANILLA_GROUPS={ VANILLA_GROUPS={
["HEAD"]={vanilla_model.HEAD, vanilla_model.HAT}, ["HEAD"]={vanilla_model.HEAD, vanilla_model.HAT},
["TORSO"]={vanilla_model.TORSO, vanilla_model.JACKET}, ["TORSO"]={vanilla_model.BODY, vanilla_model.JACKET},
["LEFT_ARM"]={vanilla_model.LEFT_ARM, vanilla_model.LEFT_SLEEVE}, ["LEFT_ARM"]={vanilla_model.LEFT_ARM, vanilla_model.LEFT_SLEEVE},
["RIGHT_ARM"]={vanilla_model.RIGHT_ARM, vanilla_model.RIGHT_SLEEVE}, ["RIGHT_ARM"]={vanilla_model.RIGHT_ARM, vanilla_model.RIGHT_SLEEVE},
["LEFT_LEG"]={vanilla_model.LEFT_LEG, vanilla_model.LEFT_PANTS_LEG}, ["LEFT_LEG"]={vanilla_model.LEFT_LEG, vanilla_model.LEFT_PANTS},
["RIGHT_LEG"]={vanilla_model.RIGHT_LEG, vanilla_model.RIGHT_PANTS_LEG}, ["RIGHT_LEG"]={vanilla_model.RIGHT_LEG, vanilla_model.RIGHT_PANTS},
["OUTER"]={ vanilla_model.HAT, vanilla_model.JACKET, vanilla_model.LEFT_SLEEVE, vanilla_model.RIGHT_SLEEVE, vanilla_model.LEFT_PANTS_LEG, vanilla_model.RIGHT_PANTS_LEG }, ["OUTER"]={ vanilla_model.HAT, vanilla_model.JACKET, vanilla_model.LEFT_SLEEVE, vanilla_model.RIGHT_SLEEVE, vanilla_model.LEFT_PANTS, vanilla_model.RIGHT_PANTS },
["INNER"]={ vanilla_model.HEAD, vanilla_model.TORSO, vanilla_model.LEFT_ARM, vanilla_model.RIGHT_ARM, vanilla_model.LEFT_LEG, vanilla_model.RIGHT_LEG }, ["INNER"]={ vanilla_model.HEAD, vanilla_model.BODY, vanilla_model.LEFT_ARM, vanilla_model.RIGHT_ARM, vanilla_model.LEFT_LEG, vanilla_model.RIGHT_LEG },
["ALL"]={}, ["ALL"]={},
["ARMOR"]={} ["ARMOR"]={vanilla_model.HELMET, vanilla_model.LEGGINGS, vanilla_model.BOOTS, vanilla_model.CHESTPLATE}
} }
for _, v in pairs(VANILLA_GROUPS.INNER) do table.insert(VANILLA_GROUPS.ALL,v) end for _, v in pairs(VANILLA_GROUPS.INNER) do table.insert(VANILLA_GROUPS.ALL,v) end
for _, v in pairs(VANILLA_GROUPS.OUTER) do table.insert(VANILLA_GROUPS.ALL,v) end for _, v in pairs(VANILLA_GROUPS.OUTER) do table.insert(VANILLA_GROUPS.ALL,v) end
for _, v in pairs(armor_model) do table.insert(VANILLA_GROUPS.ARMOR, v) end
MAIN_GROUPS={model.Head, model.RightArm, model.LeftArm, model.RightLeg, model.LeftLeg, model.Body } -- RightArm LeftArm RightLeg LeftLeg Body Head MAIN_GROUPS={model.Head, model.RightArm, model.LeftArm, model.RightLeg, model.LeftLeg, model.Body } -- RightArm LeftArm RightLeg LeftLeg Body Head
TAIL_BONES={model.Body_Tail, model.Body_Tail.Tail2, model.Body_Tail.Tail2.Tail3, model.Body_Tail.Tail2.Tail3.Tail4} TAIL_BONES={model.Body_Tail, model.Body_Tail.Tail2, model.Body_Tail.Tail2.Tail3, model.Body_Tail.Tail2.Tail3.Tail4}
@ -142,11 +149,11 @@ TAIL_ROT={vec( 37.5, 0, 0 ), vec( -17.5, 0, 0 ), vec( -17.5, 0, 0 ), vec( -15, 0
do do
local can_modify_vanilla=avatar:canEditVanillaModel() local can_modify_vanilla=avatar:canEditVanillaModel()
local function forceVanilla() local function forceVanilla()
return not can_modify_vanilla or local_state.vanilla_enabled return not can_modify_vanilla or sharedconfig.load("vanilla_enabled")
end end
local function vanillaPartial() local function vanillaPartial()
return not local_state.vanilla_enabled and local_state.vanilla_partial return not sharedconfig.load("vanilla_enabled") and sharedconfig.load("vanilla_partial")
end end
@ -155,23 +162,23 @@ do
local vanilla_partial_disabled=MAIN_GROUPS local vanilla_partial_disabled=MAIN_GROUPS
-- Vanilla state -- Vanilla state
PM.addPartGroupFunction(VANILLA_GROUPS.ALL, function() return false end) PM.addPartListFunction(VANILLA_GROUPS.ALL, function() return false end)
PM.addPartGroupFunction(VANILLA_GROUPS.ALL, function(last) return last or forceVanilla() end) PM.addPartListFunction(VANILLA_GROUPS.ALL, function(last) return last or forceVanilla() end)
PM.addPartGroupFunction(VANILLA_GROUPS.ALL, function(last) return last or vanillaPartial() end) PM.addPartListFunction(VANILLA_GROUPS.ALL, function(last) return last or vanillaPartial() end)
-- disable cape if tail enabled -- disable cape if tail enabled
PM.addPartFunction(vanilla_model.CAPE, function(last) return last and not local_state.tail_enabled end) PM.addPartFunction(vanilla_model.CAPE, function(last) return last and not sharedconfig.load("tail_enabled") end)
-- Custom state -- Custom state
PM.addPartGroupFunction(vanilla_partial_disabled, function(last) return last and not vanillaPartial() end) PM.addPartListFunction(vanilla_partial_disabled, function(last) return last and not vanillaPartial() end)
PM.addPartGroupFunction(MAIN_GROUPS, function(last) return last and not forceVanilla() end) PM.addPartListFunction(MAIN_GROUPS, function(last) return last and not forceVanilla() end)
-- enable tail -- enable tail
PM.addPartFunction(model.Body_Tail, function(last) return last and local_state.tail_enabled end) PM.addPartFunction(model.Body_Tail, function(last) return last and sharedconfig.load("tail_enabled") end)
-- Armor state -- Armor state
PM.addPartGroupFunction(VANILLA_GROUPS.ARMOR, function(last) return last and local_state.armor_enabled end) PM.addPartListFunction(VANILLA_GROUPS.ARMOR, function(last) return last and sharedconfig.load("armor_enabled") end)
end end
@ -197,6 +204,7 @@ function player_init()
-- end -- end
-- syncState() -- syncState()
events.ENTITY_INIT:remove("player_init") events.ENTITY_INIT:remove("player_init")
PartsManager.refreshAll()
end end
events.ENTITY_INIT:register(function() return player_init() end, "player_init") events.ENTITY_INIT:register(function() return player_init() end, "player_init")