Add start book
parent
28fba4f450
commit
8498068e4c
|
@ -6,3 +6,6 @@ lzr_globals.PLAYFIELD_END = vector.add(lzr_globals.PLAYFIELD_START, lzr_globals.
|
||||||
lzr_globals.LEVEL_POS = { x = 0, y = 0, z = 0 }
|
lzr_globals.LEVEL_POS = { x = 0, y = 0, z = 0 }
|
||||||
lzr_globals.MENU_SHIP_POS = { x = -500, y = -4, z = -500 }
|
lzr_globals.MENU_SHIP_POS = { x = -500, y = -4, z = -500 }
|
||||||
lzr_globals.MENU_SHIP_PLAYER_SPAWN_OFFSET = { x = 7, y = 8.5, z = 29 }
|
lzr_globals.MENU_SHIP_PLAYER_SPAWN_OFFSET = { x = 7, y = 8.5, z = 29 }
|
||||||
|
lzr_globals.MENU_SHIP_STARTBOOK_OFFSET = { x = 7, y = 10, z = 31 }
|
||||||
|
lzr_globals.MENU_PLAYER_SPAWN_POS = vector.add(lzr_globals.MENU_SHIP_POS, lzr_globals.MENU_SHIP_PLAYER_SPAWN_OFFSET)
|
||||||
|
|
||||||
|
|
|
@ -65,15 +65,20 @@ function lzr_levels.build_level(level)
|
||||||
return minetest.place_schematic(lzr_globals.LEVEL_POS, minetest.get_modpath("lzr_levels").."/schematics/lzr_levels_level_"..tonumber(level)..".mts", "0", {}, true, "")
|
return minetest.place_schematic(lzr_globals.LEVEL_POS, minetest.get_modpath("lzr_levels").."/schematics/lzr_levels_level_"..tonumber(level)..".mts", "0", {}, true, "")
|
||||||
end
|
end
|
||||||
|
|
||||||
local function reset_inventory(player)
|
local function clear_inventory(player)
|
||||||
local inv = player:get_inventory()
|
local inv = player:get_inventory()
|
||||||
for i=1,inv:get_size("main") do
|
for i=1,inv:get_size("main") do
|
||||||
inv:set_stack("main", i, "")
|
inv:set_stack("main", i, "")
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function reset_inventory(player)
|
||||||
|
clear_inventory(player)
|
||||||
|
local inv = player:get_inventory()
|
||||||
inv:add_item("main", "screwdriver:screwdriver")
|
inv:add_item("main", "screwdriver:screwdriver")
|
||||||
end
|
end
|
||||||
|
|
||||||
local current_level = 1
|
local current_level = nil
|
||||||
|
|
||||||
local get_singleplayer = function()
|
local get_singleplayer = function()
|
||||||
return minetest.get_player_by_name("singleplayer")
|
return minetest.get_player_by_name("singleplayer")
|
||||||
|
@ -98,6 +103,13 @@ function lzr_levels.next_level()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function lzr_levels.leave_level()
|
||||||
|
local player = get_singleplayer()
|
||||||
|
current_level = nil
|
||||||
|
clear_inventory(player)
|
||||||
|
player:set_pos(vector.add(lzr_globals.MENU_SHIP_POS, lzr_globals.MENU_SHIP_PLAYER_SPAWN_OFFSET))
|
||||||
|
end
|
||||||
|
|
||||||
minetest.register_chatcommand("level", {
|
minetest.register_chatcommand("level", {
|
||||||
privs = { server = true },
|
privs = { server = true },
|
||||||
description = S("Go to level"),
|
description = S("Go to level"),
|
||||||
|
@ -121,7 +133,25 @@ minetest.register_chatcommand("restart", {
|
||||||
params = "",
|
params = "",
|
||||||
description = S("Restart current level"),
|
description = S("Restart current level"),
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
lzr_levels.start_level(current_level)
|
if current_level then
|
||||||
return true
|
lzr_levels.start_level(current_level)
|
||||||
|
return true
|
||||||
|
else
|
||||||
|
return false, S("Not playing in a level!")
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_chatcommand("leave", {
|
||||||
|
privs = {},
|
||||||
|
params = "",
|
||||||
|
description = S("Leave current level"),
|
||||||
|
func = function(name, param)
|
||||||
|
if current_level then
|
||||||
|
lzr_levels.leave_level(current_level)
|
||||||
|
return true
|
||||||
|
else
|
||||||
|
return false, S("Not playing in a level!")
|
||||||
|
end
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
|
local S = minetest.get_translator("lzr_menu")
|
||||||
|
|
||||||
local build_ship = function(pos)
|
local build_ship = function(pos)
|
||||||
minetest.place_schematic(pos, minetest.get_modpath("lzr_menu").."/schematics/lzr_menu_ship.mts", "0", {}, true, "")
|
minetest.place_schematic(pos, minetest.get_modpath("lzr_menu").."/schematics/lzr_menu_ship.mts", "0", {}, true, "")
|
||||||
|
minetest.set_node(vector.add(lzr_globals.MENU_SHIP_POS, lzr_globals.MENU_SHIP_STARTBOOK_OFFSET), {name="lzr_menu:startbook", param2=0})
|
||||||
end
|
end
|
||||||
|
|
||||||
local emerge_callback = function(blockpos, action, calls_remaining, param)
|
local emerge_callback = function(blockpos, action, calls_remaining, param)
|
||||||
|
@ -25,4 +28,27 @@ minetest.register_on_joinplayer(function(player)
|
||||||
player:set_pos(vector.add(lzr_globals.MENU_SHIP_POS, lzr_globals.MENU_SHIP_PLAYER_SPAWN_OFFSET))
|
player:set_pos(vector.add(lzr_globals.MENU_SHIP_POS, lzr_globals.MENU_SHIP_PLAYER_SPAWN_OFFSET))
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
local on_punch = function()
|
||||||
|
lzr_levels.start_level(1)
|
||||||
|
end
|
||||||
|
local on_rightclick = on_punch
|
||||||
|
|
||||||
|
minetest.register_node("lzr_menu:startbook", {
|
||||||
|
description = S("Start Game Book"),
|
||||||
|
tiles = { "lzr_menu_book_top.png", "lzr_menu_book_bottom.png", "lzr_menu_book_side.png", "lzr_menu_book_side.png", "lzr_menu_book_end.png", "lzr_menu_book_end.png" },
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
drawtype = "nodebox",
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {
|
||||||
|
{ -0.4375, -0.5, -0.375, 0.4375, -0.4375, 0.1875 },
|
||||||
|
{ -0.375, -0.4375, -0.375, 0.375, -0.375, 0.1875 }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
sunlight_propagates = true,
|
||||||
|
on_punch = on_punch,
|
||||||
|
on_rightclick = on_rightclick,
|
||||||
|
groups = { snappy = 3, not_in_creative_inventory = 1, },
|
||||||
|
})
|
||||||
|
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
name = lzr_menu
|
name = lzr_menu
|
||||||
depends = lzr_globals, lzr_core, xdecor, lzr_mapgen
|
depends = lzr_globals, lzr_core, xdecor, lzr_mapgen, lzr_levels
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 268 B |
Binary file not shown.
After Width: | Height: | Size: 267 B |
Binary file not shown.
After Width: | Height: | Size: 263 B |
Binary file not shown.
After Width: | Height: | Size: 416 B |
|
@ -1,7 +0,0 @@
|
||||||
minetest.register_on_joinplayer(function(player)
|
|
||||||
local inv = player:get_inventory()
|
|
||||||
if inv:contains_item("main", "screwdriver:screwdriver") then
|
|
||||||
else
|
|
||||||
inv:add_item("main", "screwdriver:screwdriver")
|
|
||||||
end
|
|
||||||
end)
|
|
|
@ -1,2 +0,0 @@
|
||||||
name = lzr_startitems
|
|
||||||
depends = screwdriver
|
|
Loading…
Reference in New Issue