More work on editor mode state behavior
parent
3164da9f0a
commit
c7243d410c
|
@ -37,10 +37,3 @@ lzr_gamestate.register_on_enter_state(function(state)
|
|||
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)
|
||||
|
|
|
@ -94,10 +94,14 @@ end
|
|||
|
||||
-- Update the whole playfield after placing or digging a laser node
|
||||
local full_update = function()
|
||||
if lzr_gamestate.get_state() ~= lzr_gamestate.LEVEL then
|
||||
local state = lzr_gamestate.get_state()
|
||||
if state ~= lzr_gamestate.LEVEL and state ~= lzr_gamestate.EDITOR then
|
||||
return
|
||||
end
|
||||
lzr_laser.full_laser_update(lzr_globals.PLAYFIELD_START, lzr_globals.PLAYFIELD_END)
|
||||
if state == lzr_gamestate.EDITOR then
|
||||
return
|
||||
end
|
||||
local done = lzr_laser.check_level_won()
|
||||
if done then
|
||||
lzr_levels.level_complete()
|
||||
|
@ -109,10 +113,14 @@ end
|
|||
-- inventory has to be ignored because after_dig_node is called BEFORE
|
||||
-- the inventory change after placing the node.
|
||||
local full_update_detector_placed = function()
|
||||
if lzr_gamestate.get_state() ~= lzr_gamestate.LEVEL then
|
||||
local state = lzr_gamestate.get_state()
|
||||
if state ~= lzr_gamestate.LEVEL and state ~= lzr_gamestate.EDITOR then
|
||||
return
|
||||
end
|
||||
lzr_laser.full_laser_update(lzr_globals.PLAYFIELD_START, lzr_globals.PLAYFIELD_END)
|
||||
if state == lzr_gamestate.EDITOR then
|
||||
return
|
||||
end
|
||||
local done = lzr_laser.check_level_won(true)
|
||||
if done then
|
||||
lzr_levels.level_complete()
|
||||
|
|
|
@ -217,5 +217,18 @@ minetest.register_chatcommand("leave", {
|
|||
end,
|
||||
})
|
||||
|
||||
lzr_gamestate.register_on_enter_state(function(state)
|
||||
if state == lzr_gamestate.LEVEL then
|
||||
local player = minetest.get_player_by_name("singleplayer")
|
||||
lzr_player.set_play_inventory(player)
|
||||
lzr_gui.set_play_gui(player)
|
||||
lzr_laser.full_laser_update(lzr_globals.PLAYFIELD_START, lzr_globals.PLAYFIELD_END)
|
||||
local done = lzr_laser.check_level_won()
|
||||
if done then
|
||||
lzr_levels.level_complete()
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
|
||||
analyze_levels()
|
||||
|
|
|
@ -61,3 +61,11 @@ minetest.register_node("lzr_menu:startbook", {
|
|||
groups = { snappy = 3, not_in_creative_inventory = 1, },
|
||||
})
|
||||
|
||||
lzr_gamestate.register_on_enter_state(function(state)
|
||||
if state == lzr_gamestate.MENU then
|
||||
local player = minetest.get_player_by_name("singleplayer")
|
||||
lzr_player.set_play_inventory(player)
|
||||
lzr_gui.set_play_gui(player)
|
||||
end
|
||||
end)
|
||||
|
||||
|
|
Loading…
Reference in New Issue