61 lines
2.2 KiB
Lua
61 lines
2.2 KiB
Lua
-- load other scripts
|
|
dofile(minetest.get_modpath("quake") .. "/chatcmdbuilder.lua")
|
|
dofile(minetest.get_modpath("quake") .. "/commands.lua")
|
|
dofile(minetest.get_modpath("quake") .. "/playermanager.lua")
|
|
dofile(minetest.get_modpath("quake") .. "/privs.lua")
|
|
dofile(minetest.get_modpath("quake") .. "/weapons.lua")
|
|
|
|
|
|
--[[sovrascrizione "on_punch" nodo base dei cartelli per farli entrare
|
|
nell'arena se sono cartelli appositi e "on_timer" per teletrasportali in partita quando la queue finisce]]
|
|
|
|
|
|
minetest.register_node("quake:create_sign", {
|
|
|
|
description = "Left click on a sign to create an entrance or to remove it",
|
|
tiles = {"trickerytown.png"},
|
|
groups = {oddly_breakable_by_hand = "2"},
|
|
|
|
on_use = function(itemstack, user, pointed_thing)
|
|
|
|
local pos = minetest.get_pointed_thing_position(pointed_thing)
|
|
if pos == nil then return end -- nel caso sia aria, sennò crasha
|
|
|
|
local node = minetest.get_node(pos)
|
|
local def = minetest.registered_items[node.name]
|
|
|
|
--controllo se è un cartello
|
|
if def and def.entity_info then
|
|
def.number_of_lines = 5
|
|
|
|
local arena_ID = itemstack:get_meta():get_int("arenaID")
|
|
local arena = quake.arenas[arena_ID]
|
|
|
|
-- controllo se c'è già un cartello assegnato a quell'arena. Se è lo stesso lo rimuovo, sennò annullo
|
|
if next(arena.sign) ~= nil then
|
|
if minetest.serialize(pos) == minetest.serialize(arena.sign) then
|
|
minetest.set_node(pos, {name = "air"})
|
|
arena.sign = {}
|
|
minetest.chat_send_player(user:get_player_name(), "Cartello dell'arena " .. arena.name .. " rimosso con successo")
|
|
else
|
|
minetest.chat_send_player(user:get_player_name(), minetest.colorize("#e6482e", "[!] Esiste già un cartello per quest'arena!"))
|
|
end
|
|
return end
|
|
|
|
-- cambio la scritta
|
|
quake.update_sign(pos, arena)
|
|
|
|
-- aggiungo il cartello ai cartelli dell'arena
|
|
arena.sign = pos
|
|
|
|
-- salvo l'ID come metadato nel cartello
|
|
minetest.get_meta(pos):set_int("arenaID", arena_ID)
|
|
|
|
--TODO: rimuovere item
|
|
else
|
|
minetest.chat_send_player(user:get_player_name(), minetest.colorize("#e6482e", "[!] L'oggetto non è un cartello!"))
|
|
end
|
|
end,
|
|
|
|
})
|