I created a different branch for development progress... Please try the current dev branch out... you will see that we blow up in an environment_Step (perhaps this is why we break?) Anyway, I hunted down quite a good deal of warnings and most of them could be easily fixed just by making whatever variable it was into local. (I also littered the code with comments stating the exact WARNING I got from the client)
106 lines
3.3 KiB
Lua
106 lines
3.3 KiB
Lua
minetest.register_globalstep(function(dtime, player)
|
|
for _, player in pairs(minetest.get_connected_players()) do
|
|
|
|
|
|
|
|
|
|
|
|
local w_item = player:get_wielded_item()
|
|
|
|
|
|
local controls = player:get_player_control()
|
|
if w_item:get_definition().weapon_zoom ~= nil then
|
|
|
|
if controls.zoom then
|
|
player:hud_change(scope_hud, "text", "rangedweapons_scopehud.png")
|
|
else
|
|
player:hud_change(scope_hud, "text", "rangedweapons_empty_icon.png")
|
|
end
|
|
|
|
local wpn_zoom = w_item:get_definition().weapon_zoom
|
|
if player:get_properties().zoom_fov ~= wpn_zoom then
|
|
player:set_properties({zoom_fov = wpn_zoom})
|
|
|
|
end
|
|
|
|
end
|
|
|
|
if w_item:get_definition().weapon_zoom == nil then
|
|
local new_zoom_fov = 0 -- Assume a default 0
|
|
player:hud_change(scope_hud, "text", "rangedweapons_empty_icon.png")
|
|
if player:get_inventory():contains_item(
|
|
"main", "binoculars:binoculars") then
|
|
new_zoom_fov = 10
|
|
if player:get_properties().zoom_fov ~= new_zoom_fov then
|
|
player:set_properties({zoom_fov = new_zoom_fov})
|
|
end
|
|
else
|
|
-- WARNING: Assignment to undeclared global "new_zoom_fov" inside a function at mods/rangedweapons/cooldown_stuff.lua:37.
|
|
-- Solution, at the beginning of all this let's make a local new_zoom_fov
|
|
new_zoom_fov = 0
|
|
if player:get_properties().zoom_fov ~= new_zoom_fov then
|
|
player:set_properties({zoom_fov = new_zoom_fov})
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
local u_meta = player:get_meta()
|
|
local cool_down = u_meta:get_float("rw_cooldown") or 0
|
|
|
|
|
|
if u_meta:get_float("rw_cooldown") > 0 then
|
|
u_meta:set_float("rw_cooldown", cool_down - dtime)
|
|
end
|
|
|
|
local itemstack = player:get_wielded_item()
|
|
|
|
if controls.LMB then
|
|
if player:get_wielded_item():get_definition().RW_gun_capabilities then
|
|
if
|
|
player:get_wielded_item():get_definition().RW_gun_capabilities.automatic_gun and player:get_wielded_item():get_definition().RW_gun_capabilities.automatic_gun > 0 then
|
|
|
|
rangedweapons_shoot_gun(itemstack, player)
|
|
player:set_wielded_item(itemstack)
|
|
end end
|
|
|
|
if player:get_wielded_item():get_definition().RW_powergun_capabilities then
|
|
if player:get_wielded_item():get_definition().RW_powergun_capabilities.automatic_gun and player:get_wielded_item():get_definition().RW_powergun_capabilities.automatic_gun > 0 then
|
|
|
|
rangedweapons_shoot_powergun(itemstack, player)
|
|
player:set_wielded_item(itemstack)
|
|
end end
|
|
|
|
end
|
|
|
|
|
|
|
|
--minetest.chat_send_all(u_meta:get_float("rw_cooldown"))
|
|
|
|
if u_meta:get_float("rw_cooldown") <= 0 then
|
|
if player:get_wielded_item():get_definition().loaded_gun ~= nil then
|
|
local itemstack = player:get_wielded_item()
|
|
|
|
if player:get_wielded_item():get_definition().loaded_sound ~= nil then
|
|
minetest.sound_play(itemstack:get_definition().loaded_sound, {player})
|
|
end
|
|
itemstack:set_name(player:get_wielded_item():get_definition().loaded_gun)
|
|
player:set_wielded_item(itemstack)
|
|
end
|
|
|
|
if player:get_wielded_item():get_definition().rw_next_reload ~= nil then
|
|
local itemstack = player:get_wielded_item()
|
|
if itemstack:get_definition().load_sound ~= nil then
|
|
minetest.sound_play(itemstack:get_definition().load_sound, {player})
|
|
end
|
|
gunMeta = itemstack:get_meta()
|
|
u_meta:set_float("rw_cooldown",gunMeta:get_float("RW_reload_delay"))
|
|
itemstack:set_name(player:get_wielded_item():get_definition().rw_next_reload)
|
|
player:set_wielded_item(itemstack)
|
|
end
|
|
end
|
|
|
|
end end)
|
|
|
|
|