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

37 lines
1.4 KiB
Lua

-- Voxelis: vox_fabric
-- Dynamic fabric and pattern system for Minetest
-- Initialize the global table for the mod
vox_fabric = {}
-- Dependencies
local modpath = minetest.get_modpath("vox_fabric")
dofile(modpath .. "/fabric_dying_bench.lua")
dofile(modpath .. "/fabric_patterns.lua")
-- Fabric Registry
local fabric_registry = {}
-- Register a fabric application
function vox_fabric.register_application(modname, base_item, description, base_texture)
fabric_registry[modname] = fabric_registry[modname] or {}
table.insert(fabric_registry[modname], base_item)
minetest.register_node(modname .. ":" .. base_item, {
description = description,
tiles = {base_texture},
groups = {fabric = 1},
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
-- Interaction logic for applying patterns
local meta = itemstack:get_meta()
local pattern_id = meta:get_string("pattern_id")
if pattern_id and pattern_id ~= "" then
local new_texture = "generated_patterns/" .. pattern_id .. ".png"
minetest.swap_node(pos, {name = modname .. ":" .. base_item, tiles = {new_texture}})
minetest.chat_send_player(clicker:get_player_name(), "Applied pattern: " .. pattern_id)
else
minetest.chat_send_player(clicker:get_player_name(), "No pattern found on the template.")
end
end,
})
end