privs and checks to capture and place meshes, granted to singleplayer by default
parent
506cf26497
commit
67c6b1bb2c
23
init.lua
23
init.lua
|
@ -7,6 +7,15 @@ wesh = {
|
||||||
forms = {},
|
forms = {},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
minetest.register_privilege("wesh_capture", {
|
||||||
|
description = "Can use wesh canvases to capture new meshes",
|
||||||
|
give_to_singleplayer = true,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_privilege("wesh_place", {
|
||||||
|
description = "Can place nodes created from wesh captures",
|
||||||
|
give_to_singleplayer = true,
|
||||||
|
})
|
||||||
|
|
||||||
local smartfs = dofile(wesh.modpath .. "/smartfs.lua")
|
local smartfs = dofile(wesh.modpath .. "/smartfs.lua")
|
||||||
|
|
||||||
|
@ -311,6 +320,12 @@ end
|
||||||
function wesh.mesh_capture_confirmed(button_or_field, state)
|
function wesh.mesh_capture_confirmed(button_or_field, state)
|
||||||
local meshname = state:get("meshname"):getText()
|
local meshname = state:get("meshname"):getText()
|
||||||
local playername = state.player
|
local playername = state.player
|
||||||
|
|
||||||
|
if not minetest.get_player_privs(playername).wesh_capture then
|
||||||
|
wesh.notify(playername, "Insufficient privileges to capture new meshes")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
local canvas = wesh.player_canvas[playername]
|
local canvas = wesh.player_canvas[playername]
|
||||||
canvas.generate_matrix = state:get("generate_matrix"):getValue()
|
canvas.generate_matrix = state:get("generate_matrix"):getValue()
|
||||||
|
|
||||||
|
@ -513,6 +528,14 @@ function wesh._load_mesh(obj_filename)
|
||||||
if props.collision_box and not props.selection_box then
|
if props.collision_box and not props.selection_box then
|
||||||
props.selection_box = props.collision_box
|
props.selection_box = props.collision_box
|
||||||
end
|
end
|
||||||
|
props.on_place = function(itemstack, placer, pointed_thing)
|
||||||
|
local playername = placer:get_player_name()
|
||||||
|
if not minetest.get_player_privs(playername).wesh_place then
|
||||||
|
wesh.notify(playername, "Insufficient privileges to place mesh nodes")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
minetest.item_place(itemstack, placer, pointed_thing)
|
||||||
|
end
|
||||||
minetest.register_node("wesh:" .. nodename .. "_" .. variant, props)
|
minetest.register_node("wesh:" .. nodename .. "_" .. variant, props)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue