39 lines
1.3 KiB
Lua
39 lines
1.3 KiB
Lua
-- Fabric Patterns Management
|
|
|
|
local modpath = minetest.get_modpath("vox_fabric")
|
|
local patterns_file = modpath .. "/textures/patterns.json"
|
|
local patterns = {}
|
|
|
|
-- Load predefined patterns
|
|
local file = io.open(patterns_file, "r")
|
|
if file then
|
|
local content = file:read("*a")
|
|
file:close()
|
|
patterns = minetest.parse_json(content) or {}
|
|
end
|
|
|
|
-- Register predefined patterns as Pattern Template items
|
|
for _, pattern in ipairs(patterns.patterns or {}) do
|
|
minetest.register_craftitem("vox_fabric:pattern_" .. pattern.id, {
|
|
description = "Pattern: " .. (pattern.title or pattern.id),
|
|
inventory_image = "patterns/" .. pattern.id .. ".png",
|
|
groups = {pattern = 1},
|
|
})
|
|
end
|
|
|
|
-- Pattern Template Item
|
|
minetest.register_craftitem("vox_fabric:pattern_template", {
|
|
description = "Pattern Template",
|
|
inventory_image = "pattern_template.png",
|
|
groups = {template = 1},
|
|
on_use = function(itemstack, user, pointed_thing)
|
|
-- Interaction with Pattern Template
|
|
local meta = itemstack:get_meta()
|
|
local pattern_id = meta:get_string("pattern_id")
|
|
if pattern_id and pattern_id ~= "" then
|
|
minetest.chat_send_player(user:get_player_name(), "Pattern ID: " .. pattern_id)
|
|
else
|
|
minetest.chat_send_player(user:get_player_name(), "This template has no pattern.")
|
|
end
|
|
end,
|
|
})
|