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
|
||||
|
||||
current_state = new_state
|
||||
minetest.log("action", "[lzr_gamestate] Game state changed to "..tostring(current_state))
|
||||
end
|
||||
|
||||
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)
|
||||
player:hud_set_flags({minimap = false, minimap_radar = false, healthbar = false, breathbar = false})
|
||||
player:hud_set_hotbar_itemcount(8)
|
||||
player:set_inventory_formspec(
|
||||
"formspec_version[4]size[11,6]list[current_player;main;0.5,0.5;8,4]"
|
||||
)
|
||||
lzr_gui.set_play_gui(player)
|
||||
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)
|
||||
local inv = player:get_inventory()
|
||||
inv:set_size("main", 8)
|
||||
inv:set_size("craft", 0)
|
||||
player:set_sky({
|
||||
sky_color = {
|
||||
|
@ -20,6 +30,7 @@ minetest.register_on_joinplayer(function(player)
|
|||
color = "#FFFFFF",
|
||||
})
|
||||
|
||||
lzr_player.set_play_inventory(player)
|
||||
end)
|
||||
|
||||
-- Can't drop items
|
||||
|
|
Loading…
Reference in New Issue