bakedclay/init.lua

260 lines
5.9 KiB
Lua
Raw Permalink Normal View History

2023-09-03 12:07:28 +02:00
-- translation support
local S = minetest.get_translator("bakedclay")
2016-01-10 18:56:39 +01:00
-- list of clay colours
2023-09-03 12:07:28 +02:00
2015-08-28 21:27:06 +02:00
local clay = {
2023-09-03 12:07:28 +02:00
{"natural", S("Natural")},
{"white", S("White")},
{"grey", S("Grey")},
{"black", S("Black")},
{"red", S("Red")},
{"yellow", S("Yellow")},
{"green", S("Green")},
{"cyan", S("Cyan")},
{"blue", S("Blue")},
{"magenta", S("Magenta")},
{"orange", S("Orange")},
{"violet", S("Violet")},
{"brown", S("Brown")},
{"pink", S("Pink")},
{"dark_grey", S("Dark Grey")},
{"dark_green", S("Dark Green")}
2014-11-09 16:21:00 +01:00
}
-- check mod support
2023-09-03 12:07:28 +02:00
2019-09-10 10:16:04 +02:00
local techcnc_mod = minetest.get_modpath("technic_cnc")
2018-07-02 17:58:48 +02:00
local stairs_mod = minetest.get_modpath("stairs")
local stairsplus_mod = minetest.get_modpath("moreblocks")
and minetest.global_exists("stairsplus")
local stairsplus_compat = minetest.settings:get_bool("stairsplus_clay_compatibility") ~= false
2018-07-02 17:58:48 +02:00
-- scroll through colours
2023-09-03 12:07:28 +02:00
for _, clay in pairs(clay) do
2015-04-01 10:06:11 +02:00
-- register node
2023-09-03 12:07:28 +02:00
minetest.register_node("bakedclay:" .. clay[1], {
2023-09-03 12:07:28 +02:00
description = clay[2] .. " " .. S("Baked Clay"),
tiles = {"baked_clay_" .. clay[1] ..".png"},
2016-01-10 18:56:39 +01:00
groups = {cracky = 3, bakedclay = 1},
2024-03-04 09:15:19 +01:00
sounds = default.node_sound_stone_defaults(),
is_ground_content = false
2014-11-09 16:21:00 +01:00
})
2015-04-01 10:06:11 +02:00
-- register craft recipe
2023-09-03 12:07:28 +02:00
2019-07-23 19:27:03 +02:00
if clay[1] ~= "natural" then
2021-07-05 11:20:29 +02:00
2019-07-23 19:27:03 +02:00
minetest.register_craft({
output = "bakedclay:" .. clay[1] .. " 8",
recipe = {
{"group:bakedclay", "group:bakedclay", "group:bakedclay"},
{"group:bakedclay", "dye:" .. clay[1], "group:bakedclay"},
{"group:bakedclay", "group:bakedclay", "group:bakedclay"}
2021-07-05 11:20:29 +02:00
}
2019-07-23 19:27:03 +02:00
})
end
2015-04-01 10:06:11 +02:00
2021-07-05 11:20:29 +02:00
-- stairs plus
2023-09-03 12:07:28 +02:00
2018-07-02 17:58:48 +02:00
if stairsplus_mod then
2021-07-05 11:20:29 +02:00
stairsplus:register_all("bakedclay", "baked_clay_" .. clay[1],
"bakedclay:" .. clay[1], {
2023-09-03 12:07:28 +02:00
description = clay[2] .. " " .. S("Baked Clay"),
tiles = {"baked_clay_" .. clay[1] .. ".png"},
groups = {cracky = 3},
2021-07-05 11:20:29 +02:00
sounds = default.node_sound_stone_defaults()
})
if stairsplus_compat then
stairsplus:register_alias_all("bakedclay", clay[1],
"bakedclay", "baked_clay_" .. clay[1])
2021-07-05 11:20:29 +02:00
minetest.register_alias("stairs:slab_bakedclay_".. clay[1],
"bakedclay:slab_baked_clay_" .. clay[1])
2017-08-12 13:33:16 +02:00
minetest.register_alias("stairs:stair_bakedclay_".. clay[1],
"bakedclay:stair_baked_clay_" .. clay[1])
end
2021-07-05 11:20:29 +02:00
-- stairs redo
2023-09-03 12:07:28 +02:00
2018-07-02 17:58:48 +02:00
elseif stairs_mod and stairs.mod then
stairs.register_all("bakedclay_" .. clay[1], "bakedclay:" .. clay[1],
{cracky = 3},
{"baked_clay_" .. clay[1] .. ".png"},
2023-09-03 12:07:28 +02:00
clay[2] .. " " .. S("Baked Clay"),
2018-07-02 17:58:48 +02:00
default.node_sound_stone_defaults())
2021-07-05 11:20:29 +02:00
-- default stairs
2023-09-03 12:07:28 +02:00
2018-07-02 17:58:48 +02:00
elseif stairs_mod then
stairs.register_stair_and_slab("bakedclay_".. clay[1], "bakedclay:".. clay[1],
{cracky = 3},
{"baked_clay_" .. clay[1] .. ".png"},
2023-09-03 12:07:28 +02:00
clay[2] .. " " .. S("Baked Clay Stair"),
clay[2] .. " " .. S("Baked Clay Slab"),
default.node_sound_stone_defaults())
2015-08-28 21:27:06 +02:00
end
2019-09-10 10:16:04 +02:00
-- register bakedclay for use in technic_cnc mod after all mods loaded
2023-09-03 12:07:28 +02:00
2019-09-10 10:16:04 +02:00
if techcnc_mod then
2023-09-03 12:07:28 +02:00
minetest.register_on_mods_loaded(function()
technic_cnc.register_all("bakedclay:" .. clay[1],
{cracky = 3, not_in_creative_inventory = 1},
{"baked_clay_" .. clay[1] .. ".png"},
clay[2] .. " Baked Clay")
end)
2019-09-10 10:16:04 +02:00
end
2014-11-09 16:21:00 +01:00
end
-- Terracotta blocks
2023-09-03 12:07:28 +02:00
2021-07-03 15:58:36 +02:00
for _, clay in pairs(clay) do
if clay[1] ~= "natural" then
local texture = "baked_clay_terracotta_" .. clay[1] ..".png"
minetest.register_node("bakedclay:terracotta_" .. clay[1], {
2023-09-03 12:07:28 +02:00
description = clay[2] .. " " .. S("Glazed Terracotta"),
2021-07-03 15:58:36 +02:00
tiles = {
texture .. "",
texture .. "",
texture .. "^[transformR180",
texture .. "",
texture .. "^[transformR270",
texture .. "^[transformR90",
},
paramtype2 = "facedir",
groups = {cracky = 3, terracotta = 1},
sounds = default.node_sound_stone_defaults(),
2024-03-04 09:15:19 +01:00
is_ground_content = false,
2021-07-03 15:58:36 +02:00
on_place = minetest.rotate_node
})
minetest.register_craft({
type = "cooking",
output = "bakedclay:terracotta_" .. clay[1],
recipe = "bakedclay:" .. clay[1]
})
end
end
minetest.register_alias("bakedclay:terracotta_light_blue", "bakedclay:terracotta_cyan")
2021-07-05 11:20:29 +02:00
2023-09-03 12:07:28 +02:00
-- cook clay block into natural baked clay
2016-06-05 11:43:01 +02:00
minetest.register_craft({
type = "cooking",
output = "bakedclay:natural",
recipe = "default:clay"
2016-06-05 11:43:01 +02:00
})
2015-04-01 10:06:11 +02:00
-- register a few extra dye colour options
2023-09-03 12:07:28 +02:00
2014-11-09 16:21:00 +01:00
minetest.register_craft( {
2015-04-01 10:06:11 +02:00
type = "shapeless",
output = "dye:green 4",
2016-10-09 21:06:24 +02:00
recipe = {"default:cactus"}
2014-11-09 16:21:00 +01:00
})
2016-06-05 11:43:01 +02:00
minetest.register_craft( {
type = "shapeless",
output = "dye:brown 4",
2016-10-09 21:06:24 +02:00
recipe = {"default:dry_shrub"}
2016-06-05 11:43:01 +02:00
})
2016-08-19 20:18:28 +02:00
2021-07-05 11:20:29 +02:00
-- only add light grey recipe if unifieddye mod isnt present (conflict)
2023-09-03 12:07:28 +02:00
2021-07-05 11:20:29 +02:00
if not minetest.get_modpath("unifieddyes") then
minetest.register_craft( {
type = "shapeless",
output = "dye:dark_grey 3",
recipe = {"dye:black", "dye:black", "dye:white"}
})
2021-07-05 11:20:29 +02:00
minetest.register_craft( {
type = "shapeless",
output = "dye:grey 3",
recipe = {"dye:black", "dye:white", "dye:white"}
})
end
-- 2x2 red baked clay makes 16x clay brick
2023-09-03 12:07:28 +02:00
minetest.register_craft( {
output = "default:clay_brick 16",
recipe = {
{"bakedclay:red", "bakedclay:red"},
{"bakedclay:red", "bakedclay:red"}
}
})
-- colored clay compatibility
2023-09-03 12:07:28 +02:00
if minetest.settings:get_bool("colored_clay_compatibility") == true then
local cc = {
{"black", "black"},
{"blue", "blue"},
{"bright", "natural"},
{"brown", "brown"},
{"cyan", "cyan"},
{"dark_green", "dark_green"},
{"dark_grey", "dark_grey"},
{"green", "green"},
{"grey", "grey"},
{"hardened", "natural"},
{"magenta", "magenta"},
{"orange", "orange"},
{"pink", "pink"},
{"red", "red"},
{"violet", "violet"},
{"white", "white"},
{"yellow", "yellow"}
}
for n = 1, #cc do
local nod1 = "colored_clay:" .. cc[n][1]
local nod2 = "bakedclay:" .. cc[n][2]
minetest.register_alias(nod1, nod2)
if stairsplus_mod then
stairsplus:register_alias_all("colored_clay", cc[n][1], "bakedclay", cc[n][2])
end
end
end
-- get mod path
2023-09-03 12:07:28 +02:00
local path = minetest.get_modpath("bakedclay")
-- add new flowers
2023-09-03 12:07:28 +02:00
dofile(path .. "/flowers.lua")
-- add lucky blocks if mod present
2023-09-03 12:07:28 +02:00
if minetest.get_modpath("lucky_block") then
dofile(path .. "/lucky_block.lua")
end
2016-08-19 20:18:28 +02:00
print ("[MOD] Baked Clay loaded")