mirror of
https://github.com/minetest-mods/moreblocks.git
synced 2024-11-14 14:30:19 +01:00
6a996eb86a
* Refactor stairsplus registrations - Reorganize and remove redundant code. - Remove sunlight_propagates=true and default to paramtype="light". This causes cut blocks to have a shadow but not completely block light. - Fix several bugs (#90, #91, #92). * Readd sunlight_propagates=true for compatibility.
102 lines
2.5 KiB
Lua
102 lines
2.5 KiB
Lua
--[[
|
|
More Blocks: registrations
|
|
|
|
Copyright (c) 2011-2017 Hugo Locurcio and contributors.
|
|
Licensed under the zlib license. See LICENSE.md for more information.
|
|
--]]
|
|
|
|
-- default registrations
|
|
local default_nodes = { -- Default stairs/slabs/panels/microblocks:
|
|
"stone",
|
|
"stone_block",
|
|
"cobble",
|
|
"mossycobble",
|
|
"brick",
|
|
"sandstone",
|
|
"steelblock",
|
|
"goldblock",
|
|
"copperblock",
|
|
"bronzeblock",
|
|
"diamondblock",
|
|
"tinblock",
|
|
"desert_stone",
|
|
"desert_stone_block",
|
|
"desert_cobble",
|
|
"meselamp",
|
|
"glass",
|
|
"tree",
|
|
"wood",
|
|
"jungletree",
|
|
"junglewood",
|
|
"pine_tree",
|
|
"pine_wood",
|
|
"acacia_tree",
|
|
"acacia_wood",
|
|
"aspen_tree",
|
|
"aspen_wood",
|
|
"obsidian",
|
|
"obsidian_block",
|
|
"obsidianbrick",
|
|
"obsidian_glass",
|
|
"stonebrick",
|
|
"desert_stonebrick",
|
|
"sandstonebrick",
|
|
"silver_sandstone",
|
|
"silver_sandstone_brick",
|
|
"silver_sandstone_block",
|
|
"desert_sandstone",
|
|
"desert_sandstone_brick",
|
|
"desert_sandstone_block",
|
|
"sandstone_block",
|
|
"coral_skeleton",
|
|
}
|
|
|
|
for _, name in pairs(default_nodes) do
|
|
local mod = "default"
|
|
local nodename = mod .. ":" .. name
|
|
local ndef = table.copy(minetest.registered_nodes[nodename])
|
|
ndef.sunlight_propagates = true
|
|
|
|
-- Stone and desert_stone drop cobble and desert_cobble respectively.
|
|
if type(ndef.drop) == "string" then
|
|
ndef.drop = ndef.drop:gsub(".+:", "")
|
|
end
|
|
|
|
-- Use the primary tile for all sides of cut glasslike nodes.
|
|
if #ndef.tiles > 1 and ndef.drawtype and ndef.drawtype:find("glass") then
|
|
ndef.tiles = {ndef.tiles[1]}
|
|
end
|
|
|
|
stairsplus:register_all("moreblocks", name, nodename, ndef)
|
|
end
|
|
|
|
-- farming registrations
|
|
if minetest.get_modpath("farming") then
|
|
local farming_nodes = {"straw"}
|
|
for _, name in pairs(farming_nodes) do
|
|
local mod = "farming"
|
|
local nodename = mod .. ":" .. name
|
|
local ndef = table.copy(minetest.registered_nodes[nodename])
|
|
ndef.sunlight_propagates = true
|
|
stairsplus:register_all("moreblocks", name, nodename, ndef)
|
|
end
|
|
end
|
|
|
|
-- wool registrations
|
|
if minetest.get_modpath("wool") then
|
|
local dyes = {"white", "grey", "black", "red", "yellow", "green", "cyan",
|
|
"blue", "magenta", "orange", "violet", "brown", "pink",
|
|
"dark_grey", "dark_green"}
|
|
for _, name in pairs(dyes) do
|
|
local mod = "wool"
|
|
local nodename = mod .. ":" .. name
|
|
local ndef = table.copy(minetest.registered_nodes[nodename])
|
|
ndef.sunlight_propagates = true
|
|
|
|
-- Prevent dye+cut wool recipy from creating a full wool block.
|
|
ndef.groups.wool = nil
|
|
|
|
stairsplus:register_all(mod, name, nodename, ndef)
|
|
end
|
|
end
|