mirror of
https://github.com/a-bad-dev/simple-shooter-game.git
synced 2026-06-08 20:12:11 +00:00
* Refactor some of the code, multiple bug fixes * Fix something stupid * More bug fixes * LOTS OF STUFF * Make the sniper alot stronger and other changes * Prevent Players from respawning in the middle of a match * Fix stupid mistake * Small update * More updates * Remove minimap access.. and downgrade the sniper class
88 lines
2.9 KiB
Lua
88 lines
2.9 KiB
Lua
|
|
local side = "rangedweapons_generator_side.png"
|
|
|
|
minetest.register_node("ctf_ranged:energy_gen", {
|
|
short_description = "Energy Generator",
|
|
description = "Energy Generator\nPunch to collect Energy Charges",
|
|
tiles = {
|
|
"rangedweapons_generator_top.png", -- y+
|
|
"rangedweapons_generator_bottom.png", -- y-
|
|
side, -- x+
|
|
side, -- x-
|
|
side, -- z+
|
|
side, -- z-
|
|
},
|
|
is_ground_content = false,
|
|
groups = {cracky = 3, oddly_breakable_by_hand = 3},
|
|
drop = "ctf_ranged:energy_gen",
|
|
on_construct = function (pos)
|
|
local meta = minetest.get_meta(pos)
|
|
meta:set_string("infotext", "Energy Generator")
|
|
meta:set_string("formspec", "")
|
|
local inv = meta:get_inventory()
|
|
inv:set_size("main", 1)
|
|
local timer = minetest.get_node_timer(pos)
|
|
timer:start(3.0)
|
|
end,
|
|
on_timer = function (pos, elapsed)
|
|
local meta = minetest.get_meta(pos)
|
|
local inv = meta:get_inventory()
|
|
|
|
if inv:room_for_item("main", "ctf_ranged:echarge") then
|
|
inv:add_item("main", ItemStack("ctf_ranged:echarge 1"))
|
|
end
|
|
|
|
local size = 0
|
|
if inv:contains_item("main", "ctf_ranged:echarge") then
|
|
local s = inv:remove_item("main", "ctf_ranged:echarge 99")
|
|
if s then
|
|
size = s:get_count()
|
|
--minetest.log("action", "[ctf_ranged] "..s:get_name().." "..tostring(s:get_count()))
|
|
inv:add_item("main", ItemStack(s:get_name().." "..tostring(s:get_count())))
|
|
end
|
|
end
|
|
|
|
if size ~= 0 then
|
|
meta:set_string("infotext", "Energy Generator ("..tostring(size)..")")
|
|
else
|
|
meta:set_string("infotext", "Energy Generator")
|
|
end
|
|
|
|
return true
|
|
end,
|
|
on_punch = function (pos, node, puncher, pointed_thing)
|
|
local meta = minetest.get_meta(pos)
|
|
local inv = meta:get_inventory()
|
|
|
|
local size = 0
|
|
|
|
if inv:contains_item("main", "ctf_ranged:echarge") then
|
|
local s = inv:remove_item("main", "ctf_ranged:echarge 99")
|
|
if s then
|
|
size = s:get_count()
|
|
end
|
|
end
|
|
|
|
if size ~= 0 then
|
|
meta:set_string("infotext", "Energy Generator ("..tostring(size)..")")
|
|
else
|
|
meta:set_string("infotext", "Energy Generator")
|
|
end
|
|
|
|
if size ~= 0 then
|
|
local pinv = puncher:get_inventory()
|
|
pinv:add_item("main", ItemStack("ctf_ranged:echarge "..tostring(size)))
|
|
end
|
|
end
|
|
})
|
|
|
|
if ctf_ranged.settings.craft_energy_weapons == true then
|
|
minetest.register_craft({
|
|
output = "ctf_ranged:energy_gen",
|
|
recipe = {
|
|
{"", "default:diamond", ""},
|
|
{"default:diamond", "", "default:diamond"},
|
|
{"ctf_ranged:gunparte", "default:diamond", "ctf_ranged:gunparte"}
|
|
}
|
|
})
|
|
end
|