Add minimal 'editor' gamestate
parent
b4a8950e7d
commit
d38a90a546
|
@ -0,0 +1,32 @@
|
||||||
|
local S = minetest.get_translator("lzr_editor")
|
||||||
|
|
||||||
|
minetest.register_chatcommand("editor", {
|
||||||
|
privs = { server = true },
|
||||||
|
description = S("Start level editor"),
|
||||||
|
params = S("[ enter | exit ]"),
|
||||||
|
func = function(name, param)
|
||||||
|
if param == "" or param == "enter" then
|
||||||
|
lzr_gamestate.set_state(lzr_gamestate.EDITOR)
|
||||||
|
return true
|
||||||
|
elseif param == "exit" then
|
||||||
|
lzr_gamestate.set_state(lzr_gamestate.MENU)
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
lzr_gamestate.register_on_enter_state(function(state)
|
||||||
|
if state == lzr_gamestate.EDITOR then
|
||||||
|
local player = minetest.get_player_by_name("singleplayer")
|
||||||
|
lzr_player.set_editor_inventory(player)
|
||||||
|
lzr_gui.set_editor_gui(player)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
lzr_gamestate.register_on_exit_state(function(state)
|
||||||
|
if state == lzr_gamestate.EDITOR then
|
||||||
|
local player = minetest.get_player_by_name("singleplayer")
|
||||||
|
lzr_player.set_play_inventory(player)
|
||||||
|
lzr_gui.set_play_gui(player)
|
||||||
|
end
|
||||||
|
end)
|
|
@ -0,0 +1,2 @@
|
||||||
|
name = lzr_editor
|
||||||
|
depends = lzr_gamestate, lzr_gui, lzr_player
|
|
@ -31,6 +31,7 @@ lzr_gamestate.set_state = function(new_state)
|
||||||
end
|
end
|
||||||
|
|
||||||
current_state = new_state
|
current_state = new_state
|
||||||
|
minetest.log("action", "[lzr_gamestate] Game state changed to "..tostring(current_state))
|
||||||
end
|
end
|
||||||
|
|
||||||
lzr_gamestate.get_state = function()
|
lzr_gamestate.get_state = function()
|
||||||
|
|
|
@ -1,7 +1,16 @@
|
||||||
|
lzr_gui = {}
|
||||||
|
|
||||||
|
lzr_gui.set_play_gui = function(player)
|
||||||
|
player:hud_set_hotbar_itemcount(3)
|
||||||
|
end
|
||||||
|
lzr_gui.set_editor_gui = function(player)
|
||||||
|
player:hud_set_hotbar_itemcount(8)
|
||||||
|
end
|
||||||
|
|
||||||
minetest.register_on_joinplayer(function(player)
|
minetest.register_on_joinplayer(function(player)
|
||||||
player:hud_set_flags({minimap = false, minimap_radar = false, healthbar = false, breathbar = false})
|
player:hud_set_flags({minimap = false, minimap_radar = false, healthbar = false, breathbar = false})
|
||||||
player:hud_set_hotbar_itemcount(8)
|
|
||||||
player:set_inventory_formspec(
|
player:set_inventory_formspec(
|
||||||
"formspec_version[4]size[11,6]list[current_player;main;0.5,0.5;8,4]"
|
"formspec_version[4]size[11,6]list[current_player;main;0.5,0.5;8,4]"
|
||||||
)
|
)
|
||||||
|
lzr_gui.set_play_gui(player)
|
||||||
end)
|
end)
|
||||||
|
|
|
@ -1,6 +1,16 @@
|
||||||
|
lzr_player = {}
|
||||||
|
|
||||||
|
lzr_player.set_play_inventory = function(player)
|
||||||
|
local inv = player:get_inventory()
|
||||||
|
inv:set_size("main", 3)
|
||||||
|
end
|
||||||
|
lzr_player.set_editor_inventory = function(player)
|
||||||
|
local inv = player:get_inventory()
|
||||||
|
inv:set_size("main", 32)
|
||||||
|
end
|
||||||
|
|
||||||
minetest.register_on_joinplayer(function(player)
|
minetest.register_on_joinplayer(function(player)
|
||||||
local inv = player:get_inventory()
|
local inv = player:get_inventory()
|
||||||
inv:set_size("main", 8)
|
|
||||||
inv:set_size("craft", 0)
|
inv:set_size("craft", 0)
|
||||||
player:set_sky({
|
player:set_sky({
|
||||||
sky_color = {
|
sky_color = {
|
||||||
|
@ -20,6 +30,7 @@ minetest.register_on_joinplayer(function(player)
|
||||||
color = "#FFFFFF",
|
color = "#FFFFFF",
|
||||||
})
|
})
|
||||||
|
|
||||||
|
lzr_player.set_play_inventory(player)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
-- Can't drop items
|
-- Can't drop items
|
||||||
|
|
Loading…
Reference in New Issue