forked from Mirrorlandia_minetest/minetest
Allow random menu images for subgames
This commit is contained in:
parent
fa7fe510d9
commit
8994913259
@ -159,6 +159,7 @@ function dump(o, indent, nested, level)
|
|||||||
return "{"..table.concat(t, ", ").."}"
|
return "{"..table.concat(t, ", ").."}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
function string.split(str, delim, include_empty, max_splits, sep_is_pattern)
|
function string.split(str, delim, include_empty, max_splits, sep_is_pattern)
|
||||||
delim = delim or ","
|
delim = delim or ","
|
||||||
max_splits = max_splits or -1
|
max_splits = max_splits or -1
|
||||||
@ -183,10 +184,23 @@ function string.split(str, delim, include_empty, max_splits, sep_is_pattern)
|
|||||||
return items
|
return items
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
function table.indexof(list, val)
|
||||||
|
for i = 1, #list do
|
||||||
|
if list[i] == val then
|
||||||
|
return i
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return -1
|
||||||
|
end
|
||||||
|
|
||||||
|
assert(table.indexof({"foo", "bar"}, "foo") == 1)
|
||||||
|
assert(table.indexof({"foo", "bar"}, "baz") == -1)
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
function file_exists(filename)
|
function file_exists(filename)
|
||||||
local f = io.open(filename, "r")
|
local f = io.open(filename, "r")
|
||||||
if f==nil then
|
if f == nil then
|
||||||
return false
|
return false
|
||||||
else
|
else
|
||||||
f:close()
|
f:close()
|
||||||
|
@ -129,7 +129,7 @@ function mm_texture.set_generic(identifier)
|
|||||||
end
|
end
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
function mm_texture.set_game(identifier,gamedetails)
|
function mm_texture.set_game(identifier, gamedetails)
|
||||||
|
|
||||||
if gamedetails == nil then
|
if gamedetails == nil then
|
||||||
return false
|
return false
|
||||||
@ -138,14 +138,32 @@ function mm_texture.set_game(identifier,gamedetails)
|
|||||||
if mm_texture.texturepack ~= nil then
|
if mm_texture.texturepack ~= nil then
|
||||||
local path = mm_texture.texturepack .. DIR_DELIM ..
|
local path = mm_texture.texturepack .. DIR_DELIM ..
|
||||||
gamedetails.id .. "_menu_" .. identifier .. ".png"
|
gamedetails.id .. "_menu_" .. identifier .. ".png"
|
||||||
if core.set_background(identifier,path) then
|
if core.set_background(identifier, path) then
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local path = gamedetails.path .. DIR_DELIM .."menu" ..
|
-- Find out how many randomized textures the subgame provides
|
||||||
DIR_DELIM .. identifier .. ".png"
|
local n, filename
|
||||||
if core.set_background(identifier,path) then
|
local menu_files = core.get_dir_list(gamedetails.path .. DIR_DELIM .. "menu", false)
|
||||||
|
for i = 1, #menu_files do
|
||||||
|
local filename = identifier .. "." .. i .. ".png"
|
||||||
|
if table.indexof(menu_files, filename) == -1 then
|
||||||
|
n = i - 1
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- Select random texture, 0 means standard texture
|
||||||
|
n = math.random(0, n)
|
||||||
|
if n == 0 then
|
||||||
|
filename = identifier .. ".png"
|
||||||
|
else
|
||||||
|
filename = identifier .. "." .. n .. ".png"
|
||||||
|
end
|
||||||
|
|
||||||
|
local path = gamedetails.path .. DIR_DELIM .. "menu" ..
|
||||||
|
DIR_DELIM .. filename
|
||||||
|
if core.set_background(identifier, path) then
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user