2017-03-17 16:53:18 -04:00
|
|
|
-- internationalization boilerplate
|
|
|
|
local MP = minetest.get_modpath(minetest.get_current_modname())
|
|
|
|
local S, NS = dofile(MP.."/intllib.lua")
|
|
|
|
|
|
|
|
local tapestry = {}
|
|
|
|
|
|
|
|
minetest.register_alias("castle:tapestry_top", "castle_tapestries:tapestry_top")
|
|
|
|
minetest.register_alias("castle:tapestry", "castle_tapestries:tapestry")
|
|
|
|
minetest.register_alias("castle:tapestry_long", "castle_tapestries:tapestry_long")
|
|
|
|
minetest.register_alias("castle:tapestry_very_long", "castle_tapestries:tapestry_very_long")
|
|
|
|
|
|
|
|
minetest.register_node("castle_tapestries:tapestry_top", {
|
|
|
|
drawtype = "nodebox",
|
|
|
|
description = S("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_tapestries:tapestry_top',
|
|
|
|
recipe = {'default:stick'},
|
|
|
|
})
|
|
|
|
|
|
|
|
tapestry.colours = {
|
|
|
|
"white",
|
|
|
|
"grey",
|
|
|
|
"black",
|
|
|
|
"red",
|
|
|
|
"yellow",
|
|
|
|
"green",
|
|
|
|
"cyan",
|
|
|
|
"blue",
|
|
|
|
"magenta",
|
|
|
|
"orange",
|
|
|
|
"violet",
|
|
|
|
"dark_grey",
|
|
|
|
"dark_green",
|
|
|
|
"pink",
|
|
|
|
"brown",
|
|
|
|
}
|
|
|
|
|
|
|
|
-- Regular-length tapestry
|
|
|
|
|
|
|
|
minetest.register_node("castle_tapestries:tapestry", {
|
|
|
|
drawtype = "mesh",
|
|
|
|
mesh = "castle_tapestry.obj",
|
|
|
|
description = S("Tapestry"),
|
|
|
|
tiles = {"castle_tapestry.png"},
|
|
|
|
inventory_image = "castle_tapestry_inv.png",
|
|
|
|
groups = {oddly_breakable_by_hand=3,flammable=3, ud_param2_colorable = 1},
|
|
|
|
sounds = default.node_sound_defaults(),
|
|
|
|
paramtype = "light",
|
|
|
|
paramtype2 = "colorwallmounted",
|
|
|
|
palette = "unifieddyes_palette_colorwallmounted.png",
|
|
|
|
selection_box = {
|
|
|
|
type = "wallmounted",
|
|
|
|
wall_side = {-0.5,-0.5,0.4375,0.5,1.5,0.5},
|
|
|
|
},
|
update castles modpack, blox, bobblocks, coloredwood, technic,
gloopblocks, homedecor, ilights, led marquee, plasticbox, solidcolor,
stained_glass, unified bricks, and unified dyes
In most of these, the update is to shift over to the new "old" coloring
paradigm in Unified Dyes. See its forum thread for details.
2018-08-22 22:28:28 -04:00
|
|
|
after_place_node = unifieddyes.fix_rotation_nsew,
|
2017-03-17 16:53:18 -04:00
|
|
|
on_rotate = unifieddyes.fix_after_screwdriver_nsew
|
|
|
|
})
|
|
|
|
|
|
|
|
-- Long tapestry
|
|
|
|
|
|
|
|
minetest.register_node("castle_tapestries:tapestry_long", {
|
|
|
|
drawtype = "mesh",
|
|
|
|
mesh = "castle_tapestry_long.obj",
|
|
|
|
description = S("Tapestry (Long)"),
|
|
|
|
tiles = {"castle_tapestry.png"},
|
|
|
|
inventory_image = "castle_tapestry_long_inv.png",
|
|
|
|
groups = {oddly_breakable_by_hand=3,flammable=3, ud_param2_colorable = 1},
|
|
|
|
sounds = default.node_sound_defaults(),
|
|
|
|
paramtype = "light",
|
|
|
|
paramtype2 = "colorwallmounted",
|
|
|
|
palette = "unifieddyes_palette_colorwallmounted.png",
|
|
|
|
selection_box = {
|
|
|
|
type = "wallmounted",
|
|
|
|
wall_side = {-0.5,-0.5,0.4375,0.5,2.5,0.5},
|
|
|
|
},
|
update castles modpack, blox, bobblocks, coloredwood, technic,
gloopblocks, homedecor, ilights, led marquee, plasticbox, solidcolor,
stained_glass, unified bricks, and unified dyes
In most of these, the update is to shift over to the new "old" coloring
paradigm in Unified Dyes. See its forum thread for details.
2018-08-22 22:28:28 -04:00
|
|
|
after_place_node = unifieddyes.fix_rotation_nsew,
|
2017-03-17 16:53:18 -04:00
|
|
|
on_rotate = unifieddyes.fix_after_screwdriver_nsew
|
|
|
|
})
|
|
|
|
|
|
|
|
-- Very long tapestry
|
|
|
|
|
|
|
|
minetest.register_node("castle_tapestries:tapestry_very_long", {
|
|
|
|
drawtype = "mesh",
|
|
|
|
mesh = "castle_tapestry_very_long.obj",
|
|
|
|
description = S("Tapestry (Very Long)"),
|
|
|
|
tiles = {"castle_tapestry.png"},
|
|
|
|
inventory_image = "castle_tapestry_very_long_inv.png",
|
|
|
|
groups = {oddly_breakable_by_hand=3,flammable=3, ud_param2_colorable = 1},
|
|
|
|
sounds = default.node_sound_defaults(),
|
|
|
|
paramtype = "light",
|
|
|
|
paramtype2 = "colorwallmounted",
|
|
|
|
palette = "unifieddyes_palette_colorwallmounted.png",
|
|
|
|
selection_box = {
|
|
|
|
type = "wallmounted",
|
|
|
|
wall_side = {-0.5,-0.5,0.4375,0.5,3.5,0.5},
|
|
|
|
},
|
update castles modpack, blox, bobblocks, coloredwood, technic,
gloopblocks, homedecor, ilights, led marquee, plasticbox, solidcolor,
stained_glass, unified bricks, and unified dyes
In most of these, the update is to shift over to the new "old" coloring
paradigm in Unified Dyes. See its forum thread for details.
2018-08-22 22:28:28 -04:00
|
|
|
after_place_node = unifieddyes.fix_rotation_nsew,
|
2017-03-17 16:53:18 -04:00
|
|
|
on_rotate = unifieddyes.fix_after_screwdriver_nsew
|
|
|
|
})
|
|
|
|
|
update castles modpack, blox, bobblocks, coloredwood, technic,
gloopblocks, homedecor, ilights, led marquee, plasticbox, solidcolor,
stained_glass, unified bricks, and unified dyes
In most of these, the update is to shift over to the new "old" coloring
paradigm in Unified Dyes. See its forum thread for details.
2018-08-22 22:28:28 -04:00
|
|
|
-- Crafting
|
|
|
|
|
|
|
|
minetest.register_craft({
|
|
|
|
type = "shapeless",
|
|
|
|
output = 'castle_tapestries:tapestry',
|
|
|
|
recipe = {'wool:white', 'default:stick'},
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_craft({
|
|
|
|
type = "shapeless",
|
|
|
|
output = 'castle_tapestries:tapestry',
|
|
|
|
recipe = {'cottages:wool', 'default:stick'},
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_craft({
|
|
|
|
type = "shapeless",
|
|
|
|
output = 'castle_tapestries:tapestry_long',
|
|
|
|
recipe = {'wool:white', 'castle_tapestries:tapestry'},
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_craft({
|
|
|
|
type = "shapeless",
|
|
|
|
output = 'castle_tapestries:tapestry_long',
|
|
|
|
recipe = {'cottages:wool', 'castle_tapestries:tapestry'},
|
|
|
|
})
|
2017-03-17 16:53:18 -04:00
|
|
|
|
|
|
|
minetest.register_craft({
|
|
|
|
type = "shapeless",
|
|
|
|
output = 'castle_tapestries:tapestry_very_long',
|
|
|
|
recipe = {'wool:white', 'castle_tapestries:tapestry_long'},
|
|
|
|
})
|
|
|
|
|
update castles modpack, blox, bobblocks, coloredwood, technic,
gloopblocks, homedecor, ilights, led marquee, plasticbox, solidcolor,
stained_glass, unified bricks, and unified dyes
In most of these, the update is to shift over to the new "old" coloring
paradigm in Unified Dyes. See its forum thread for details.
2018-08-22 22:28:28 -04:00
|
|
|
minetest.register_craft({
|
|
|
|
type = "shapeless",
|
|
|
|
output = 'castle_tapestries:tapestry_very_long',
|
|
|
|
recipe = {'cottages:wool', 'castle_tapestries:tapestry_long'},
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
unifieddyes.register_color_craft({
|
|
|
|
output = "castle_tapestries:tapestry",
|
|
|
|
palette = "wallmounted",
|
|
|
|
type = "shapeless",
|
|
|
|
neutral_node = "castle_tapestries:tapestry",
|
|
|
|
recipe = {
|
|
|
|
"NEUTRAL_NODE",
|
|
|
|
"MAIN_DYE",
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
unifieddyes.register_color_craft({
|
|
|
|
output = "castle_tapestries:tapestry_long",
|
|
|
|
palette = "wallmounted",
|
|
|
|
type = "shapeless",
|
|
|
|
neutral_node = "castle_tapestries:tapestry_long",
|
|
|
|
recipe = {
|
|
|
|
"NEUTRAL_NODE",
|
|
|
|
"MAIN_DYE",
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
unifieddyes.register_color_craft({
|
|
|
|
output = "castle_tapestries:tapestry_very_long",
|
|
|
|
palette = "wallmounted",
|
|
|
|
type = "shapeless",
|
|
|
|
neutral_node = "castle_tapestries:tapestry_very_long",
|
|
|
|
recipe = {
|
|
|
|
"NEUTRAL_NODE",
|
|
|
|
"MAIN_DYE",
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
2017-03-17 16:53:18 -04:00
|
|
|
-- Convert static tapestries to param2 color
|
|
|
|
|
|
|
|
local old_static_tapestries = {}
|
|
|
|
|
|
|
|
for _, color in ipairs(tapestry.colours) do
|
|
|
|
table.insert(old_static_tapestries, "castle:tapestry_"..color)
|
|
|
|
table.insert(old_static_tapestries, "castle:long_tapestry_"..color)
|
|
|
|
table.insert(old_static_tapestries, "castle:very_long_tapestry_"..color)
|
|
|
|
end
|
|
|
|
|
|
|
|
minetest.register_lbm({
|
|
|
|
name = "castle_tapestries:convert_tapestries",
|
|
|
|
label = "Convert tapestries to use param2 color",
|
|
|
|
run_at_every_load = false,
|
|
|
|
nodenames = old_static_tapestries,
|
|
|
|
action = function(pos, node)
|
|
|
|
local oldname = node.name
|
|
|
|
local color = string.sub(oldname, string.find(oldname, "_", -12) + 1)
|
|
|
|
|
|
|
|
if color == "red" then
|
|
|
|
color = "medium_red"
|
|
|
|
elseif color == "cyan" then
|
|
|
|
color = "medium_cyan"
|
|
|
|
elseif color == "blue" then
|
|
|
|
color = "medium_blue"
|
|
|
|
elseif color == "magenta" then
|
|
|
|
color = "medium_magenta"
|
|
|
|
end
|
|
|
|
|
|
|
|
local paletteidx, _ = unifieddyes.getpaletteidx("unifieddyes:"..color, "wallmounted")
|
|
|
|
|
|
|
|
local old_fdir = math.floor(node.param2 % 32)
|
|
|
|
local new_fdir = 3
|
|
|
|
|
|
|
|
if old_fdir == 0 then
|
|
|
|
new_fdir = 3
|
|
|
|
elseif old_fdir == 1 then
|
|
|
|
new_fdir = 4
|
|
|
|
elseif old_fdir == 2 then
|
|
|
|
new_fdir = 2
|
|
|
|
elseif old_fdir == 3 then
|
|
|
|
new_fdir = 5
|
|
|
|
end
|
|
|
|
|
|
|
|
local param2 = paletteidx + new_fdir
|
|
|
|
local newname = "castle_tapestries:tapestry"
|
|
|
|
if string.find(oldname, ":long") then
|
|
|
|
newname = "castle_tapestries:tapestry_long"
|
|
|
|
elseif string.find(oldname, ":very_long") then
|
|
|
|
newname = "castle_tapestries:tapestry_very_long"
|
|
|
|
end
|
|
|
|
|
|
|
|
minetest.set_node(pos, { name = newname, param2 = param2 })
|
|
|
|
local meta = minetest.get_meta(pos)
|
|
|
|
meta:set_string("dye", "unifieddyes:"..color)
|
|
|
|
end
|
|
|
|
})
|