From 937ec64ee621d5943306fe3118e4fd487a62a144 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Thu, 26 Jul 2012 04:05:39 +0300 Subject: [PATCH] Make wools colorable by any dye (not just the ones in the dye mod) --- mods/dye/README.txt | 2 ++ mods/wool/init.lua | 48 ++++++++++++++++++++++++++++----------------- 2 files changed, 32 insertions(+), 18 deletions(-) diff --git a/mods/dye/README.txt b/mods/dye/README.txt index c7ae077a..d414c2cc 100644 --- a/mods/dye/README.txt +++ b/mods/dye/README.txt @@ -1,6 +1,8 @@ Minetest 0.4 mod: dye ====================== +See init.lua for documentation. + License of source code and media files: --------------------------------------- Copyright (C) 2012 Perttu Ahola (celeron55) diff --git a/mods/wool/init.lua b/mods/wool/init.lua index c0b44675..44ea29e0 100644 --- a/mods/wool/init.lua +++ b/mods/wool/init.lua @@ -5,40 +5,52 @@ minetest.register_alias("wool:dark_blue", "wool:blue") minetest.register_alias("wool:gold", "wool:yellow") local wool = {} +-- This uses a trick: you can first define the recipes using all of the base +-- colors, and then some recipes using more specific colors for a few non-base +-- colors available. When crafting, the last recipes will be checked first. wool.dyes = { - {"white", "White"}, - {"grey", "Grey"}, - {"dark_grey", "Dark Grey"}, - {"black", "Black"}, - {"violet", "Violet"}, - {"blue", "Blue"}, - {"cyan", "Cyan"}, - {"dark_green", "Dark Green"}, - {"green", "Green"}, - {"yellow", "Yellow"}, - {"brown", "Brown"}, - {"orange", "Orange"}, - {"red", "Red"}, - {"magenta", "Magenta"}, - {"pink", "Pink"}, + {"white", "White", nil}, + {"grey", "Grey", "basecolor_grey"}, + {"black", "Black", "basecolor_black"}, + {"red", "Red", "basecolor_red"}, + {"yellow", "Yellow", "basecolor_yellow"}, + {"green", "Green", "basecolor_green"}, + {"cyan", "Cyan", "basecolor_cyan"}, + {"blue", "Blue", "basecolor_blue"}, + {"magenta", "Magenta", "basecolor_magenta"}, + {"orange", "Orange", "excolor_orange"}, + {"violet", "Violet", "excolor_violet"}, + {"brown", "Brown", "unicolor_dark_orange"}, + {"pink", "Pink", "unicolor_light_red"}, + {"dark_grey", "Dark Grey", "unicolor_darkgrey"}, + {"dark_green", "Dark Green", "unicolor_dark_green"}, } for _, row in ipairs(wool.dyes) do local name = row[1] local desc = row[2] + local craft_color_group = row[3] -- Node Definition minetest.register_node("wool:"..name, { description = desc.." Wool", tile_images = {"wool_"..name..".png"}, groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=3}, }) - if name ~= "white" then + if craft_color_group then -- Crafting from dye and white wool minetest.register_craft({ + output = 'wool:'..name..' 16', + recipe = { + {'group:'..craft_color_group}, + {'wool:white'}, + } + }) + -- Shapeless group recipes don't currently work + --[[minetest.register_craft({ type = "shapeless", output = 'wool:'..name..' 16', - recipe = {'dye:'..name, 'wool:white'}, - }) + recipe = {'group:'..craft_color_group, 'wool:white'}, + })--]] end end