uforun/mods/creative/init.lua

79 lines
2.0 KiB
Lua

creative = {}
creative.building_nodes = {}
function creative.build(player)
for k,v in pairs(creative.building_nodes) do
player:get_inventory():add_item('main', v)
end
end
function creative.register_building_node(name)
table.insert(creative.building_nodes, name)
end
function creative.play(player)
-- TODO: clear inventory
end
creative.register_building_node("levelnodes:finishline 4")
creative.register_building_node("levelnodes:dirt 99")
creative.register_building_node("levelnodes:grass 99")
creative.register_building_node("levelnodes:ice 99")
creative.register_building_node("levelnodes:dirt_with_grass 99")
creative.register_building_node("levelnodes:spikes 99")
creative.register_building_node("levelnodes:dirt_with_ice 99")
creative.register_building_node("levelnodes:cushion 99")
creative.register_building_node("levelnodes:bouncer 99")
minetest.register_chatcommand("build", {
params = "",
description = "Switch to building mode",
func = function(name, param)
local player = minetest.get_player_by_name(name)
if not player then
return false, "Player not found"
end
creative.build(player)
return true, "Done."
end,
})
minetest.register_chatcommand("play", {
params = "",
description = "Switch to play mode",
func = function(name, param)
local player = minetest.get_player_by_name(name)
if not player then
return false, "Player not found"
end
creative.play(player)
teleport.back(player)
return true, "Done."
end,
})
minetest.register_chatcommand("lobby", {
params = "",
description = "Teleport to lobby",
func = function(name, param)
local player = minetest.get_player_by_name(name)
if not player then
return false, "Player not found"
end
creative.play(player)
teleport.lobby(player)
return true, "Done."
end,
})
if minetest.setting_getbool("creative_mode") then
-- Place node at player pos
minetest.nodedef_default.on_secondary_use = function(itemstack, user, pointed)
local pos = user:getpos()
local s_name = itemstack:get_name()
minetest.set_node(pos, {name = s_name})
end
end