|
@@ -27,16 +27,25 @@ minetest.register_privilege("creative", {
|
|
|
on_revoke = update_sfinv,
|
|
|
})
|
|
|
|
|
|
-local creative_mode_cache = minetest.settings:get_bool("creative_mode")
|
|
|
+-- Override the engine's creative mode function
|
|
|
+local old_is_creative_enabled = minetest.is_creative_enabled
|
|
|
|
|
|
+function minetest.is_creative_enabled(name)
|
|
|
+ if name == "" then
|
|
|
+ return old_is_creative_enabled(name)
|
|
|
+ end
|
|
|
+ return minetest.check_player_privs(name, {creative = true}) or
|
|
|
+ old_is_creative_enabled(name)
|
|
|
+end
|
|
|
+
|
|
|
+-- For backwards compatibility:
|
|
|
function creative.is_enabled_for(name)
|
|
|
- return creative_mode_cache or
|
|
|
- minetest.check_player_privs(name, {creative = true})
|
|
|
+ return minetest.is_creative_enabled(name)
|
|
|
end
|
|
|
|
|
|
dofile(minetest.get_modpath("creative") .. "/inventory.lua")
|
|
|
|
|
|
-if creative_mode_cache then
|
|
|
+if minetest.is_creative_enabled("") then
|
|
|
-- Dig time is modified according to difference (leveldiff) between tool
|
|
|
-- 'maxlevel' and node 'level'. Digtime is divided by the larger of
|
|
|
-- leveldiff and 1.
|