mirror of
				https://github.com/luanti-org/minetest_game.git
				synced 2025-11-04 01:05:49 +01:00 
			
		
		
		
	creative: Update for compatibility with minetest.creative_is_enabled (#2691)
This commit is contained in:
		@@ -93,11 +93,9 @@ For example,
 | 
			
		||||
is used to show all tools. Name is used in the sfinv page name, title is the
 | 
			
		||||
human readable title.
 | 
			
		||||
 | 
			
		||||
`is_enabled_for` is used to check whether a player is in creative mode:
 | 
			
		||||
 | 
			
		||||
    creative.is_enabled_for(name)
 | 
			
		||||
 | 
			
		||||
Override this to allow per-player game modes.
 | 
			
		||||
Creative provides `creative.is_enabled_for(name)`, which is identical in
 | 
			
		||||
functionality to the engine's `minetest.creative_is_enabled(name)`.
 | 
			
		||||
Its use is deprecated and it should also not be overriden.
 | 
			
		||||
 | 
			
		||||
The contents of `creative.formspec_add` is appended to every creative inventory
 | 
			
		||||
page. Mods can use it to add additional formspec elements onto the default
 | 
			
		||||
 
 | 
			
		||||
@@ -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.
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user