Skip to content

Commit d655fe3

Browse files
authored
ACF squishy by default setting (#16)
* make squishty damage off by default * squishy by default setting * check shows default
1 parent 11a7df5 commit d655fe3

File tree

6 files changed

+47
-9
lines changed

6 files changed

+47
-9
lines changed

lua/warden/gui/cl_menu.lua

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,18 @@ end)
55
local setPermPnl
66
local setPermPnlExtra
77
local checks = {}
8+
local permChecks = {}
89

910
local function setPerms(panel)
11+
permChecks = {}
12+
1013
panel:Help(Warden.L("Configure prop protection settings."))
1114

1215
panel:CheckBox(Warden.L("Let me touch others' entities"), "warden_touch")
1316
panel:CheckBox(Warden.L("Let me touch my own entities"), "warden_touch_self")
1417
panel:CheckBox(Warden.L("Save my perms across sessions"), "warden_perm_persist")
1518

16-
hook.Run("WardenPermsHeader", panel)
19+
hook.Run("WardenPermsHeader", panel, permChecks)
1720

1821
setPermPnl = vgui.Create("WardenSetPerms")
1922
panel:AddItem(setPermPnl)
@@ -123,6 +126,10 @@ local function setPerms(panel)
123126

124127
setPermPnlExtra = panel
125128

129+
for _, v in ipairs(permChecks) do
130+
v()
131+
end
132+
126133
panel.Refresh()
127134
end
128135

@@ -297,7 +304,7 @@ local function serverSettings(panel)
297304
Warden.SetUpCheck(panel, "Allow physics damage", "phy_damage")
298305
Warden.SetUpCheck(panel, "Burning players take damage", "fire_damage")
299306

300-
hook.Run("WardenSettingsPlayers", panel)
307+
hook.Run("WardenSettingsPlayers", panel, checks)
301308

302309
Warden.AddSpacer(panel)
303310

@@ -314,7 +321,7 @@ local function serverSettings(panel)
314321
Warden.SetUpWang(panel, "Default admin level", "default_admin_level", Warden.ADMIN_LEVEL_MIN, Warden.ADMIN_LEVEL_MAX)
315322
Warden.SetUpWang(panel, "AL to bypass filters", "admin_level_filter_bypass", Warden.ADMIN_LEVEL_MIN_1, Warden.ADMIN_LEVEL_MAX)
316323

317-
hook.Run("WardenSettingsExtra", panel)
324+
hook.Run("WardenSettingsExtra", panel, checks)
318325

319326
Warden.AddSpacer(panel)
320327

@@ -353,6 +360,10 @@ hook.Add("SpawnMenuOpened", "Warden", function()
353360
for _, v in ipairs(checks) do
354361
v()
355362
end
363+
364+
for _, v in ipairs(permChecks) do
365+
v()
366+
end
356367
end)
357368

358369
hook.Add("WardenRepopSetPerms", "Warden", function()

lua/warden/intercompat/cl_acf.lua

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,32 @@
1-
CreateClientConVar("warden_acf_squishy_damage", "1", true, true, "Whether ACF should treat all your entities as squishy when inflicting damage", 0, 1)
1+
local cvarSquishy = CreateClientConVar("warden_acf_squishy_damage", "-1", true, true, "Whether ACF should treat all your entities as squishy when inflicting damage", -1, 1)
22

33
hook.Add("WardenSettingsExtra", "WardenACF", function(panel)
44
if not GetGlobalBool("WardenACF", false) then return end
55

66
Warden.AddSpacer(panel)
7+
Warden.SetUpCheck(panel, "ACF-squishy by default", "acf_default_squishy_damage")
78
Warden.SetUpCheck(panel, "Override ACF's perms", "override_acf")
89
end)
910

10-
hook.Add("WardenPermsHeader", "WardenACF", function(panel)
11+
hook.Add("WardenPermsHeader", "WardenACF", function(panel, checks)
1112
if not GetGlobalBool("WardenACF", false) then return end
1213

13-
panel:CheckBox(Warden.L("Make my entities ACF-squishy"), "warden_acf_squishy_damage")
14+
local check = panel:CheckBox(Warden.L("Make my entities ACF-squishy"))
15+
16+
function check:OnChange(val)
17+
cvarSquishy:SetBool(val)
18+
end
19+
20+
table.insert(checks, function()
21+
if not IsValid(check) then return end
22+
23+
local val = cvarSquishy:GetInt()
24+
if val < 0 then
25+
val = Warden.GetServerBool("acf_default_squishy_damage", true)
26+
else
27+
val = val ~= 0
28+
end
29+
30+
check:SetChecked(val)
31+
end)
1432
end)

lua/warden/intercompat/sv_acf.lua

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,12 @@ hook.Add("PostGamemodeLoaded", "WardenACFCompat", function()
2222

2323
local function isForcedSquishy(ent)
2424
local owner = ent:WardenGetOwner()
25-
return IsValid(owner) and owner:IsPlayer() and owner:GetInfoNum("warden_acf_squishy_damage", 1) ~= 0
25+
if not IsValid(owner) or not owner:IsPlayer() then return false end
26+
27+
local squishy = owner:GetInfoNum("warden_acf_squishy_damage", -1)
28+
if squishy < 0 then return Warden.GetServerBool("acf_default_squishy_damage", true) end
29+
30+
return squishy ~= 0
2631
end
2732

2833
local function overrideOnDamage(self, ...)

lua/warden_framework/sh_defaults.lua

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,8 @@ Warden.SetDefaultServerSetting("admin_level_needs_admin", true)
7777
Warden.SetDefaultServerSetting("default_admin_level", 0)
7878
Warden.SetDefaultServerSetting("admin_level_filter_bypass", 4)
7979

80+
Warden.SetDefaultServerSetting("acf_default_squishy_damage", true)
81+
8082
local function onCami()
8183
local cmdType = GetGlobalString("WardenCommands")
8284
if not CAMI and cmdType == "" then return end

resource/localization/en-PT/warden.properties

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,4 +111,5 @@ warden.notify_when_perms_are_granted-revoked=Say when perms are given/stolen
111111
warden.-s_has_granted_you_-s_access=%s has given you %s access
112112
warden.-s_has_revoked_-s_access_from_you=%s has stolen %s access from you
113113
warden.make_my_entities_acf-squishy=Make my things ACF-squishy
114-
warden.burning_players_take_damage=Burning pirates get hurt
114+
warden.burning_players_take_damage=Burning pirates get hurt
115+
warden.acf-squishy_by_default=ACF-squishy by default

resource/localization/en/warden.properties

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,4 +111,5 @@ warden.notify_when_perms_are_granted-revoked=Notify when perms are granted/revok
111111
warden.-s_has_granted_you_-s_access=%s has granted you %s access
112112
warden.-s_has_revoked_-s_access_from_you=%s has revoked %s access from you
113113
warden.make_my_entities_acf-squishy=Make my entities ACF-squishy
114-
warden.burning_players_take_damage=Burning players take damage
114+
warden.burning_players_take_damage=Burning players take damage
115+
warden.acf-squishy_by_default=ACF-squishy by default

0 commit comments

Comments
 (0)