VoxeLibre/mods/ITEMS/mcl_wool/init.lua

130 lines
5.4 KiB
Lua
Raw Normal View History

local S = minetest.get_translator(minetest.get_current_modname())
local mod_doc = minetest.get_modpath("doc")
2015-06-29 19:55:56 +02:00
-- minetest/wool/init.lua
-- Backwards compatibility with jordach's 16-color wool mod
2017-01-30 15:25:24 +01:00
minetest.register_alias("mcl_wool:dark_blue", "wool:blue")
minetest.register_alias("mcl_wool:gold", "wool:yellow")
2015-06-29 19:55:56 +02:00
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 = {
-- name, texture, wool desc., carpet desc., dye, color_group
2019-12-11 19:54:58 +01:00
{"white", "wool_white", S("White Wool"), S("White Carpet"), nil, "unicolor_white"},
{"grey", "wool_dark_grey", S("Grey Wool"), S("Grey Carpet"), "dark_grey", "unicolor_darkgrey"},
2019-12-11 19:54:58 +01:00
{"silver", "wool_grey", S("Light Grey Wool"), S("Light Grey Carpet"), "grey", "unicolor_grey"},
{"black", "wool_black", S("Black Wool"), S("Black Carpet"), "black", "unicolor_black"},
{"red", "wool_red", S("Red Wool"), S("Red Carpet"), "red", "unicolor_red"},
{"yellow", "wool_yellow", S("Yellow Wool"), S("Yellow Carpet"), "yellow", "unicolor_yellow"},
{"green", "wool_dark_green", S("Green Wool"), S("Green Carpet"), "dark_green", "unicolor_dark_green"},
2019-12-11 19:54:58 +01:00
{"cyan", "wool_cyan", S("Cyan Wool"), S("Cyan Carpet"), "cyan", "unicolor_cyan"},
{"blue", "wool_blue", S("Blue Wool"), S("Blue Carpet"), "blue", "unicolor_blue"},
{"magenta", "wool_magenta", S("Magenta Wool"), S("Magenta Carpet"), "magenta", "unicolor_red_violet"},
{"orange", "wool_orange", S("Orange Wool"), S("Orange Carpet"), "orange", "unicolor_orange"},
{"purple", "wool_violet", S("Purple Wool"), S("Purple Carpet"), "violet", "unicolor_violet"},
{"brown", "wool_brown", S("Brown Wool"), S("Brown Carpet"), "brown", "unicolor_dark_orange"},
{"pink", "wool_pink", S("Pink Wool"), S("Pink Carpet"), "pink", "unicolor_light_red"},
2019-12-11 19:54:58 +01:00
{"lime", "mcl_wool_lime", S("Lime Wool"), S("Lime Carpet"), "green", "unicolor_green"},
{"light_blue", "mcl_wool_light_blue", S("Light Blue Wool"), S("Light Blue Carpet"), "lightblue", "unicolor_light_blue"},
2015-06-29 19:55:56 +02:00
}
local canonical_color = "white"
2015-06-29 19:55:56 +02:00
for _, row in ipairs(wool.dyes) do
local name = row[1]
2017-01-05 00:54:50 +01:00
local texture = row[2]
local desc_wool = row[3]
local desc_carpet = row[4]
local dye = row[5]
local color_group = row[6]
local longdesc_wool, longdesc_carpet, create_entry, name_wool, name_carpet
local is_canonical = name == canonical_color
if mod_doc then
if is_canonical then
longdesc_wool = S("Wool is a decorative block which comes in many different colors.")
longdesc_carpet = S("Carpets are thin floor covers which come in many different colors.")
name_wool = S("Wool")
name_carpet = S("Carpet")
else
create_entry = false
end
end
2015-06-29 19:55:56 +02:00
-- Node Definition
2017-01-30 15:25:24 +01:00
minetest.register_node("mcl_wool:"..name, {
description = desc_wool,
_doc_items_create_entry = create_entry,
_doc_items_entry_name = name_wool,
_doc_items_longdesc = longdesc_wool,
2015-06-29 19:55:56 +02:00
stack_max = 64,
is_ground_content = false,
tiles = {texture..".png"},
groups = {handy=1,shearsy_wool=1, flammable=1,fire_encouragement=30, fire_flammability=60, wool=1,building_block=1,[color_group]=1},
2019-06-14 23:01:50 +02:00
sounds = mcl_sounds.node_sound_wool_defaults(),
2017-02-27 01:05:49 +01:00
_mcl_hardness = 0.8,
_mcl_blast_resistance = 0.8,
2015-06-29 19:55:56 +02:00
})
2017-01-30 15:25:24 +01:00
minetest.register_node("mcl_wool:"..name.."_carpet", {
description = desc_carpet,
_doc_items_create_entry = create_entry,
_doc_items_entry_name = name_carpet,
_doc_items_longdesc = longdesc_carpet,
is_ground_content = false,
tiles = {texture..".png"},
wield_image = texture..".png",
2017-03-02 17:03:14 +01:00
wield_scale = { x=1, y=1, z=0.5 },
groups = {handy=1, carpet=1,supported_node=1,flammable=1,fire_encouragement=60, fire_flammability=20, dig_by_water=1,deco_block=1,[color_group]=1},
2019-06-14 23:01:50 +02:00
sounds = mcl_sounds.node_sound_wool_defaults(),
2015-06-29 19:55:56 +02:00
paramtype = "light",
2017-03-20 19:03:37 +01:00
sunlight_propagates = true,
2015-06-29 19:55:56 +02:00
stack_max = 64,
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-8/16, -8/16, -8/16, 8/16, -7/16, 8/16},
},
},
2017-02-27 01:05:49 +01:00
_mcl_hardness = 0.1,
_mcl_blast_resistance = 0.1,
2015-06-29 19:55:56 +02:00
})
if mod_doc and not is_canonical then
doc.add_entry_alias("nodes", "mcl_wool:"..canonical_color, "nodes", "mcl_wool:"..name)
doc.add_entry_alias("nodes", "mcl_wool:"..canonical_color.."_carpet", "nodes", "mcl_wool:"..name.."_carpet")
end
2017-05-15 20:31:31 +02:00
if dye then
2015-06-29 19:55:56 +02:00
-- Crafting from dye and white wool
minetest.register_craft({
type = "shapeless",
output = "mcl_wool:"..name,
recipe = {"mcl_dye:"..dye, "mcl_wool:white"},
2015-06-29 19:55:56 +02:00
})
end
2017-05-15 20:32:50 +02:00
minetest.register_craft({
output = "mcl_wool:"..name.."_carpet 3",
recipe = {{"mcl_wool:"..name, "mcl_wool:"..name}},
2017-05-15 20:32:50 +02:00
})
2015-06-29 19:55:56 +02:00
end
2017-02-01 18:36:03 +01:00
minetest.register_craft({
output = "mcl_wool:white",
recipe = {
{ "mcl_mobitems:string", "mcl_mobitems:string" },
{ "mcl_mobitems:string", "mcl_mobitems:string" },
},
})
2017-01-10 06:43:07 +01:00
minetest.register_craft({
type = "fuel",
recipe = "group:wool",
burntime = 5,
})
minetest.register_craft({
type = "fuel",
recipe = "group:carpet",
-- Original value: 3.35
burntime = 3,
})