Added "initial_call" argument to "on_enabled" and "on_disabled" events.

This commit is contained in:
bi 2018-02-19 01:45:35 +03:00
parent a245c5d8d9
commit 1b2755e681
2 changed files with 10 additions and 10 deletions

View file

@ -72,25 +72,25 @@ vmf.mod_setting_changed_event = function(mod, setting_name)
end end
end end
vmf.mod_enabled_event = function(mod) vmf.mod_enabled_event = function(mod, initial_call)
local event_name = "on_enabled" local event_name = "on_enabled"
local event = mod[event_name] local event = mod[event_name]
if event then if event then
run_event(mod, event_name, event) run_event(mod, event_name, event, initial_call)
else else
mod:warning("Attemt to call undefined event 'mod.%s'.", event_name) mod:warning("Attemt to call undefined event 'mod.%s'.", event_name)
end end
end end
vmf.mod_disabled_event = function(mod) vmf.mod_disabled_event = function(mod, initial_call)
local event_name = "on_disabled" local event_name = "on_disabled"
local event = mod[event_name] local event = mod[event_name]
if event then if event then
run_event(mod, event_name, event) run_event(mod, event_name, event, initial_call)
else else
mod:warning("Attemt to call undefined event 'mod.%s'.", event_name) mod:warning("Attemt to call undefined event 'mod.%s'.", event_name)
end end

View file

@ -6,21 +6,21 @@ local _DISABLED_MODS_LIST = vmf:get("disabled_mods_list") or {}
-- ##### Local functions ############################################################################################## -- ##### Local functions ##############################################################################################
-- #################################################################################################################### -- ####################################################################################################################
local function change_mod_state(mod, enable, skip_saving) local function change_mod_state(mod, enable, initial_call)
if enable then if enable then
_DISABLED_MODS_LIST[mod:get_name()] = nil _DISABLED_MODS_LIST[mod:get_name()] = nil
vmf.mod_enabled_event(mod) vmf.mod_enabled_event(mod, initial_call)
else else
_DISABLED_MODS_LIST[mod:get_name()] = true _DISABLED_MODS_LIST[mod:get_name()] = true
vmf.mod_disabled_event(mod) vmf.mod_disabled_event(mod, initial_call)
end end
if skip_saving then if initial_call then
return return
end end
@ -40,7 +40,7 @@ VMFMod.disable = function (self)
if not _DISABLED_MODS_LIST[self:get_name()] then if not _DISABLED_MODS_LIST[self:get_name()] then
change_mod_state(self, false) change_mod_state(self, false, false)
end end
end end
@ -48,7 +48,7 @@ VMFMod.enable = function (self)
if _DISABLED_MODS_LIST[self:get_name()] then if _DISABLED_MODS_LIST[self:get_name()] then
change_mod_state(self, true) change_mod_state(self, true, false)
end end
end end