removed boost_cart and carbone_mobs -- too many crashes
updated blox, homedecor, plantlifed, cottages, farming_redo, framedglass, gloopblocks, mesecons, moreblocks, moretrees, pipeworks, player_textures, replacer, signs_lib, stained_glass, technic, travelnet, unified_inventory, unifieddyes, and worldedit.
@@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Added
|
||||
|
||||
- Listring add for circular saw.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Wool Stairs+ nodes can no longer be used in crafting.
|
||||
- The circular saw can no longer replace items from the player's inventory
|
||||
when it is full.
|
||||
|
||||
## [1.1.0] - 2017-10-04
|
||||
|
||||
### Added
|
||||
|
@@ -19,6 +19,7 @@ minetest.register_alias("moreblocks:stone_bricks", "default:stonebrick")
|
||||
minetest.register_alias("moreblocks:stonebrick", "default:stonebrick")
|
||||
minetest.register_alias("moreblocks:junglewood", "default:junglewood")
|
||||
minetest.register_alias("moreblocks:jungle_wood", "default:junglewood")
|
||||
minetest.register_alias("moreblocks:fence_junglewood", "default:fence_junglewood")
|
||||
minetest.register_alias("moreblocks:fence_jungle_wood", "default:fence_junglewood")
|
||||
minetest.register_alias("moreblocks:jungle_stick", "default:stick")
|
||||
|
||||
@@ -31,13 +32,13 @@ minetest.register_alias("moreblocks:horizontaljungletree", "moreblocks:horizonta
|
||||
minetest.register_alias("moreblocks:stonesquare", "moreblocks:stone_tile")
|
||||
minetest.register_alias("moreblocks:circlestonebrick", "moreblocks:circle_stone_bricks")
|
||||
minetest.register_alias("moreblocks:ironstonebrick", "moreblocks:iron_stone_bricks")
|
||||
minetest.register_alias("moreblocks:fence_junglewood", "moreblocks:fence_jungle_wood")
|
||||
minetest.register_alias("moreblocks:coalstone", "moreblocks:coal_stone")
|
||||
minetest.register_alias("moreblocks:ironstone", "moreblocks:iron_stone")
|
||||
minetest.register_alias("moreblocks:woodtile", "moreblocks:wood_tile")
|
||||
minetest.register_alias("moreblocks:woodtile_full", "moreblocks:wood_tile_full")
|
||||
minetest.register_alias("moreblocks:woodtile_centered", "moreblocks:wood_tile_centered")
|
||||
minetest.register_alias("moreblocks:woodtile_up", "moreblocks:wood_tile_up")
|
||||
minetest.register_alias("moreblocks:woodtile_up", "moreblocks:wood_tile_offset")
|
||||
minetest.register_alias("moreblocks:wood_tile_up", "moreblocks:wood_tile_offset")
|
||||
minetest.register_alias("moreblocks:woodtile_down", "moreblocks:wood_tile_down")
|
||||
minetest.register_alias("moreblocks:woodtile_left", "moreblocks:wood_tile_left")
|
||||
minetest.register_alias("moreblocks:woodtile_right", "moreblocks:wood_tile_right")
|
||||
@@ -56,6 +57,8 @@ minetest.register_alias("moreblocks:emptybookshelf", "moreblocks:empty_bookshelf
|
||||
minetest.register_alias("moreblocks:junglestick", "moreblocks:jungle_stick")
|
||||
minetest.register_alias("moreblocks:splitstonesquare","moreblocks:split_stone_tile")
|
||||
minetest.register_alias("moreblocks:allfacestree","moreblocks:all_faces_tree")
|
||||
minetest.register_alias("moreblocks:empty_bookshelf","moreblocks:empty_shelf")
|
||||
minetest.register_alias("moreblocks:split_stone_tile_alt","moreblocks:checker_stone_tile")
|
||||
|
||||
-- ABM for horizontal trees (fix facedir):
|
||||
local horizontal_tree_convert_facedir = {7, 12, 9, 18}
|
||||
@@ -77,3 +80,26 @@ minetest.register_abm({
|
||||
})
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_lbm({
|
||||
name = "moreblocks:reduce_wood_tile_redundancy",
|
||||
nodenames = {
|
||||
"moreblocks:wood_tile_left",
|
||||
"moreblocks:wood_tile_down",
|
||||
"moreblocks:wood_tile_right",
|
||||
"moreblocks:wood_tile_flipped",
|
||||
},
|
||||
action = function(pos, node)
|
||||
if node.name:find("left") then
|
||||
minetest.set_node(pos, {name = "moreblocks:wood_tile_offset", param2=1})
|
||||
elseif node.name:find("down") then
|
||||
minetest.set_node(pos, {name = "moreblocks:wood_tile_offset", param2=2})
|
||||
elseif node.name:find("right") then
|
||||
minetest.set_node(pos, {name = "moreblocks:wood_tile_offset", param2=3})
|
||||
else -- wood_tile_flipped
|
||||
minetest.set_node(pos, {name = "moreblocks:wood_tile", param2=1})
|
||||
end
|
||||
minetest.log('action', "LBM replaced " .. node.name ..
|
||||
" at " .. minetest.pos_to_string(pos))
|
||||
end,
|
||||
})
|
||||
|
@@ -181,7 +181,7 @@ function circular_saw:update_inventory(pos, amount)
|
||||
|
||||
-- 0-7 microblocks may remain left-over:
|
||||
inv:set_list("micro", {
|
||||
modname .. ":micro_" .. material .. "_bottom " .. (amount % 8)
|
||||
modname .. ":micro_" .. material .. " " .. (amount % 8)
|
||||
})
|
||||
-- Display:
|
||||
inv:set_list("output",
|
||||
@@ -299,6 +299,17 @@ function circular_saw.on_metadata_inventory_put(
|
||||
end
|
||||
end
|
||||
|
||||
function circular_saw.allow_metadata_inventory_take(pos, listname, index, stack, player)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
local input_stack = inv:get_stack(listname, index)
|
||||
local player_inv = player:get_inventory()
|
||||
if not player_inv:room_for_item("main", input_stack) then
|
||||
return 0
|
||||
else return stack:get_count()
|
||||
end
|
||||
end
|
||||
|
||||
function circular_saw.on_metadata_inventory_take(
|
||||
pos, listname, index, stack, player)
|
||||
|
||||
@@ -338,17 +349,27 @@ end
|
||||
function circular_saw.on_construct(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local fancy_inv = default.gui_bg..default.gui_bg_img..default.gui_slots
|
||||
meta:set_string("formspec", "size[11,10]"..fancy_inv..
|
||||
"label[0,0;" ..S("Input\nmaterial").. "]" ..
|
||||
"list[current_name;input;1.5,0;1,1;]" ..
|
||||
"label[0,1;" ..S("Left-over").. "]" ..
|
||||
"list[current_name;micro;1.5,1;1,1;]" ..
|
||||
"label[0,2;" ..S("Recycle\noutput").. "]" ..
|
||||
"list[current_name;recycle;1.5,2;1,1;]" ..
|
||||
"field[0.3,3.5;1,1;max_offered;" ..S("Max").. ":;${max_offered}]" ..
|
||||
"button[1,3.2;1,1;Set;" ..S("Set").. "]" ..
|
||||
"list[current_name;output;2.8,0;8,6;]" ..
|
||||
"list[current_player;main;1.5,6.25;8,4;]")
|
||||
meta:set_string(
|
||||
"formspec", "size[11,10]"..fancy_inv..
|
||||
"label[0,0;" ..S("Input\nmaterial").. "]" ..
|
||||
"list[current_name;input;1.5,0;1,1;]" ..
|
||||
"label[0,1;" ..S("Left-over").. "]" ..
|
||||
"list[current_name;micro;1.5,1;1,1;]" ..
|
||||
"label[0,2;" ..S("Recycle\noutput").. "]" ..
|
||||
"list[current_name;recycle;1.5,2;1,1;]" ..
|
||||
"field[0.3,3.5;1,1;max_offered;" ..S("Max").. ":;${max_offered}]" ..
|
||||
"button[1,3.2;1,1;Set;" ..S("Set").. "]" ..
|
||||
"list[current_name;output;2.8,0;8,6;]" ..
|
||||
"list[current_player;main;1.5,6.25;8,4;]" ..
|
||||
"listring[current_name;output]" ..
|
||||
"listring[current_player;main]" ..
|
||||
"listring[current_name;input]" ..
|
||||
"listring[current_player;main]" ..
|
||||
"listring[current_name;micro]" ..
|
||||
"listring[current_player;main]" ..
|
||||
"listring[current_name;recycle]" ..
|
||||
"listring[current_player;main]"
|
||||
)
|
||||
|
||||
meta:set_int("anz", 0) -- No microblocks inside yet.
|
||||
meta:set_string("max_offered", 99) -- How many items of this kind are offered by default?
|
||||
@@ -417,6 +438,7 @@ minetest.register_node("moreblocks:circular_saw", {
|
||||
allow_metadata_inventory_move = circular_saw.allow_metadata_inventory_move,
|
||||
-- Only input- and recycle-slot are intended as input slots:
|
||||
allow_metadata_inventory_put = circular_saw.allow_metadata_inventory_put,
|
||||
allow_metadata_inventory_take = circular_saw.allow_metadata_inventory_take,
|
||||
-- Taking is allowed from all slots (even the internal microblock slot). Moving is forbidden.
|
||||
-- Putting something in is slightly more complicated than taking anything because we have to make sure it is of a suitable material:
|
||||
on_metadata_inventory_put = circular_saw.on_metadata_inventory_put,
|
||||
|
@@ -12,12 +12,7 @@ minetest.register_craft({
|
||||
|
||||
minetest.register_craft({
|
||||
output = "default:stick",
|
||||
recipe = {{"default:sapling"},}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "default:stick",
|
||||
recipe = {{"default:junglesapling"},}
|
||||
recipe = {{"group:sapling"},}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
@@ -34,44 +29,33 @@ minetest.register_craft({
|
||||
recipe = {"default:junglegrass", "default:dirt"},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "default:dirt_with_grass",
|
||||
type = "shapeless",
|
||||
recipe = {"default:mese", "default:dirt"},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "default:mossycobble",
|
||||
type = "shapeless",
|
||||
recipe = {"default:junglegrass", "default:cobble"},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "default:mossycobble",
|
||||
type = "shapeless",
|
||||
recipe = {"default:mese_crystal_fragment", "default:cobble"},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "moreblocks:wood_tile 9",
|
||||
recipe = {
|
||||
{"default:wood", "default:wood", "default:wood"},
|
||||
{"default:wood", "default:wood", "default:wood"},
|
||||
{"default:wood", "default:wood", "default:wood"},
|
||||
{"group:wood", "group:wood", "group:wood"},
|
||||
{"group:wood", "group:wood", "group:wood"},
|
||||
{"group:wood", "group:wood", "group:wood"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "moreblocks:wood_tile_flipped",
|
||||
recipe = {{"moreblocks:wood_tile"},}
|
||||
type = "shapeless",
|
||||
output = "moreblocks:wood_tile",
|
||||
recipe = {"moreblocks:wood_tile_flipped"}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "moreblocks:wood_tile_center 9",
|
||||
recipe = {
|
||||
{"default:wood", "default:wood", "default:wood"},
|
||||
{"default:wood", "moreblocks:wood_tile", "default:wood"},
|
||||
{"default:wood", "default:wood", "default:wood"},
|
||||
{"group:wood", "group:wood", "group:wood"},
|
||||
{"group:wood", "moreblocks:wood_tile", "group:wood"},
|
||||
{"group:wood", "group:wood", "group:wood"},
|
||||
}
|
||||
})
|
||||
|
||||
@@ -84,7 +68,7 @@ minetest.register_craft({
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "moreblocks:wood_tile_up",
|
||||
output = "moreblocks:wood_tile_offset",
|
||||
recipe = {
|
||||
{"default:stick"},
|
||||
{"moreblocks:wood_tile_center"},
|
||||
@@ -92,25 +76,21 @@ minetest.register_craft({
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "moreblocks:wood_tile_down",
|
||||
recipe = {
|
||||
{"moreblocks:wood_tile_center"},
|
||||
{"default:stick"},
|
||||
}
|
||||
type = "shapeless",
|
||||
output = "moreblocks:wood_tile_offset",
|
||||
recipe = {"moreblocks:wood_tile_down"}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "moreblocks:wood_tile_left",
|
||||
recipe = {
|
||||
{"default:stick", "moreblocks:wood_tile_center"},
|
||||
}
|
||||
type = "shapeless",
|
||||
output = "moreblocks:wood_tile_offset",
|
||||
recipe = {"moreblocks:wood_tile_left"}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "moreblocks:wood_tile_right",
|
||||
recipe = {
|
||||
{"moreblocks:wood_tile_center", "default:stick"},
|
||||
}
|
||||
type = "shapeless",
|
||||
output = "moreblocks:wood_tile_offset",
|
||||
recipe = {"moreblocks:wood_tile_right"}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
@@ -140,6 +120,33 @@ minetest.register_craft({
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "moreblocks:all_faces_pine_tree 8",
|
||||
recipe = {
|
||||
{"default:pine_tree", "default:pine_tree", "default:pine_tree"},
|
||||
{"default:pine_tree", "", "default:pine_tree"},
|
||||
{"default:pine_tree", "default:pine_tree", "default:pine_tree"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "moreblocks:all_faces_acacia_tree 8",
|
||||
recipe = {
|
||||
{"default:acacia_tree", "default:acacia_tree", "default:acacia_tree"},
|
||||
{"default:acacia_tree", "", "default:acacia_tree"},
|
||||
{"default:acacia_tree", "default:acacia_tree", "default:acacia_tree"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "moreblocks:all_faces_aspen_tree 8",
|
||||
recipe = {
|
||||
{"default:aspen_tree", "default:aspen_tree", "default:aspen_tree"},
|
||||
{"default:aspen_tree", "", "default:aspen_tree"},
|
||||
{"default:aspen_tree", "default:aspen_tree", "default:aspen_tree"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "moreblocks:sweeper 4",
|
||||
recipe = {
|
||||
@@ -164,12 +171,20 @@ minetest.register_craft({
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "moreblocks:split_stone_tile_alt",
|
||||
output = "moreblocks:checker_stone_tile",
|
||||
recipe = {
|
||||
{"moreblocks:split_stone_tile"},
|
||||
}
|
||||
})
|
||||
|
||||
-- When approaching the below craft, loop back to cobblestone, which can then be used to craft stone tiles again
|
||||
minetest.register_craft({
|
||||
output = "default:cobble",
|
||||
recipe = {
|
||||
{"moreblocks:checker_stone_tile"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "moreblocks:grey_bricks 2",
|
||||
type = "shapeless",
|
||||
@@ -183,11 +198,33 @@ minetest.register_craft({
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "moreblocks:empty_bookshelf",
|
||||
output = "moreblocks:empty_shelf",
|
||||
type = "shapeless",
|
||||
recipe = {"moreblocks:sweeper", "default:bookshelf"},
|
||||
replacements = {{"default:bookshelf", "default:book 3"}},
|
||||
-- When obtaining an empty bookshelf, return the books used in it as well
|
||||
-- When obtaining an empty shelf, return the books used in it as well
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "moreblocks:empty_shelf",
|
||||
type = "shapeless",
|
||||
recipe = {"moreblocks:sweeper", "vessels:shelf"},
|
||||
replacements = {{"vessels:shelf", "vessels:glass_bottle 3"}},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "default:bookshelf",
|
||||
recipe = {"moreblocks:empty_shelf", "default:book", "default:book", "default:book"},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "moreblocks:empty_shelf",
|
||||
recipe = {
|
||||
{"group:wood", "group:wood", "group:wood"},
|
||||
{"", "", ""},
|
||||
{"group:wood", "group:wood", "group:wood"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
@@ -209,16 +246,16 @@ minetest.register_craft({
|
||||
minetest.register_craft({
|
||||
output = "moreblocks:plankstone 4",
|
||||
recipe = {
|
||||
{"default:stone", "default:wood"},
|
||||
{"default:wood", "default:stone"},
|
||||
{"group:stone", "group:wood"},
|
||||
{"group:wood", "group:stone"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "moreblocks:plankstone 4",
|
||||
recipe = {
|
||||
{"default:wood", "default:stone"},
|
||||
{"default:stone", "default:wood"},
|
||||
{"group:wood", "group:stone"},
|
||||
{"group:stone", "group:wood"},
|
||||
}
|
||||
})
|
||||
|
||||
@@ -381,12 +418,36 @@ minetest.register_craft({
|
||||
recipe = {"default:mese_crystal_fragment", "default:stone"},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "moreblocks:trap_desert_stone",
|
||||
type = "shapeless",
|
||||
recipe = {"default:mese_crystal_fragment", "default:desert_stone"},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "moreblocks:trap_glass",
|
||||
type = "shapeless",
|
||||
recipe = {"default:mese_crystal_fragment", "default:glass"},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "moreblocks:trap_obsidian_glass",
|
||||
type = "shapeless",
|
||||
recipe = {"default:mese_crystal_fragment", "default:obsidian_glass"},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "moreblocks:trap_obsidian",
|
||||
type = "shapeless",
|
||||
recipe = {"default:mese_crystal_fragment", "default:obsidian"},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "moreblocks:trap_sandstone",
|
||||
type = "shapeless",
|
||||
recipe = {"default:mese_crystal_fragment", "default:sandstone"},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "moreblocks:cactus_brick",
|
||||
type = "shapeless",
|
||||
@@ -418,6 +479,20 @@ minetest.register_craft({
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "moreblocks:dirt_compressed",
|
||||
recipe = {
|
||||
{'default:dirt', 'default:dirt', 'default:dirt'},
|
||||
{'default:dirt', 'default:dirt', 'default:dirt'},
|
||||
{'default:dirt', 'default:dirt', 'default:dirt'},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "default:dirt 9",
|
||||
recipe = {{"moreblocks:dirt_compressed"}},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "moreblocks:cobble_compressed",
|
||||
recipe = {
|
||||
@@ -435,15 +510,15 @@ minetest.register_craft({
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "cooking", output = "moreblocks:tar", recipe = "default:gravel",
|
||||
type = "cooking", output = "moreblocks:tar", recipe = "default:pine_tree",
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "moreblocks:copperpatina",
|
||||
recipe = {"bucket:bucket_water", "default:copperblock"},
|
||||
recipe = {"group:water_bucket", "default:copperblock"},
|
||||
replacements = {
|
||||
{"bucket:bucket_water", "bucket:bucket_empty"}
|
||||
{"group:water_bucket", "bucket:bucket_empty"}
|
||||
}
|
||||
})
|
||||
|
||||
|
@@ -1,4 +1,5 @@
|
||||
default
|
||||
intllib?
|
||||
farming?
|
||||
wool?
|
||||
default
|
||||
intllib?
|
||||
stairs?
|
||||
farming?
|
||||
wool?
|
||||
|
@@ -7,6 +7,7 @@ Licensed under the zlib license. See LICENSE.md for more information.
|
||||
|
||||
local S = moreblocks.intllib
|
||||
|
||||
local sound_dirt = default.node_sound_dirt_defaults()
|
||||
local sound_wood = default.node_sound_wood_defaults()
|
||||
local sound_stone = default.node_sound_stone_defaults()
|
||||
local sound_glass = default.node_sound_glass_defaults()
|
||||
@@ -21,10 +22,27 @@ local function tile_tiles(name)
|
||||
return {tex, tex, tex, tex, tex.. "^[transformR90", tex.. "^[transformR90"}
|
||||
end
|
||||
|
||||
local function wood_tile_replace(itemstack, placer, pointed_thing)
|
||||
local substack
|
||||
if itemstack:get_name() == "moreblocks:wood_tile_flipped" then
|
||||
substack = ItemStack("moreblocks:wood_tile")
|
||||
else -- right, left, and down variants
|
||||
substack = ItemStack("moreblocks:wood_tile_offset")
|
||||
end
|
||||
local _, success = minetest.item_place(substack, placer, pointed_thing)
|
||||
if success then
|
||||
itemstack:take_item()
|
||||
end
|
||||
return itemstack
|
||||
end
|
||||
|
||||
local nodes = {
|
||||
["wood_tile"] = {
|
||||
description = S("Wooden Tile"),
|
||||
groups = {snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
|
||||
groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
|
||||
is_ground_content = false,
|
||||
paramtype2 = "facedir",
|
||||
place_param2 = 0,
|
||||
tiles = {"default_wood.png^moreblocks_wood_tile.png",
|
||||
"default_wood.png^moreblocks_wood_tile.png",
|
||||
"default_wood.png^moreblocks_wood_tile.png",
|
||||
@@ -34,148 +52,179 @@ local nodes = {
|
||||
sounds = sound_wood,
|
||||
},
|
||||
["wood_tile_flipped"] = {
|
||||
description = S("Wooden Tile"),
|
||||
groups = {wood = 1, snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
|
||||
description = S("Wooden Tile (Deprecated)"),
|
||||
tiles = {"default_wood.png^moreblocks_wood_tile.png^[transformR90",
|
||||
"default_wood.png^moreblocks_wood_tile.png^[transformR90",
|
||||
"default_wood.png^moreblocks_wood_tile.png^[transformR90",
|
||||
"default_wood.png^moreblocks_wood_tile.png^[transformR90",
|
||||
"default_wood.png^moreblocks_wood_tile.png^[transformR180",
|
||||
"default_wood.png^moreblocks_wood_tile.png^[transformR180"},
|
||||
sounds = sound_wood,
|
||||
no_stairs = true,
|
||||
on_place = wood_tile_replace
|
||||
},
|
||||
["wood_tile_center"] = {
|
||||
description = S("Centered Wooden Tile"),
|
||||
groups = {wood = 1, snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
|
||||
groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
|
||||
is_ground_content = false,
|
||||
tiles = {"default_wood.png^moreblocks_wood_tile_center.png"},
|
||||
sounds = sound_wood,
|
||||
},
|
||||
["wood_tile_full"] = {
|
||||
description = S("Full Wooden Tile"),
|
||||
groups = {wood = 1, snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
|
||||
groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
|
||||
is_ground_content = false,
|
||||
tiles = tile_tiles("wood_tile_full"),
|
||||
sounds = sound_wood,
|
||||
},
|
||||
["wood_tile_up"] = {
|
||||
description = S("Upwards Wooden Tile"),
|
||||
groups = {wood = 1, snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
|
||||
tiles = {"default_wood.png^moreblocks_wood_tile_up.png"},
|
||||
["wood_tile_offset"] = {
|
||||
description = S("Offset Wooden Tile"),
|
||||
paramtype2 = "facedir",
|
||||
place_param2 = 0,
|
||||
groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
|
||||
is_ground_content = false,
|
||||
tiles = {"default_wood.png^moreblocks_wood_tile_offset.png"},
|
||||
sounds = sound_wood,
|
||||
no_stairs = true,
|
||||
},
|
||||
["wood_tile_down"] = {
|
||||
description = S("Downwards Wooden Tile"),
|
||||
groups = {wood = 1, snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
|
||||
tiles = {"default_wood.png^[transformR180^moreblocks_wood_tile_up.png^[transformR180"},
|
||||
sounds = sound_wood,
|
||||
description = S("Downwards Wooden Tile (Deprecated)"),
|
||||
tiles = {"default_wood.png^[transformR180^moreblocks_wood_tile_offset.png^[transformR180"},
|
||||
no_stairs = true,
|
||||
on_place = wood_tile_replace
|
||||
},
|
||||
["wood_tile_left"] = {
|
||||
description = S("Leftwards Wooden Tile"),
|
||||
groups = {wood = 1, snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
|
||||
tiles = {"default_wood.png^[transformR270^moreblocks_wood_tile_up.png^[transformR270"},
|
||||
sounds = sound_wood,
|
||||
description = S("Leftwards Wooden Tile (Deprecated)"),
|
||||
tiles = {"default_wood.png^[transformR270^moreblocks_wood_tile_offset.png^[transformR270"},
|
||||
no_stairs = true,
|
||||
on_place = wood_tile_replace
|
||||
},
|
||||
["wood_tile_right"] = {
|
||||
description = S("Rightwards Wooden Tile"),
|
||||
groups = {wood = 1, snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
|
||||
tiles = {"default_wood.png^[transformR90^moreblocks_wood_tile_up.png^[transformR90"},
|
||||
sounds = sound_wood,
|
||||
description = S("Rightwards Wooden Tile (Deprecated)"),
|
||||
tiles = {"default_wood.png^[transformR90^moreblocks_wood_tile_offset.png^[transformR90"},
|
||||
no_stairs = true,
|
||||
on_place = wood_tile_replace
|
||||
},
|
||||
["circle_stone_bricks"] = {
|
||||
description = S("Circle Stone Bricks"),
|
||||
groups = {cracky = 3},
|
||||
groups = {stone = 1, cracky = 3},
|
||||
is_ground_content = false,
|
||||
sounds = sound_stone,
|
||||
},
|
||||
["grey_bricks"] = {
|
||||
description = S("Stone Bricks"),
|
||||
paramtype2 = "facedir",
|
||||
place_param2 = 0,
|
||||
groups = {cracky = 3},
|
||||
is_ground_content = false,
|
||||
sounds = sound_stone,
|
||||
},
|
||||
["coal_stone_bricks"] = {
|
||||
description = S("Coal Stone Bricks"),
|
||||
groups = {cracky = 3},
|
||||
paramtype2 = "facedir",
|
||||
place_param2 = 0,
|
||||
groups = {stone = 1, cracky = 3},
|
||||
is_ground_content = false,
|
||||
sounds = sound_stone,
|
||||
},
|
||||
["iron_stone_bricks"] = {
|
||||
description = S("Iron Stone Bricks"),
|
||||
groups = {cracky = 3},
|
||||
paramtype2 = "facedir",
|
||||
place_param2 = 0,
|
||||
groups = {stone = 1, cracky = 3},
|
||||
is_ground_content = false,
|
||||
sounds = sound_stone,
|
||||
},
|
||||
["stone_tile"] = {
|
||||
description = S("Stone Tile"),
|
||||
groups = {cracky = 3},
|
||||
groups = {stone = 1, cracky = 3},
|
||||
is_ground_content = false,
|
||||
sounds = sound_stone,
|
||||
},
|
||||
["split_stone_tile"] = {
|
||||
description = S("Split Stone Tile"),
|
||||
paramtype2 = "facedir",
|
||||
place_param2 = 0,
|
||||
tiles = {"moreblocks_split_stone_tile_top.png",
|
||||
"moreblocks_split_stone_tile.png"},
|
||||
groups = {cracky = 3},
|
||||
groups = {stone = 1, cracky = 3},
|
||||
is_ground_content = false,
|
||||
sounds = sound_stone,
|
||||
},
|
||||
["split_stone_tile_alt"] = {
|
||||
description = S("Checkered Stone Tile"),
|
||||
groups = {cracky = 3},
|
||||
["checker_stone_tile"] = {
|
||||
description = S("Checker Stone Tile"),
|
||||
groups = {stone = 1, cracky = 3},
|
||||
is_ground_content = false,
|
||||
sounds = sound_stone,
|
||||
},
|
||||
["tar"] = {
|
||||
description = S("Tar"),
|
||||
groups = {cracky = 2, tar_block = 1},
|
||||
groups = {cracky=2, tar_block=1},
|
||||
is_ground_content = false,
|
||||
sounds = sound_stone,
|
||||
},
|
||||
["dirt_compressed"] = {
|
||||
description = S("Compressed Dirt"),
|
||||
groups = {crumbly=2},
|
||||
is_ground_content = false,
|
||||
sounds = sound_dirt,
|
||||
},
|
||||
["cobble_compressed"] = {
|
||||
description = S("Compressed Cobblestone"),
|
||||
groups = {cracky = 1},
|
||||
is_ground_content = false,
|
||||
sounds = sound_stone,
|
||||
},
|
||||
["plankstone"] = {
|
||||
description = S("Plankstone"),
|
||||
paramtype2 = "facedir",
|
||||
place_param2 = 0,
|
||||
groups = {cracky = 3},
|
||||
is_ground_content = false,
|
||||
tiles = tile_tiles("plankstone"),
|
||||
sounds = sound_stone,
|
||||
},
|
||||
["iron_glass"] = {
|
||||
description = S("Iron Glass"),
|
||||
drawtype = "glasslike_framed_optional",
|
||||
--tiles = {"moreblocks_iron_glass.png", "moreblocks_iron_glass_detail.png"},
|
||||
tiles = {"moreblocks_iron_glass.png"},
|
||||
tiles = {"default_glass.png^[colorize:#DEDEDE", "default_glass_detail.png^[colorize:#DEDEDE"},
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
groups = {snappy = 2, cracky = 3, oddly_breakable_by_hand = 3},
|
||||
is_ground_content = false,
|
||||
groups = {cracky = 3, oddly_breakable_by_hand = 3},
|
||||
sounds = sound_glass,
|
||||
},
|
||||
["coal_glass"] = {
|
||||
description = S("Coal Glass"),
|
||||
drawtype = "glasslike_framed_optional",
|
||||
--tiles = {"moreblocks_coal_glass.png", "moreblocks_coal_glass_detail.png"},
|
||||
tiles = {"moreblocks_coal_glass.png"},
|
||||
tiles = {"default_glass.png^[colorize:#828282", "default_glass_detail.png^[colorize:#828282"},
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
groups = {snappy = 2, cracky = 3, oddly_breakable_by_hand = 3},
|
||||
is_ground_content = false,
|
||||
groups = {cracky = 3, oddly_breakable_by_hand = 3},
|
||||
sounds = sound_glass,
|
||||
},
|
||||
["clean_glass"] = {
|
||||
description = S("Clean Glass"),
|
||||
drawtype = "glasslike_framed_optional",
|
||||
--tiles = {"moreblocks_clean_glass.png", "moreblocks_clean_glass_detail.png"},
|
||||
tiles = {"moreblocks_clean_glass.png"},
|
||||
tiles = {"moreblocks_clean_glass.png", "moreblocks_clean_glass_detail.png"},
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
groups = {snappy = 2, cracky = 3, oddly_breakable_by_hand = 3},
|
||||
is_ground_content = false,
|
||||
groups = {cracky = 3, oddly_breakable_by_hand = 3},
|
||||
sounds = sound_glass,
|
||||
},
|
||||
["cactus_brick"] = {
|
||||
description = S("Cactus Brick"),
|
||||
paramtype2 = "facedir",
|
||||
place_param2 = 0,
|
||||
groups = {cracky = 3},
|
||||
is_ground_content = false,
|
||||
sounds = sound_stone,
|
||||
},
|
||||
["cactus_checker"] = {
|
||||
description = S("Cactus Checker"),
|
||||
groups = {cracky = 3},
|
||||
groups = {stone = 1, cracky = 3},
|
||||
is_ground_content = false,
|
||||
tiles = {"default_stone.png^moreblocks_cactus_checker.png",
|
||||
"default_stone.png^moreblocks_cactus_checker.png",
|
||||
"default_stone.png^moreblocks_cactus_checker.png",
|
||||
@@ -184,23 +233,27 @@ local nodes = {
|
||||
"default_stone.png^moreblocks_cactus_checker.png^[transformR90"},
|
||||
sounds = sound_stone,
|
||||
},
|
||||
["empty_bookshelf"] = {
|
||||
description = S("Empty Bookshelf"),
|
||||
tiles = {"default_wood.png", "default_wood.png",
|
||||
"moreblocks_empty_bookshelf.png"},
|
||||
groups = {snappy = 2, choppy = 3, oddly_breakable_by_hand = 2, flammable = 3},
|
||||
["empty_shelf"] = {
|
||||
description = S("Empty Shelf"),
|
||||
paramtype2 = "facedir",
|
||||
tiles = {"default_wood.png", "default_wood.png", "default_wood.png",
|
||||
"default_wood.png", "moreblocks_empty_shelf.png", "moreblocks_empty_shelf.png"},
|
||||
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3},
|
||||
is_ground_content = false,
|
||||
sounds = sound_wood,
|
||||
furnace_burntime = 15,
|
||||
no_stairs = true,
|
||||
},
|
||||
["coal_stone"] = {
|
||||
description = S("Coal Stone"),
|
||||
groups = {cracky = 3},
|
||||
groups = {stone = 1, cracky = 3},
|
||||
is_ground_content = false,
|
||||
sounds = sound_stone,
|
||||
},
|
||||
["iron_stone"] = {
|
||||
description = S("Iron Stone"),
|
||||
groups = {cracky = 3},
|
||||
groups = {stone = 1, cracky = 3},
|
||||
is_ground_content = false,
|
||||
sounds = sound_stone,
|
||||
},
|
||||
["coal_checker"] = {
|
||||
@@ -211,7 +264,8 @@ local nodes = {
|
||||
"default_stone.png^moreblocks_coal_checker.png",
|
||||
"default_stone.png^moreblocks_coal_checker.png^[transformR90",
|
||||
"default_stone.png^moreblocks_coal_checker.png^[transformR90"},
|
||||
groups = {cracky = 3},
|
||||
groups = {stone = 1, cracky = 3},
|
||||
is_ground_content = false,
|
||||
sounds = sound_stone,
|
||||
},
|
||||
["iron_checker"] = {
|
||||
@@ -222,87 +276,158 @@ local nodes = {
|
||||
"default_stone.png^moreblocks_iron_checker.png",
|
||||
"default_stone.png^moreblocks_iron_checker.png^[transformR90",
|
||||
"default_stone.png^moreblocks_iron_checker.png^[transformR90"},
|
||||
groups = {cracky = 3},
|
||||
groups = {stone = 1, cracky = 3},
|
||||
is_ground_content = false,
|
||||
sounds = sound_stone,
|
||||
},
|
||||
["trap_stone"] = {
|
||||
description = S("Trap Stone"),
|
||||
drawtype = "glasslike_framed",
|
||||
tiles = {"default_stone.png^moreblocks_trap_box.png"},
|
||||
walkable = false,
|
||||
groups = {cracky = 3},
|
||||
paramtype = "light",
|
||||
is_ground_content = false,
|
||||
sounds = sound_stone,
|
||||
no_stairs = true,
|
||||
},
|
||||
["trap_desert_stone"] = {
|
||||
description = S("Trap Desert Stone"),
|
||||
drawtype = "glasslike_framed",
|
||||
tiles = {"default_desert_stone.png^moreblocks_trap_box.png"},
|
||||
walkable = false,
|
||||
groups = {cracky = 3},
|
||||
paramtype = "light",
|
||||
is_ground_content = false,
|
||||
sounds = sound_stone,
|
||||
no_stairs = true,
|
||||
},
|
||||
["trap_glass"] = {
|
||||
description = S("Trap Glass"),
|
||||
drawtype = "glasslike_framed_optional",
|
||||
--tiles = {"moreblocks_trap_glass.png", "default_glass_detail.png"},
|
||||
tiles = {"moreblocks_trap_glass.png"},
|
||||
tiles = {"default_glass.png^moreblocks_trap_box_glass.png", "default_glass_detail.png"},
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
groups = {snappy = 2, cracky = 3, oddly_breakable_by_hand = 3},
|
||||
groups = {cracky = 3, oddly_breakable_by_hand = 3},
|
||||
sounds = sound_glass,
|
||||
no_stairs = true,
|
||||
},
|
||||
["trap_obsidian_glass"] = {
|
||||
description = S("Trap Obsidian Glass"),
|
||||
drawtype = "glasslike_framed_optional",
|
||||
tiles = {"default_obsidian_glass.png^moreblocks_trap_box_glass.png", "default_obsidian_glass_detail.png"},
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
groups = {cracky = 3, oddly_breakable_by_hand = 3},
|
||||
sounds = sound_glass,
|
||||
no_stairs = true,
|
||||
},
|
||||
["trap_obsidian"] = {
|
||||
description = S("Trap Obsidian"),
|
||||
drawtype = "glasslike_framed",
|
||||
tiles = {"default_obsidian.png^moreblocks_trap_box.png"},
|
||||
walkable = false,
|
||||
groups = {cracky = 1, level = 2},
|
||||
paramtype = "light",
|
||||
is_ground_content = false,
|
||||
sounds = sound_stone,
|
||||
no_stairs = true,
|
||||
},
|
||||
["trap_sandstone"] = {
|
||||
description = S("Trap Sandstone"),
|
||||
drawtype = "glasslike_framed",
|
||||
tiles = {"default_sandstone.png^moreblocks_trap_box.png"},
|
||||
walkable = false,
|
||||
groups = {crumbly = 1, cracky = 3},
|
||||
paramtype = "light",
|
||||
is_ground_content = false,
|
||||
sounds = sound_stone,
|
||||
no_stairs = true,
|
||||
},
|
||||
["all_faces_tree"] = {
|
||||
description = S("All-faces Tree"),
|
||||
tiles = {"default_tree_top.png"},
|
||||
groups = {tree = 1,snappy = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
|
||||
sounds = sound_wood,
|
||||
furnace_burntime = 30,
|
||||
},
|
||||
["all_faces_jungle_tree"] = {
|
||||
description = S("All-faces Jungle Tree"),
|
||||
tiles = {"default_jungletree_top.png"},
|
||||
groups = {tree = 1,snappy = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
|
||||
sounds = sound_wood,
|
||||
furnace_burntime = 30,
|
||||
furnace_burntime = 38,
|
||||
},
|
||||
["all_faces_pine_tree"] = {
|
||||
description = S("All-faces Pine Tree"),
|
||||
tiles = {"default_pine_tree_top.png"},
|
||||
groups = {tree = 1, choppy = 3, oddly_breakable_by_hand = 1, flammable = 3},
|
||||
sounds = sound_wood,
|
||||
furnace_burntime = 26,
|
||||
},
|
||||
["all_faces_acacia_tree"] = {
|
||||
description = S("All-faces Acacia Tree"),
|
||||
tiles = {"default_acacia_tree_top.png"},
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
|
||||
sounds = sound_wood,
|
||||
furnace_burntime = 34,
|
||||
},
|
||||
["all_faces_aspen_tree"] = {
|
||||
description = S("All-faces Aspen Tree"),
|
||||
tiles = {"default_aspen_tree_top.png"},
|
||||
groups = {tree = 1, choppy = 3, oddly_breakable_by_hand = 1, flammable = 3},
|
||||
sounds = sound_wood,
|
||||
furnace_burntime = 22,
|
||||
},
|
||||
["glow_glass"] = {
|
||||
description = S("Glow Glass"),
|
||||
drawtype = "glasslike_framed_optional",
|
||||
--tiles = {"moreblocks_glow_glass.png", "moreblocks_glow_glass_detail.png"},
|
||||
tiles = {"moreblocks_glow_glass.png"},
|
||||
tiles = {"default_glass.png^[colorize:#E9CD61", "default_glass_detail.png^[colorize:#E9CD61"},
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
is_ground_content = false,
|
||||
light_source = 11,
|
||||
groups = {snappy = 2, cracky = 3, oddly_breakable_by_hand = 3},
|
||||
groups = {cracky = 3, oddly_breakable_by_hand = 3},
|
||||
sounds = sound_glass,
|
||||
},
|
||||
["trap_glow_glass"] = {
|
||||
description = S("Trap Glow Glass"),
|
||||
drawtype = "glasslike_framed_optional",
|
||||
--tiles = {"moreblocks_trap_glass.png", "moreblocks_glow_glass_detail.png"},
|
||||
tiles = {"moreblocks_trap_glass.png"},
|
||||
tiles = {"default_glass.png^[colorize:#E9CD61^moreblocks_trap_box_glass.png", "default_glass_detail.png^[colorize:#E9CD61"},
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
is_ground_content = false,
|
||||
light_source = 11,
|
||||
walkable = false,
|
||||
groups = {snappy = 2, cracky = 3, oddly_breakable_by_hand = 3},
|
||||
groups = {cracky = 3, oddly_breakable_by_hand = 3},
|
||||
sounds = sound_glass,
|
||||
no_stairs = true,
|
||||
},
|
||||
["super_glow_glass"] = {
|
||||
description = S("Super Glow Glass"),
|
||||
drawtype = "glasslike_framed_optional",
|
||||
--tiles = {"moreblocks_super_glow_glass.png", "moreblocks_super_glow_glass_detail.png"},
|
||||
tiles = {"moreblocks_super_glow_glass.png"},
|
||||
tiles = {"default_glass.png^[colorize:#FFFF78", "default_glass_detail.png^[colorize:#FFFF78"},
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
light_source = 14,
|
||||
groups = {snappy = 2, cracky = 3, oddly_breakable_by_hand = 3},
|
||||
is_ground_content = false,
|
||||
light_source = default.LIGHT_MAX,
|
||||
groups = {cracky = 3, oddly_breakable_by_hand = 3},
|
||||
sounds = sound_glass,
|
||||
},
|
||||
["trap_super_glow_glass"] = {
|
||||
description = S("Trap Super Glow Glass"),
|
||||
drawtype = "glasslike_framed_optional",
|
||||
--tiles = {"moreblocks_trap_super_glow_glass.png", "moreblocks_super_glow_glass_detail.png"},
|
||||
tiles = {"moreblocks_trap_super_glow_glass.png"},
|
||||
tiles = {"default_glass.png^[colorize:#FFFF78^moreblocks_trap_box_glass.png", "default_glass_detail.png^[colorize:#FFFF78"},
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
light_source = 14,
|
||||
is_ground_content = false,
|
||||
light_source = default.LIGHT_MAX,
|
||||
walkable = false,
|
||||
groups = {snappy = 2, cracky = 3, oddly_breakable_by_hand = 3},
|
||||
groups = {cracky = 3, oddly_breakable_by_hand = 3},
|
||||
sounds = sound_glass,
|
||||
no_stairs = true,
|
||||
},
|
||||
@@ -313,6 +438,7 @@ local nodes = {
|
||||
wield_image = "moreblocks_rope.png",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
is_ground_content = false,
|
||||
paramtype2 = "wallmounted",
|
||||
walkable = false,
|
||||
climbable = true,
|
||||
@@ -324,6 +450,7 @@ local nodes = {
|
||||
["copperpatina"] = {
|
||||
description = S("Copper Patina Block"),
|
||||
groups = {cracky = 1, level = 2},
|
||||
is_ground_content = false,
|
||||
sounds = sound_metal,
|
||||
},
|
||||
}
|
||||
@@ -346,15 +473,9 @@ for name, def in pairs(nodes) do
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- Items
|
||||
|
||||
minetest.register_craftitem("moreblocks:sweeper", {
|
||||
description = S("Sweeper"),
|
||||
inventory_image = "moreblocks_sweeper.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("moreblocks:nothing", {
|
||||
inventory_image = "invisible.png",
|
||||
on_use = function() end,
|
||||
})
|
||||
|
@@ -5,6 +5,7 @@ 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",
|
||||
@@ -48,73 +49,81 @@ local default_nodes = { -- Default stairs/slabs/panels/microblocks:
|
||||
"desert_sandstone_block",
|
||||
"sandstone_block",
|
||||
"coral_skeleton",
|
||||
"farming:straw"
|
||||
}
|
||||
|
||||
for _, name in pairs(default_nodes) do
|
||||
local nodename = "default:"..name
|
||||
local a,b = string.find(name, ":")
|
||||
if b then
|
||||
nodename = name
|
||||
name = string.sub(name, b+1)
|
||||
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
|
||||
local ndef = minetest.registered_nodes[nodename]
|
||||
if ndef then
|
||||
local drop
|
||||
if type(ndef.drop) == "string" then
|
||||
drop = ndef.drop:sub((b or 8)+1)
|
||||
end
|
||||
|
||||
local tiles = ndef.tiles
|
||||
if #ndef.tiles > 1 and ndef.drawtype:find("glass") then
|
||||
tiles = { ndef.tiles[1] }
|
||||
end
|
||||
-- Use the primary tile for all sides of cut glasslike nodes and disregard paramtype2.
|
||||
if #ndef.tiles > 1 and ndef.drawtype and ndef.drawtype:find("glass") then
|
||||
ndef.tiles = {ndef.tiles[1]}
|
||||
ndef.paramtype2 = nil
|
||||
end
|
||||
|
||||
stairsplus:register_all("moreblocks", name, nodename, {
|
||||
description = ndef.description,
|
||||
drop = drop,
|
||||
groups = ndef.groups,
|
||||
sounds = ndef.sounds,
|
||||
tiles = tiles,
|
||||
sunlight_propagates = true,
|
||||
light_source = ndef.light_source
|
||||
})
|
||||
mod = "moreblocks"
|
||||
stairsplus:register_all(mod, name, nodename, ndef)
|
||||
minetest.register_alias_force("stairs:stair_" .. name, mod .. ":stair_" .. name)
|
||||
minetest.register_alias_force("stairs:slab_" .. name, mod .. ":slab_" .. name)
|
||||
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
|
||||
|
||||
mod = "moreblocks"
|
||||
stairsplus:register_all(mod, name, nodename, ndef)
|
||||
minetest.register_alias_force("stairs:stair_" .. name, mod .. ":stair_" .. name)
|
||||
minetest.register_alias_force("stairs:slab_" .. name, mod .. ":slab_" .. name)
|
||||
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
|
||||
|
||||
local colorlist = {
|
||||
{"white", "White Wool"},
|
||||
{"grey", "Grey Wool"},
|
||||
{"black", "Black Wool"},
|
||||
{"red", "Red Wool"},
|
||||
{"yellow", "Yellow Wool"},
|
||||
{"green", "Green Wool"},
|
||||
{"cyan", "Cyan Wool"},
|
||||
{"blue", "Blue Wool"},
|
||||
{"magenta", "Magenta Wool"},
|
||||
{"orange", "Orange Wool"},
|
||||
{"violet", "Violet Wool"},
|
||||
{"brown", "Brown Wool"},
|
||||
{"pink", "Pink Wool"},
|
||||
{"dark_grey", "Dark Grey Wool"},
|
||||
{"dark_green", "Dark Green Wool"},
|
||||
}
|
||||
-- Prevent dye+cut wool recipy from creating a full wool block.
|
||||
ndef.groups.wool = nil
|
||||
|
||||
for i in ipairs(colorlist) do
|
||||
local color = colorlist[i][1]
|
||||
local colordesc = colorlist[i][2]
|
||||
|
||||
stairsplus:register_all("wool", color, "wool:"..color, {
|
||||
description = colordesc,
|
||||
tiles = {"wool_"..color..".png"},
|
||||
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,
|
||||
flammable=3,wool=1,not_in_creative_inventory=1},
|
||||
sounds = default.node_sound_defaults(),
|
||||
sunlight_propagates = true,
|
||||
})
|
||||
stairsplus:register_all(mod, name, nodename, ndef)
|
||||
end
|
||||
end
|
||||
|
||||
-- Alias cuts of split_stone_tile_alt which was renamed checker_stone_tile.
|
||||
stairsplus:register_alias_all("moreblocks", "split_stone_tile_alt", "moreblocks", "checker_stone_tile")
|
||||
|
||||
-- The following LBM is necessary because the name stair_split_stone_tile_alt
|
||||
-- conflicts with another node and so the alias for that specific node gets
|
||||
-- ignored.
|
||||
minetest.register_lbm({
|
||||
name = "moreblocks:fix_split_stone_tile_alt_name_collision",
|
||||
nodenames = {"moreblocks:stair_split_stone_tile_alt"},
|
||||
action = function(pos, node)
|
||||
minetest.set_node(pos, {
|
||||
name = "moreblocks:stair_checker_stone_tile",
|
||||
param2 = minetest.get_node(pos).param2
|
||||
|
||||
})
|
||||
minetest.log('action', "LBM replaced " .. node.name ..
|
||||
" at " .. minetest.pos_to_string(pos))
|
||||
end,
|
||||
})
|
||||
|
@@ -66,42 +66,39 @@ function stairsplus:register_slab(modname, subname, recipeitem, fields)
|
||||
local defs = stairsplus.copytable(slabs_defs)
|
||||
local desc_base = S("%s Slab"):format(fields.description)
|
||||
for alternate, shape in pairs(defs) do
|
||||
|
||||
local def = {}
|
||||
|
||||
if type(shape) ~= "table" then
|
||||
def = {
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.5, -0.5, -0.5, 0.5, (shape/16)-0.5, 0.5},
|
||||
},
|
||||
description = ("%s (%d/16)"):format(desc_base, shape)
|
||||
}
|
||||
else
|
||||
def = {
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = shape,
|
||||
},
|
||||
description = desc_base
|
||||
}
|
||||
end
|
||||
|
||||
for k, v in pairs(fields) do
|
||||
def[k] = v
|
||||
end
|
||||
if type(shape) ~= "table" then
|
||||
def.node_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.5, -0.5, -0.5, 0.5, (shape/16)-0.5, 0.5},
|
||||
}
|
||||
def.description = ("%s (%d/16)"):format(desc_base, shape)
|
||||
else
|
||||
def.node_box = {
|
||||
type = "fixed",
|
||||
fixed = shape,
|
||||
}
|
||||
local desc_x = alternate:gsub("_", " ")
|
||||
desc_x = desc_x:gsub("(%a)(%S*)", function(a, b) return a:upper() .. b end)
|
||||
def.description = desc_base .. desc_x
|
||||
end
|
||||
|
||||
def.drawtype = "nodebox"
|
||||
def.paramtype = "light"
|
||||
def.paramtype2 = def.paramtype2 or "facedir"
|
||||
def.on_place = minetest.rotate_node
|
||||
def.groups = stairsplus:prepare_groups(fields.groups)
|
||||
if alternate == "" then
|
||||
def.groups.slab = 1
|
||||
end
|
||||
if fields.drop and not (type(fields.drop) == "table") then
|
||||
def.drop = modname.. ":slab_" .. fields.drop .. alternate
|
||||
end
|
||||
minetest.register_node(":" .. modname .. ":slab_" .. subname .. alternate, def)
|
||||
end
|
||||
minetest.register_alias("stairs:slab_" .. subname, modname .. ":slab_" .. subname)
|
||||
|
||||
circular_saw.known_nodes[recipeitem] = {modname, subname}
|
||||
|
||||
|
@@ -136,12 +136,14 @@ function stairsplus:register_stair(modname, subname, recipeitem, fields)
|
||||
def.on_place = minetest.rotate_node
|
||||
def.description = desc
|
||||
def.groups = stairsplus:prepare_groups(fields.groups)
|
||||
if alternate == "" then
|
||||
def.groups.stair = 1
|
||||
end
|
||||
if fields.drop and not (type(fields.drop) == "table") then
|
||||
def.drop = modname .. ":stair_" .. fields.drop .. alternate
|
||||
end
|
||||
minetest.register_node(":" .. modname .. ":stair_" .. subname .. alternate, def)
|
||||
end
|
||||
minetest.register_alias("stairs:stair_" .. subname, modname .. ":stair_" .. subname)
|
||||
|
||||
circular_saw.known_nodes[recipeitem] = {modname, subname}
|
||||
|
||||
|
Before Width: | Height: | Size: 716 B |
Before Width: | Height: | Size: 285 B |
Before Width: | Height: | Size: 68 B |
Before Width: | Height: | Size: 306 B After Width: | Height: | Size: 306 B |
Before Width: | Height: | Size: 155 B |
Before Width: | Height: | Size: 159 B |
BIN
moreblocks/textures/moreblocks_dirt_compressed.png
Normal file
After Width: | Height: | Size: 318 B |
Before Width: | Height: | Size: 219 B After Width: | Height: | Size: 219 B |
Before Width: | Height: | Size: 204 B |
Before Width: | Height: | Size: 480 B |
Before Width: | Height: | Size: 210 B |
Before Width: | Height: | Size: 157 B |
Before Width: | Height: | Size: 161 B |
Before Width: | Height: | Size: 158 B |
Before Width: | Height: | Size: 163 B |
Before Width: | Height: | Size: 154 B |
Before Width: | Height: | Size: 156 B |
BIN
moreblocks/textures/moreblocks_trap_box.png
Normal file
After Width: | Height: | Size: 135 B |
BIN
moreblocks/textures/moreblocks_trap_box_glass.png
Normal file
After Width: | Height: | Size: 160 B |
Before Width: | Height: | Size: 170 B |
Before Width: | Height: | Size: 170 B |
Before Width: | Height: | Size: 333 B |
Before Width: | Height: | Size: 170 B |
Before Width: | Height: | Size: 289 B After Width: | Height: | Size: 289 B |