mirror of
https://github.com/minetest/minetest.git
synced 2024-11-30 11:33:44 +01:00
Add a Way of checking for specific Feature with Lua Adds minetest.get_feature() and minetest.has_feature()
This commit is contained in:
parent
c824abd7b2
commit
a4183994a4
@ -24,4 +24,5 @@ dofile(minetest.get_modpath("__builtin").."/chatcommands.lua")
|
|||||||
dofile(minetest.get_modpath("__builtin").."/static_spawn.lua")
|
dofile(minetest.get_modpath("__builtin").."/static_spawn.lua")
|
||||||
dofile(minetest.get_modpath("__builtin").."/detached_inventory.lua")
|
dofile(minetest.get_modpath("__builtin").."/detached_inventory.lua")
|
||||||
dofile(minetest.get_modpath("__builtin").."/falling.lua")
|
dofile(minetest.get_modpath("__builtin").."/falling.lua")
|
||||||
|
dofile(minetest.get_modpath("__builtin").."/features.lua")
|
||||||
|
|
||||||
|
28
builtin/features.lua
Normal file
28
builtin/features.lua
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
-- Minetest: builtin/features.lua
|
||||||
|
|
||||||
|
minetest.features = {
|
||||||
|
"glasslike_framed" = true,
|
||||||
|
"nodebox_as_selectionbox" = true,
|
||||||
|
"chat_send_player_param3" = true,
|
||||||
|
"get_all_craft_recipes_works" = true,
|
||||||
|
"use_texture_alpha" = true,
|
||||||
|
}
|
||||||
|
|
||||||
|
function minetest.has_feature(arg)
|
||||||
|
if type(arg) == "table" then
|
||||||
|
missing_features = {}
|
||||||
|
result = true
|
||||||
|
for ft, _ in pairs(arg) do
|
||||||
|
if not minetest.features[ftr] then
|
||||||
|
missing_features[ftr] = true
|
||||||
|
result = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return result, missing_features
|
||||||
|
elseif type(arg) == "string" then
|
||||||
|
if not minetest.features[arg] then
|
||||||
|
return false, {[arg]=true}
|
||||||
|
end
|
||||||
|
return true, {}
|
||||||
|
end
|
||||||
|
end
|
@ -912,6 +912,11 @@ minetest.get_modnames() -> list of installed mods
|
|||||||
minetest.get_worldpath() -> eg. "/home/user/.minetest/world"
|
minetest.get_worldpath() -> eg. "/home/user/.minetest/world"
|
||||||
^ Useful for storing custom data
|
^ Useful for storing custom data
|
||||||
minetest.is_singleplayer()
|
minetest.is_singleplayer()
|
||||||
|
minetest.features
|
||||||
|
^ table containing API feature flags: {foo=true, bar=true}
|
||||||
|
minetest.has_feature(arg) -> bool, missing_features
|
||||||
|
^ arg: string or table in format {foo=true, bar=true}
|
||||||
|
^ missing_features: {foo=true, bar=true}
|
||||||
|
|
||||||
minetest.debug(line)
|
minetest.debug(line)
|
||||||
^ Always printed to stderr and logfile (print() is redirected here)
|
^ Always printed to stderr and logfile (print() is redirected here)
|
||||||
|
Loading…
Reference in New Issue
Block a user