Make wools colorable by any dye (not just the ones in the dye mod)

This commit is contained in:
Perttu Ahola 2012-07-26 04:05:39 +03:00
parent 7db7ea543f
commit 937ec64ee6
2 changed files with 32 additions and 18 deletions

View File

@ -1,6 +1,8 @@
Minetest 0.4 mod: dye Minetest 0.4 mod: dye
====================== ======================
See init.lua for documentation.
License of source code and media files: License of source code and media files:
--------------------------------------- ---------------------------------------
Copyright (C) 2012 Perttu Ahola (celeron55) <celeron55@gmail.com> Copyright (C) 2012 Perttu Ahola (celeron55) <celeron55@gmail.com>

View File

@ -5,40 +5,52 @@ minetest.register_alias("wool:dark_blue", "wool:blue")
minetest.register_alias("wool:gold", "wool:yellow") minetest.register_alias("wool:gold", "wool:yellow")
local wool = {} 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 = { wool.dyes = {
{"white", "White"}, {"white", "White", nil},
{"grey", "Grey"}, {"grey", "Grey", "basecolor_grey"},
{"dark_grey", "Dark Grey"}, {"black", "Black", "basecolor_black"},
{"black", "Black"}, {"red", "Red", "basecolor_red"},
{"violet", "Violet"}, {"yellow", "Yellow", "basecolor_yellow"},
{"blue", "Blue"}, {"green", "Green", "basecolor_green"},
{"cyan", "Cyan"}, {"cyan", "Cyan", "basecolor_cyan"},
{"dark_green", "Dark Green"}, {"blue", "Blue", "basecolor_blue"},
{"green", "Green"}, {"magenta", "Magenta", "basecolor_magenta"},
{"yellow", "Yellow"}, {"orange", "Orange", "excolor_orange"},
{"brown", "Brown"}, {"violet", "Violet", "excolor_violet"},
{"orange", "Orange"}, {"brown", "Brown", "unicolor_dark_orange"},
{"red", "Red"}, {"pink", "Pink", "unicolor_light_red"},
{"magenta", "Magenta"}, {"dark_grey", "Dark Grey", "unicolor_darkgrey"},
{"pink", "Pink"}, {"dark_green", "Dark Green", "unicolor_dark_green"},
} }
for _, row in ipairs(wool.dyes) do for _, row in ipairs(wool.dyes) do
local name = row[1] local name = row[1]
local desc = row[2] local desc = row[2]
local craft_color_group = row[3]
-- Node Definition -- Node Definition
minetest.register_node("wool:"..name, { minetest.register_node("wool:"..name, {
description = desc.." Wool", description = desc.." Wool",
tile_images = {"wool_"..name..".png"}, tile_images = {"wool_"..name..".png"},
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=3}, 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 -- Crafting from dye and white wool
minetest.register_craft({ 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", type = "shapeless",
output = 'wool:'..name..' 16', output = 'wool:'..name..' 16',
recipe = {'dye:'..name, 'wool:white'}, recipe = {'group:'..craft_color_group, 'wool:white'},
}) })--]]
end end
end end