29 lines
1.1 KiB
Lua
29 lines
1.1 KiB
Lua
|
local build_ship = function(pos)
|
||
|
minetest.place_schematic(pos, minetest.get_modpath("lzr_menu").."/schematics/lzr_menu_ship.mts", "0", {}, true, "")
|
||
|
end
|
||
|
|
||
|
local emerge_callback = function(blockpos, action, calls_remaining, param)
|
||
|
minetest.log("verbose", "[lzr_menu] emerge_callback() ...")
|
||
|
if action == minetest.EMERGE_ERRORED then
|
||
|
minetest.log("error", "[lzr_menu] Emerging error.")
|
||
|
elseif action == minetest.EMERGE_CANCELLED then
|
||
|
minetest.log("error", "[lzr_menu] Emerging cancelled.")
|
||
|
elseif calls_remaining == 0 and (action == minetest.EMERGE_GENERATED or action == minetest.EMERGE_FROM_DISK or action == minetest.EMERGE_FROM_MEMORY) then
|
||
|
build_ship(param.pos)
|
||
|
minetest.log("action", "[lzr_menu] Ship emerged and built.")
|
||
|
end
|
||
|
end
|
||
|
|
||
|
local SHIP_SIZE = { x = 30, y = 30, z = 30 }
|
||
|
|
||
|
local emerge_ship = function(pos)
|
||
|
minetest.emerge_area(pos, vector.add(pos, SHIP_SIZE), emerge_callback, {pos=pos, size=SHIP_SIZE})
|
||
|
end
|
||
|
|
||
|
minetest.register_on_joinplayer(function(player)
|
||
|
emerge_ship(lzr_globals.MENU_SHIP_POS)
|
||
|
player:set_pos(vector.add(lzr_globals.MENU_SHIP_POS, lzr_globals.MENU_SHIP_PLAYER_SPAWN_OFFSET))
|
||
|
end)
|
||
|
|
||
|
|