generated from your-land/yl_template
your-land/bugtracker#4668 29 Remove different items, have only one item with the movie_id as meta
This commit is contained in:
parent
0b564fc78a
commit
4b927e6119
10
config.lua
10
config.lua
@ -9,11 +9,15 @@ yl_cinema.settings.admin_priv = minetest.settings:get("yl_cinema.admin_priv") or
|
|||||||
|
|
||||||
yl_cinema.settings.enable_movieitems = minetest.settings:get("yl_cinema.enable_movieitems") or true
|
yl_cinema.settings.enable_movieitems = minetest.settings:get("yl_cinema.enable_movieitems") or true
|
||||||
|
|
||||||
yl_cinema.settings.enable_bigscreen = minetest.settings:get("yl_cinema.enable_bigscreen") or true
|
yl_cinema.settings.enable_screens = minetest.settings:get("yl_cinema.enable_screens") or true
|
||||||
|
|
||||||
yl_cinema.settings.enable_craft_bigscreen = minetest.settings:get("yl_cinema.enable_craft_bigscreen") or true
|
yl_cinema.settings.enable_craft_screens = minetest.settings:get("yl_cinema.enable_craft_screens") or true
|
||||||
|
|
||||||
yl_cinema.settings.enable_craft_bigscreen_recipe = minetest.settings:get("yl_cinema.enable_craft_bigscreen_recipe") or
|
yl_cinema.settings.enable_craft_bigscreen_recipe = minetest.settings:get("yl_cinema.enable_craft_bigscreen_recipe") or
|
||||||
"wool:grey,wool:grey,wool:grey,wool:grey,wool:grey,wool:grey,wool:black,,wool:black"
|
"wool:grey,wool:grey,wool:grey,wool:grey,wool:grey,wool:grey,wool:black,,wool:black"
|
||||||
|
|
||||||
yl_cinema.settings.movie_item_name = minetest.settings:get("yl_cinema.movie_item_name") or "yl_cinema:movie"
|
yl_cinema.settings.enable_craft_flatscreen_recipe = minetest.settings:get("yl_cinema.enable_craft_flatscreen_recipe") or
|
||||||
|
"wool:grey,wool:grey,wool:grey,wool:grey,wool:grey,wool:grey,wool:black,,wool:black"
|
||||||
|
|
||||||
|
yl_cinema.settings.enable_craft_moviereel_recipe = minetest.settings:get("yl_cinema.enable_craft_moviereel_recipe") or
|
||||||
|
"default:steel_ingot,cottages:wagon_wheel,default:steel_ingot,default:mese_crystal_fragment,basic_materials:empty_spool,default:paper,default:steel_ingot,cottages:wagon_wheel,default:steel_ingot"
|
||||||
|
@ -1,24 +1,50 @@
|
|||||||
if yl_cinema.settings.enable_movieitems ~= true then return end
|
if yl_cinema.settings.enable_movieitems ~= true then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Empty reel
|
||||||
|
|
||||||
|
local movie_item_name_empty = "yl_cinema:movie_reel"
|
||||||
|
local movie_item_definition_empty = {
|
||||||
|
groups = {
|
||||||
|
movie = 1,
|
||||||
|
media = 1
|
||||||
|
},
|
||||||
|
inventory_image = "yl_cinema_icon_movie_empty_inv.png",
|
||||||
|
wield_image = "yl_cinema_icon_movie_empty_inv.png",
|
||||||
|
_yl_cinema_movie_id = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
minetest.register_craftitem(movie_item_name_empty, movie_item_definition_empty)
|
||||||
|
|
||||||
|
-- Written reel
|
||||||
|
|
||||||
|
local movie_item_name_written = "yl_cinema:movie_print"
|
||||||
local movie_item_definition = {
|
local movie_item_definition = {
|
||||||
groups = {movie = 1, not_in_creative_inventory = 1, media = 1},
|
groups = {
|
||||||
|
movie = 1,
|
||||||
|
not_in_creative_inventory = 1,
|
||||||
|
media = 1
|
||||||
|
},
|
||||||
inventory_image = "yl_cinema_icon_movie_inv.png",
|
inventory_image = "yl_cinema_icon_movie_inv.png",
|
||||||
wield_image = "yl_cinema_icon_movie_inv.png",
|
wield_image = "yl_cinema_icon_movie_inv.png",
|
||||||
stack_max = 1,
|
stack_max = 1,
|
||||||
range = 4,
|
_yl_cinema_movie_id = ""
|
||||||
liquids_pointable = false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for movie_id, movie in pairs(yl_cinema.movies) do
|
minetest.register_craftitem(movie_item_name_written, movie_item_definition)
|
||||||
if movie.item and (movie.item == true) then
|
|
||||||
local item_definition = movie_item_definition
|
-- Craft the empty reel
|
||||||
item_definition._yl_cinema_movie_id = movie_id
|
|
||||||
core.log("action", "item_definition._yl_cinema_movie_id=" ..
|
local recipe = yl_cinema.string_to_recipe(yl_cinema.settings.enable_craft_moviereel_recipe)
|
||||||
item_definition._yl_cinema_movie_id)
|
|
||||||
item_definition.short_description = minetest.formspec_escape(movie.name)
|
if type(recipe) == "table" then
|
||||||
item_definition.description =
|
minetest.register_craft({
|
||||||
minetest.formspec_escape(movie.description)
|
type = "shaped",
|
||||||
local item_string = yl_cinema.get_itemstring(movie_id)
|
output = movie_item_name_empty,
|
||||||
minetest.register_craftitem(item_string, item_definition)
|
recipe = recipe
|
||||||
end
|
})
|
||||||
|
else
|
||||||
|
yl_cinema.warn("Cannot register crafting recipe for Reel Item: " ..
|
||||||
|
dump(yl_cinema.settings.enable_craft_moviereel_recipe))
|
||||||
end
|
end
|
||||||
|
31
internal.lua
31
internal.lua
@ -185,6 +185,18 @@ local function load_movies(movies_directory)
|
|||||||
return movies, loaded_count, #movie_files
|
return movies, loaded_count, #movie_files
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function yl_cinema.load_movies()
|
||||||
|
local movie_save_path = yl_cinema.worldpath .. yl_cinema.settings.save_path
|
||||||
|
local movies, loaded_count, total_count = yl_cinema.load_movies(movie_save_path)
|
||||||
|
if loaded_count ~= total_count then
|
||||||
|
yl_cinema.warn(loaded_count .. "/" .. total_count .. " movies loaded.")
|
||||||
|
else
|
||||||
|
yl_cinema.action(loaded_count .. "/" .. total_count .. " movies loaded.")
|
||||||
|
end
|
||||||
|
return movies
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
local function search_movies(movies, search_term)
|
local function search_movies(movies, search_term)
|
||||||
local results = {}
|
local results = {}
|
||||||
for movie_id, movie in pairs(movies) do
|
for movie_id, movie in pairs(movies) do
|
||||||
@ -192,7 +204,7 @@ local function search_movies(movies, search_term)
|
|||||||
string.match(movie.description, search_term) then
|
string.match(movie.description, search_term) then
|
||||||
local item_string = ""
|
local item_string = ""
|
||||||
if movie.item == true then
|
if movie.item == true then
|
||||||
item_string = get_itemstring(movie_id)
|
item_string = "yes"
|
||||||
end
|
end
|
||||||
table.insert(results, {movie_id, movie.name, item_string or ""})
|
table.insert(results, {movie_id, movie.name, item_string or ""})
|
||||||
end
|
end
|
||||||
@ -355,6 +367,23 @@ function yl_cinema.cmd_show_movie(name, param)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function yl_cinema.cmd_movie_reload(name, param)
|
||||||
|
local args = string.split(param, " ")
|
||||||
|
|
||||||
|
if (#args >= 2) then
|
||||||
|
return false, "Usage: /movie_reload [<movie_id>]"
|
||||||
|
end
|
||||||
|
|
||||||
|
local movie_id = args[1] or ""
|
||||||
|
|
||||||
|
action("[yl_cinema] Player " .. name .. " reloads movie " .. movie_id)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
function yl_cinema.listmovies(searchterm)
|
function yl_cinema.listmovies(searchterm)
|
||||||
return search_movies(yl_cinema.movies, searchterm)
|
return search_movies(yl_cinema.movies, searchterm)
|
||||||
end
|
end
|
||||||
|
BIN
textures/yl_cinema_icon_movie_empty_inv.png
Normal file
BIN
textures/yl_cinema_icon_movie_empty_inv.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.4 KiB |
BIN
textures/yl_cinema_icon_movie_inv.old.png
Normal file
BIN
textures/yl_cinema_icon_movie_inv.old.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.3 KiB |
Binary file not shown.
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 6.5 KiB |
Loading…
Reference in New Issue
Block a user