Divergent/mods/Anomaly Magazines Redux/gamedata/scripts/wep_binder.script

128 lines
4.1 KiB
Plaintext

-- -- unused, moved to mag binder
-- print_dbg = magazines.print_dbg
-- set_data = magazine_binder.set_data
-- get_data = magazine_binder.get_data
-- weapon_default_magazine = magazine_binder.weapon_default_magazine
-- validate_wep = magazine_binder.validate_wep
-- is_supported_weapon = magazine_binder.is_supported_weapon
-- get_weapon_base_type = magazine_binder.get_weapon_base_type
-- get_magazine_base_type = magazine_binder.get_magazine_base_type
-- get_config = magazines_mcm.get_config
-- create_time_event = magazines.create_time_event
-- function server_entity_on_register(se)
-- local id = se.id
-- local section = se:section_name()
-- if is_supported_weapon(section) then
-- local mag_data = get_data(id)
-- if valid_mag_data(mag_data) then
-- validate_wep(id, section)
-- end
-- if mag_data == nil then
-- create_time_event("mag_redux", "fill_wep_"..id, 0, timed_fill, id, section)
-- end
-- end
-- end
-- function timed_fill(id, section)
-- local default_mag = weapon_default_magazine(section)
-- mag_data = {}
-- mag_data.section = default_mag
-- mag_data.loaded = {}
-- local ammo_type = 0
-- local ammo_amt = SYS_GetParam(2, default_mag, "max_mag_size") or SYS_GetParam(2, section, "ammo_mag_size") or 999
-- local obj = level.object_by_id(id)
-- if obj then
-- ammo_type = obj:get_ammo_type()
-- ammo_amt = clamp(obj:get_ammo_in_magazine(), 0, ammo_amt)
-- end
-- -- local ammo_type = obj:get_ammo_type()
-- print_dbg("Weapon %s uses mags, assigning default mag %s with %s rounds, type is %s", section, default_mag, ammo_amt, ammo_type)
-- local ammo_map = utils_item.get_ammo(section, id)
-- -- if mag_cap < ammo_loaded then ammo_loaded = mag_cap end
-- for i=1,ammo_amt do
-- print_dbg("Loading in round of type %s",ammo_map[ammo_type+1])
-- stack.push(mag_data.loaded, ammo_map[ammo_type+1])
-- end
-- set_data(id, mag_data)
-- return true
-- end
-- function on_game_start()
-- -- RegisterScriptCallback("server_entity_on_register", server_entity_on_register )
-- end
-- class
-- function bind(obj)
-- obj:bind_object(wep_binder(obj))
-- end
-- class "wep_binder" (object_binder)
-- function wep_binder:__init(obj) super(obj)
-- self.first_update = true
-- end
-- function wep_binder:update(delta)
-- local obj = self.object
-- if not is_supported_weapon(obj) then
-- self.first_update = false
-- return
-- end -- only run for supported weapons
-- local id = obj:id()
-- local mag_data = get_data(id)
-- if mag_data and self.first_update then
-- self.first_update = false
-- validate_wep(id, obj:section())
-- end
-- if mag_data == nil and self.first_update then
-- self.first_update = false
-- local ammo_loaded = obj:get_ammo_in_magazine()
-- --if ammo_loaded == 0 then return end -- might not need this now.
-- local default_mag = weapon_default_magazine(obj:section())
-- mag_data = {}
-- mag_data.section = default_mag
-- mag_data.loaded = {}
-- local ammo_type = obj:get_ammo_type()
-- local mag_cap = SYS_GetParam(2, default_mag, "max_mag_size") or SYS_GetParam(2, obj:section(), "ammo_mag_size") or 999
-- print_dbg("Weapon %s uses mags, assigning default mag %s with %s rounds, type is %s", obj:section(), default_mag, ammo_loaded, ammo_type)
-- local ammo_map = utils_item.get_ammo(nil, id)
-- if mag_cap < ammo_loaded then ammo_loaded = mag_cap end
-- if ammo_loaded > 1 then
-- for i=1,ammo_loaded do
-- print_dbg("Loading in round of type %s",ammo_map[ammo_type+1])
-- stack.push(mag_data.loaded, ammo_map[ammo_type+1])
-- end
-- end
-- set_data(id, mag_data)
-- end
-- end
-- function wep_binder:reload(section)
-- object_binder.reload(self, section)
-- end
-- function wep_binder:reinit()
-- object_binder.reinit(self)
-- end
-- function wep_binder:net_spawn(se_abstract)
-- if not(object_binder.net_spawn(self, se_abstract)) then
-- return false
-- end
-- return true
-- end
-- function wep_binder:net_destroy()
-- object_binder.net_destroy(self)
-- end
-- function wep_binder:save(stpk)
-- end
-- function wep_binder:load(stpk)
-- end