mycastle/tapestry.lua

193 lines
5.8 KiB
Lua

local tapestry = {}
minetest.register_node("castle:tapestry_top", {
drawtype = "nodebox",
description = "Tapestry Top",
tiles = {"default_wood.png"},
sunlight_propagates = true,
groups = {flammable=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_defaults(),
paramtype = "light",
paramtype2 = "facedir",
node_box = {
type = "fixed",
fixed = {
{-0.6,-0.5,0.375,0.6,-0.375,0.5},
},
},
selection_box = {
type = "fixed",
fixed = {
{-0.6,-0.5,0.375,0.6,-0.375,0.5},
},
},
})
minetest.register_craft({
type = "shapeless",
output = 'castle:tapestry_top',
recipe = {'default:stick'},
})
tapestry.colours = {
{"white", "White", "white", "#FFFFFF"},
{"grey", "Grey", "grey", "#4B4B4B"},
{"black", "Black", "black", "#1F1F1F"},
{"red", "Red", "red", "#B21414"},
{"yellow", "Yellow", "yellow", "#FFD011"},
{"green", "Green", "green", "#43A91C"},
{"cyan", "Cyan", "cyan", "#00737B"},
{"blue", "Blue", "blue", "#003A7E"},
{"magenta", "Magenta", "magenta", "#DD0487"},
{"orange", "Orange", "orange", "#D55014"},
{"violet", "Violet", "violet", "#5D01AC"},
{"dark_grey", "Dark Grey", "dark_grey", "#3A3A3A"},
{"dark_green", "Dark Green", "dark_green", "#206400"},
{"pink", "Pink", "pink", "#FF8383"},
{"brown", "Brown", "brown", "#6D3800"},
}
for _, row in ipairs(tapestry.colours) do
local name = row[1]
local desc = row[2]
local craft_color_group = row[3]
local defcolor = row[4]
-- Node Definition
minetest.register_node("castle:tapestry_"..name, {
drawtype = "nodebox",
description = desc.." Tapestry",
--uses default wool textures for tapestry material
tiles = {"wool_"..name..".png^[transformR90"},
--uses custom texture for tapestry material
--tiles = {"castle_tapestry_overlay.png^[colorize:" .. defcolor ..":205"},
groups = {oddly_breakable_by_hand=3,flammable=3},
sounds = default.node_sound_defaults(),
paramtype = "light",
paramtype2 = "facedir",
node_box = {
type = "fixed",
fixed = {
{-0.3125,-0.5,0.4375,-0.1875,-0.375,0.5},
{0.1875,-0.5,0.4375,0.3125,-0.375,0.5},
{-0.375,-0.375,0.4375,-0.125,-0.25,0.5},
{0.125,-0.375,0.4375,0.375,-0.25,0.5},
{-0.4375,-0.25,0.4375,-0.0625,-0.125,0.5},
{0.0625,-0.25,0.4375,0.4375,-0.125,0.5},
{-0.5,-0.125,0.4375,0.0,0.0,0.5},
{0.0,-0.125,0.4375,0.5,0.0,0.5},
{-0.5,0.0,0.4375,0.5,1.5,0.5},
},
},
selection_box = {
type = "fixed",
fixed = {
{-0.5,-0.5,0.4375,0.5,1.5,0.5},
},
},
})
if craft_color_group then
-- Crafting from wool and a stick
minetest.register_craft({
type = "shapeless",
output = 'castle:tapestry_'..name,
recipe = {'wool:'..craft_color_group, 'default:stick'},
})
end
end
for _, row in ipairs(tapestry.colours) do
local name = row[1]
local desc = row[2]
local craft_color_group = row[3]
local defcolor = row[4]
-- Node Definition
minetest.register_node("castle:long_tapestry_"..name, {
drawtype = "nodebox",
description = desc.." Tapestry (Long)",
--uses default wool textures for tapestry material
tiles = {"wool_"..name..".png^[transformR90"},
--uses custom texture for tapestry material
--tiles = {"castle_tapestry_overlay.png^[colorize:" .. defcolor ..":205"},
groups = {oddly_breakable_by_hand=3,flammable=3},
sounds = default.node_sound_defaults(),
paramtype = "light",
paramtype2 = "facedir",
node_box = {
type = "fixed",
fixed = {
{-0.3125,-0.5,0.4375,-0.1875,-0.375,0.5},
{0.1875,-0.5,0.4375,0.3125,-0.375,0.5},
{-0.375,-0.375,0.4375,-0.125,-0.25,0.5},
{0.125,-0.375,0.4375,0.375,-0.25,0.5},
{-0.4375,-0.25,0.4375,-0.0625,-0.125,0.5},
{0.0625,-0.25,0.4375,0.4375,-0.125,0.5},
{-0.5,-0.125,0.4375,0.0,0.0,0.5},
{0.0,-0.125,0.4375,0.5,0.0,0.5},
{-0.5,0.0,0.4375,0.5,2.5,0.5},
},
},
selection_box = {
type = "fixed",
fixed = {
{-0.5,-0.5,0.4375,0.5,2.5,0.5},
},
},
})
if craft_color_group then
-- Crafting from normal tapestry and wool
minetest.register_craft({
type = "shapeless",
output = 'castle:long_tapestry_'..name,
recipe = {'wool:'..craft_color_group, 'castle:tapestry_'..name},
})
end
end
for _, row in ipairs(tapestry.colours) do
local name = row[1]
local desc = row[2]
local craft_color_group = row[3]
local defcolor = row[4]
-- Node Definition
minetest.register_node("castle:very_long_tapestry_"..name, {
drawtype = "nodebox",
description = desc.." Tapestry (Very Long)",
--uses default wool textures for tapestry material
tiles = {"wool_"..name..".png^[transformR90"},
--uses custom texture for tapestry material
--tiles = {"castle_tapestry_overlay.png^[colorize:" .. defcolor ..":205"},
groups = {oddly_breakable_by_hand=3,flammable=3},
sounds = default.node_sound_defaults(),
paramtype = "light",
paramtype2 = "facedir",
node_box = {
type = "fixed",
fixed = {
{-0.3125,-0.5,0.4375,-0.1875,-0.375,0.5},
{0.1875,-0.5,0.4375,0.3125,-0.375,0.5},
{-0.375,-0.375,0.4375,-0.125,-0.25,0.5},
{0.125,-0.375,0.4375,0.375,-0.25,0.5},
{-0.4375,-0.25,0.4375,-0.0625,-0.125,0.5},
{0.0625,-0.25,0.4375,0.4375,-0.125,0.5},
{-0.5,-0.125,0.4375,0.0,0.0,0.5},
{0.0,-0.125,0.4375,0.5,0.0,0.5},
{-0.5,0.0,0.4375,0.5,3.5,0.5},
},
},
selection_box = {
type = "fixed",
fixed = {
{-0.5,-0.5,0.4375,0.5,3.5,0.5},
},
},
})
if craft_color_group then
-- Crafting from long tapestry and wool
minetest.register_craft({
type = "shapeless",
output = 'castle:very_long_tapestry_'..name,
recipe = {'wool:'..craft_color_group, 'castle:long_tapestry_'..name},
})
end
end