Voxelis/mods/ITEMS/vox_fabric/fabric_dying_bench.lua
2024-12-12 12:35:15 -08:00

35 lines
1.5 KiB
Lua

-- Fabric Dying Bench
minetest.register_node("vox_fabric:fabric_dying_bench", {
description = "Fabric Dying Bench",
tiles = {"fabric_dying_bench_top.png", "fabric_dying_bench_side.png"},
groups = {cracky = 2},
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
-- Show the UI for pattern creation
local formspec = "size[8,9]" ..
"label[0.5,0.5;Fabric Dying Bench]" ..
"dropdown[1,1;3;grid_size;16x16,32x32,64x64;2]" ..
"button[4,1;2,1;save;Save Pattern]"
minetest.show_formspec(clicker:get_player_name(), "vox_fabric:dying_bench", formspec)
end,
})
minetest.register_on_player_receive_fields(function(player, formname, fields)
if formname == "vox_fabric:dying_bench" then
if fields.save then
-- Save the pattern
local player_name = player:get_player_name()
local pattern_id = player_name .. "_pattern_" .. os.time()
local pattern_file = minetest.get_worldpath() .. "/vox_fabric_generated/" .. pattern_id .. ".json"
local pattern_data = {
size = fields.grid_size,
colors = {}, -- This would be populated based on the player's interactions
}
minetest.safe_file_write(pattern_file, minetest.serialize(pattern_data))
player:get_inventory():add_item("main", "vox_fabric:pattern_template")
minetest.chat_send_player(player_name, "Pattern saved as: " .. pattern_id)
end
end
end)