Parametro enabled per le arene

master
Marco 2020-04-02 23:24:35 +02:00
parent bd5f5be6d9
commit c7b9538d35
2 changed files with 23 additions and 6 deletions

20
api.lua
View File

@ -47,7 +47,8 @@ local arena_default = {
in_queue = false,
in_loading = false,
in_game = false,
in_celebration = false
in_celebration = false,
enabled = false
}
local prefix = "[Arena_lib] "
@ -172,6 +173,21 @@ end
function arena_lib.set_enabled(sender, arena_ID, enabled)
local arena = arena_lib.arenas[arena_ID]
if enabled then
if arena_lib.get_arena_spawners_count(arena_ID) < arena.max_players then
minetest.chat_send_player(sender, minetest.colorize("#e6482e", "[!] Spawner insufficienti, arena disabilitata"))
arena.enabled = false
end
end
--TODO: comando da lanciare ad arena impostata
end
----------------------------------------------
--------------GESTIONE PARTITA-----------------
----------------------------------------------
@ -281,7 +297,6 @@ end
function arena_lib.end_arena(arena)
arena_lib.on_end(arena)
arena.kill_leader = ""
for pl_name, stats in pairs(arena.players) do
@ -296,6 +311,7 @@ function arena_lib.end_arena(arena)
--TODO: teleport lobby, metti variabile locale
end
arena_lib.update_sign(arena.sign, arena)
arena_lib.on_end(arena)
end

View File

@ -19,6 +19,9 @@ minetest.override_item("default:sign_wall", {
local p_name = puncher:get_player_name()
if not sign_arena then return end -- nel caso qualche cartello dovesse buggarsi, si può rompere e non fa crashare
if not sign_arena.enabled then
minetest.chat_send_player(p_name, minetest.colorize("#e6482e", "[!] L'arena non è attiva!"))
return end
-- se è già in coda o viene fermato (cartello diverso) o si toglie dalla coda (cartello uguale)
if arena_lib.is_player_in_queue(p_name) then
@ -116,9 +119,6 @@ function arena_lib.set_sign(sender, arena_name)
if arena == nil then minetest.chat_send_player(sender, minetest.colorize("#e6482e", "[!] Quest'arena non esiste!"))
return end
if arena_lib.get_arena_spawners_count(arena_ID) < arena.max_players then minetest.chat_send_player(sender, minetest.colorize("#e6482e", "[!] Gli spawner devono essere quanto i giocatori massimi prima di impostare il cartello!"))
return end
-- assegno item creazione arene con ID arena nei metadati da restituire al premere sul cartello
local stick = ItemStack(arena_lib.mod_name .. ":create_sign")
local meta = stick:get_meta()
@ -156,7 +156,8 @@ end
function in_game_txt(arena)
local txt
if arena.in_celebration then txt = "Concludendo"
if not arena.enabled then txt = "LAVORI IN CORSO"
elseif arena.in_celebration then txt = "Concludendo"
elseif arena.in_game then txt = "In partita"
elseif arena.in_loading then txt = "In caricamento"
else txt = "In attesa" end