Add basic gameplay
parent
f12aebda50
commit
2492b6dcc6
|
@ -157,6 +157,15 @@ minetest.register_node("lzr_laser:emitter", {
|
|||
after_dig_node = full_update,
|
||||
after_rotate = after_rotate,
|
||||
|
||||
on_rightclick = function(pos, node)
|
||||
minetest.swap_node(pos, {name="lzr_laser:emitter_on", param2=node.param2})
|
||||
lzr_laser.full_laser_update(lzr_globals.PLAYFIELD_START, lzr_globals.PLAYFIELD_END)
|
||||
end,
|
||||
on_punch = function(pos, node)
|
||||
minetest.swap_node(pos, {name="lzr_laser:emitter_on", param2=node.param2})
|
||||
lzr_laser.full_laser_update(lzr_globals.PLAYFIELD_START, lzr_globals.PLAYFIELD_END)
|
||||
end,
|
||||
|
||||
sounds = lzr_sounds.node_sound_wood_defaults(),
|
||||
groups = { rotatable = 1, emitter = 1, laser_block = 1, choppy = 3 },
|
||||
_lzr_active = "lzr_laser:emitter_on",
|
||||
|
@ -177,6 +186,15 @@ minetest.register_node("lzr_laser:emitter_on", {
|
|||
after_dig_node = full_update,
|
||||
after_rotate = after_rotate,
|
||||
|
||||
on_rightclick = function(pos, node)
|
||||
minetest.swap_node(pos, {name="lzr_laser:emitter", param2=node.param2})
|
||||
lzr_laser.full_laser_update(lzr_globals.PLAYFIELD_START, lzr_globals.PLAYFIELD_END)
|
||||
end,
|
||||
on_punch = function(pos, node)
|
||||
minetest.swap_node(pos, {name="lzr_laser:emitter", param2=node.param2})
|
||||
lzr_laser.full_laser_update(lzr_globals.PLAYFIELD_START, lzr_globals.PLAYFIELD_END)
|
||||
end,
|
||||
|
||||
sounds = lzr_sounds.node_sound_wood_defaults(),
|
||||
groups = { rotatable = 1, emitter = 2, laser_block = 1, choppy = 3 },
|
||||
_lzr_inactive = "lzr_laser:emitter",
|
||||
|
|
|
@ -43,7 +43,10 @@ function lzr_laser.add_laser(pos, dir)
|
|||
if detected then
|
||||
-- Activate node
|
||||
minetest.set_node(pos, {name="lzr_laser:detector_on", param2 = node.param2})
|
||||
pos = vector.add(pos, dir)
|
||||
local done = lzr_laser.check_detectors_in_area(lzr_globals.PLAYFIELD_START, lzr_globals.PLAYFIELD_END)
|
||||
if done then
|
||||
lzr_levels.next_level()
|
||||
end
|
||||
end
|
||||
-- Laser ends here
|
||||
return false
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
local S = minetest.get_translator("lzr_levels")
|
||||
|
||||
lzr_levels = {}
|
||||
|
||||
local ROOM_NODE = "lzr_core:wood"
|
||||
|
@ -61,3 +63,23 @@ end
|
|||
function lzr_levels.build_level(level)
|
||||
minetest.place_schematic(lzr_globals.LEVEL_POS, minetest.get_modpath("lzr_levels").."/schematics/lzr_levels_level_"..tonumber(level)..".mts", "0", {}, true, "")
|
||||
end
|
||||
|
||||
|
||||
local current_level = 1
|
||||
-- Startup
|
||||
minetest.register_on_joinplayer(function(player)
|
||||
lzr_levels.prepare_and_build_level(1)
|
||||
player:set_pos({x=5,y=2,z=5})
|
||||
end)
|
||||
|
||||
function lzr_levels.next_level()
|
||||
local player = minetest.get_player_by_name("singleplayer")
|
||||
current_level = current_level + 1
|
||||
if current_level > 10 then
|
||||
minetest.chat_send_player("singleplayer", S("Yarrrr! You finished the last level!"))
|
||||
else
|
||||
minetest.chat_send_player("singleplayer", S("Yarr! Level @1 completed!", current_level - 1))
|
||||
player:set_pos({x=5,y=2,z=5})
|
||||
lzr_levels.prepare_and_build_level(current_level)
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue