Noch mehr mods
This commit is contained in:
parent
a063db5d3b
commit
cf017b2ca1
527 changed files with 21113 additions and 181 deletions
137
mods/airutils/texture_management.lua
Normal file
137
mods/airutils/texture_management.lua
Normal file
|
@ -0,0 +1,137 @@
|
|||
-- Function to extract textures from a node definition
|
||||
local function getTexturesFromNode(node)
|
||||
local textures = {}
|
||||
|
||||
if node.tiles then
|
||||
if type(node.tiles) == "string" then
|
||||
table.insert(textures, node.tiles)
|
||||
elseif type(node.tiles) == "table" then
|
||||
for _, tile in pairs(node.tiles) do
|
||||
if type(tile) == "string" then
|
||||
table.insert(textures, tile)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return textures
|
||||
end
|
||||
|
||||
-- Function to extract textures from an entity definition
|
||||
local function getTexturesFromEntity(entityDef)
|
||||
local textures = {}
|
||||
|
||||
if entityDef.textures then
|
||||
if type(entityDef.textures) == "string" then
|
||||
table.insert(textures, entityDef.textures)
|
||||
elseif type(entityDef.textures) == "table" then
|
||||
for _, texture in pairs(entityDef.textures) do
|
||||
if type(texture) == "string" then
|
||||
table.insert(textures, texture)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return textures
|
||||
end
|
||||
|
||||
-- Function to extract textures from an item definition
|
||||
local function getTexturesFromItem(itemDef)
|
||||
local textures = {}
|
||||
|
||||
if itemDef.inventory_image then
|
||||
table.insert(textures, itemDef.inventory_image)
|
||||
end
|
||||
|
||||
return textures
|
||||
end
|
||||
|
||||
--function to remove duplicates and invalid for textlist
|
||||
local function filter_texture_names(list_to_test)
|
||||
local hash = {}
|
||||
local result = {}
|
||||
for _,v in ipairs(list_to_test) do
|
||||
if not string.find(v, ",") then
|
||||
if (not hash[v]) then
|
||||
result[#result+1] = v
|
||||
hash[v] = true
|
||||
end
|
||||
end
|
||||
end
|
||||
return result
|
||||
end
|
||||
|
||||
-- Function to list all loaded textures
|
||||
local function listLoadedTextures()
|
||||
local loadedTextures = {}
|
||||
|
||||
--nodes
|
||||
for name, node in pairs(minetest.registered_nodes) do
|
||||
local textures = getTexturesFromNode(node)
|
||||
|
||||
for _, texture in pairs(textures) do
|
||||
table.insert(loadedTextures, texture)
|
||||
end
|
||||
end
|
||||
airutils.all_game_textures = filter_texture_names(loadedTextures)
|
||||
|
||||
--entities
|
||||
loadedTextures = {}
|
||||
for name, entityDef in pairs(minetest.registered_entities) do
|
||||
local textures = getTexturesFromEntity(entityDef)
|
||||
|
||||
for _, texture in pairs(textures) do
|
||||
table.insert(loadedTextures, texture)
|
||||
end
|
||||
end
|
||||
airutils.all_entities_textures = filter_texture_names(loadedTextures)
|
||||
|
||||
--items
|
||||
loadedTextures = {}
|
||||
for name, itemDef in pairs(minetest.registered_items) do
|
||||
local textures = getTexturesFromItem(itemDef)
|
||||
|
||||
for _, texture in pairs(textures) do
|
||||
table.insert(loadedTextures, texture)
|
||||
end
|
||||
end
|
||||
|
||||
if airutils.is_minetest then
|
||||
table.insert(loadedTextures,'bubble.png')
|
||||
table.insert(loadedTextures,'heart.png')
|
||||
end
|
||||
airutils.all_items_textures = filter_texture_names(loadedTextures)
|
||||
end
|
||||
|
||||
-- Function to check if a texture is in the list of loaded textures
|
||||
function airutils.isTextureLoaded(textureToFind)
|
||||
if not airutils.all_game_textures then
|
||||
listLoadedTextures()
|
||||
end
|
||||
local textures = airutils.all_game_textures
|
||||
|
||||
for _, texture in pairs(textures) do
|
||||
if texture == textureToFind then
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
textures = airutils.all_entities_textures
|
||||
|
||||
for _, texture in pairs(textures) do
|
||||
if texture == textureToFind then
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
textures = airutils.all_items_textures
|
||||
|
||||
for _, texture in pairs(textures) do
|
||||
if texture == textureToFind then
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue