summaryrefslogtreecommitdiff
path: root/coloredwood/fence.lua
diff options
context:
space:
mode:
Diffstat (limited to 'coloredwood/fence.lua')
-rw-r--r--coloredwood/fence.lua301
1 files changed, 301 insertions, 0 deletions
diff --git a/coloredwood/fence.lua b/coloredwood/fence.lua
new file mode 100644
index 0000000..fd6c312
--- /dev/null
+++ b/coloredwood/fence.lua
@@ -0,0 +1,301 @@
+-- Fences portion of Colored Wood mod by Vanessa Ezekowitz ~~ 2012-07-17
+-- based on my unified dyes modding template.
+--
+-- License: WTFPL
+
+local colored_block_modname = "coloredwood"
+local colored_block_description = "Wooden Fence"
+local neutral_block = "default:fence_wood"
+local colored_block_sunlight = "false"
+local colored_block_walkable = "true"
+local colored_block_groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2, not_in_creative_inventory=1}
+local colored_block_sound = "default.node_sound_wood_defaults()"
+
+for shade = 1, 3 do
+
+ local shadename = coloredwood.shades[shade]
+ local shadename2 = coloredwood.shades2[shade]
+
+ for hue = 1, 12 do
+
+ local huename = coloredwood.hues[hue]
+ local huename2 = coloredwood.hues2[hue]
+
+ local colorname = colored_block_modname..":fence_"..shadename..huename
+ local pngnameinv = colored_block_modname.."_fence_"..shadename..huename..".png"
+ local pngname = colored_block_modname.."_wood_"..shadename..huename..".png"
+ local nodedesc = shadename2..huename2..colored_block_description
+ local stickname = colored_block_modname..":stick_"..shadename..huename
+
+ local s50colorname = colored_block_modname..":fence_"..shadename..huename.."_s50"
+ local s50pngname = colored_block_modname.."_wood_"..shadename..huename.."_s50.png"
+ local s50pngnameinv = colored_block_modname.."_fence_"..shadename..huename.."_s50.png"
+ local s50nodedesc = shadename2..huename2..colored_block_description.." (50% Saturation)"
+ local s50stickname = colored_block_modname..":stick_"..shadename..huename.."_s50"
+
+ minetest.register_node(colorname, {
+ drawtype = "fencelike",
+ description = nodedesc,
+ tiles = { pngname },
+ inventory_image = pngnameinv,
+ wield_image = pngnameinv,
+ sunlight_propagates = colored_block_sunlight,
+ paramtype = "light",
+ walkable = colored_block_walkable,
+ groups = colored_block_groups,
+ sounds = colored_block_sound,
+ selection_box = {
+ type = "fixed",
+ fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
+ },
+ })
+
+ minetest.register_node(s50colorname, {
+ drawtype = "fencelike",
+ description = s50nodedesc,
+ tiles = { s50pngname },
+ inventory_image = s50pngnameinv,
+ wield_image = s50pngnameinv,
+ sunlight_propagates = colored_block_sunlight,
+ paramtype = "light",
+ walkable = colored_block_walkable,
+ groups = colored_block_groups,
+ sounds = colored_block_sound,
+ selection_box = {
+ type = "fixed",
+ fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
+ },
+ })
+
+ minetest.register_craft({
+ type = "fuel",
+ recipe = colorname,
+ burntime = 7,
+ })
+
+ minetest.register_craft({
+ type = "fuel",
+ recipe = s50colorname,
+ burntime = 7,
+ })
+
+ minetest.register_craft({
+ output = colorname.." 2" ,
+ recipe = {
+ {stickname, stickname, stickname },
+ {stickname, stickname, stickname }
+ }
+ })
+
+ minetest.register_craft({
+ output = s50colorname.." 2",
+ recipe = {
+ {s50stickname, s50stickname, s50stickname },
+ {s50stickname, s50stickname, s50stickname }
+ }
+ })
+
+ minetest.register_craft({
+ output = colorname.." 2",
+ recipe = {
+ { "unifieddyes:"..shadename..huename, "", "" },
+ {"group:stick", "group:stick", "group:stick"},
+ {"group:stick", "group:stick", "group:stick"},
+ },
+ })
+
+ minetest.register_craft({
+ output = s50colorname.." 2",
+ recipe = {
+ { "unifieddyes:"..shadename..huename.."_s50", "", "" },
+ {"group:stick", "group:stick", "group:stick"},
+ {"group:stick", "group:stick", "group:stick"},
+ },
+ })
+
+ minetest.register_craft( {
+ type = "shapeless",
+ output = colorname.." 2",
+ recipe = {
+ neutral_block,
+ neutral_block,
+ "unifieddyes:"..shadename..huename
+ },
+ })
+
+ minetest.register_craft( {
+ type = "shapeless",
+ output = colorname.." 2",
+ recipe = {
+ neutral_block,
+ neutral_block,
+ "unifieddyes:"..shadename..huename.."_s50"
+ },
+ })
+
+ end
+end
+
+-- Generate the "light" shades separately, since they don"t have a low-sat version.
+
+for hue = 1, 12 do
+ local huename = coloredwood.hues[hue]
+ local huename2 = coloredwood.hues2[hue]
+ local colorname = colored_block_modname..":fence_light_"..huename
+ local pngname = colored_block_modname.."_wood_light_"..huename..".png"
+ local pngnameinv = colored_block_modname.."_fence_light_"..huename..".png"
+ local nodedesc = "Light "..huename2..colored_block_description
+ local stickname = colored_block_modname..":stick_light_"..huename
+
+ minetest.register_node(colorname, {
+ drawtype = "fencelike",
+ description = nodedesc,
+ tiles = { pngname },
+ inventory_image = pngnameinv,
+ wield_image = pngnameinv,
+ sunlight_propagates = colored_block_sunlight,
+ paramtype = "light",
+ walkable = colored_block_walkable,
+ groups = colored_block_groups,
+ sounds = colored_block_sound,
+ selection_box = {
+ type = "fixed",
+ fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
+ },
+ })
+
+ minetest.register_craft({
+ type = "fuel",
+ recipe = colorname,
+ burntime = 7,
+ })
+
+ minetest.register_craft({
+ output = colorname.." 2",
+ recipe = {
+ {stickname, stickname, stickname },
+ {stickname, stickname, stickname }
+ }
+ })
+
+ minetest.register_craft({
+ output = colorname.." 2",
+ recipe = {
+ { "unifieddyes:light_"..huename, "", "" },
+ {"group:stick", "group:stick", "group:stick"},
+ {"group:stick", "group:stick", "group:stick"},
+ },
+ })
+
+ minetest.register_craft( {
+ type = "shapeless",
+ output = colorname.." 2",
+ recipe = {
+ neutral_block,
+ neutral_block,
+ "unifieddyes:light_"..huename
+ },
+ })
+end
+
+-- extra recipes for default dye colors.
+
+for _, color in ipairs(coloredwood.default_hues) do
+ minetest.register_craft({
+ output = "coloredwood:fence_"..color.." 2",
+ recipe = {
+ { "dye:"..color, "", "" },
+ {"group:stick", "group:stick", "group:stick"},
+ {"group:stick", "group:stick", "group:stick"},
+ },
+ })
+end
+
+minetest.register_craft({
+ output = "coloredwood:fence_light_red 2",
+ recipe = {
+ { "dye:pink", "", "" },
+ {"group:stick", "group:stick", "group:stick"},
+ {"group:stick", "group:stick", "group:stick"},
+ },
+})
+
+minetest.register_craft({
+ output = "coloredwood:fence_dark_orange 2",
+ recipe = {
+ { "dye:brown", "", "" },
+ {"group:stick", "group:stick", "group:stick"},
+ {"group:stick", "group:stick", "group:stick"},
+ },
+})
+
+-- ============================================================
+-- The 5 levels of greyscale.
+--
+-- Oficially these are 0, 25, 50, 75, and 100% relative to white,
+-- but in practice, they"re actually 7.5%, 25%, 50%, 75%, and 95%.
+-- (otherwise black and white would wash out).
+
+for grey = 1,5 do
+
+ local greyname = coloredwood.greys[grey]
+ local greyname2 = coloredwood.greys2[grey]
+ local greyname3 = coloredwood.greys3[grey]
+
+ local greyshadename = colored_block_modname..":fence_"..greyname
+ local pngname = colored_block_modname.."_wood_"..greyname..".png"
+ local pngnameinv = colored_block_modname.."_fence_"..greyname..".png"
+ local nodedesc = greyname2..colored_block_description
+ local stickname = colored_block_modname..":stick_"..greyname
+
+ minetest.register_node(greyshadename, {
+ drawtype = "fencelike",
+ description = nodedesc,
+ tiles = { pngname },
+ inventory_image = pngnameinv,
+ wield_image = pngnameinv,
+ sunlight_propagates = colored_block_sunlight,
+ paramtype = "light",
+ walkable = colored_block_walkable,
+ groups = colored_block_groups,
+ sounds = colored_block_sound,
+ selection_box = {
+ type = "fixed",
+ fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
+ },
+ })
+
+ minetest.register_craft({
+ type = "fuel",
+ recipe = greyshadename,
+ burntime = 7,
+ })
+
+ minetest.register_craft({
+ output = greyshadename.." 2",
+ recipe = {
+ {stickname, stickname, stickname },
+ {stickname, stickname, stickname }
+ }
+ })
+
+ minetest.register_craft({
+ output = greyshadename.." 2",
+ recipe = {
+ { greyname3, "", "" },
+ {"group:stick", "group:stick", "group:stick"},
+ {"group:stick", "group:stick", "group:stick"},
+ },
+ })
+
+ minetest.register_craft( {
+ type = "shapeless",
+ output = greyshadename.." 2",
+ recipe = {
+ neutral_block,
+ neutral_block,
+ greyname3
+ },
+ })
+
+end