From dd1fa65f9e278db98a78840d743f243f7f2e7084 Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Fri, 20 Jan 2017 04:54:09 +0100 Subject: [PATCH] Massive rework of creative inventory categories --- API.md | 9 +- mods/beds/init.lua | 4 +- mods/bucket/init.lua | 1 - mods/craftingpack/crafting/creative.lua | 33 ++- mods/craftingpack/crafting/init.lua | 2 +- mods/default/craftitems.lua | 33 ++- mods/default/functions.lua | 2 +- mods/default/nodes.lua | 215 +++++++++--------- mods/default/tools.lua | 32 ++- mods/dye/init.lua | 34 +-- mods/farming/hoes.lua | 5 + mods/farming/melon.lua | 3 +- mods/farming/mushrooms.lua | 4 +- mods/farming/pumpkin.lua | 4 +- mods/farming/wheat.lua | 1 + mods/fire/init.lua | 2 +- mods/flowers/init.lua | 24 +- mods/gemalde/init.lua | 2 +- mods/hardened_clay/init.lua | 4 +- mods/head/init.lua | 2 +- mods/itemframes/init.lua | 2 +- mods/mcl_boats/init.lua | 2 +- mods/mcl_clock/init.lua | 4 +- mods/mcl_compass/init.lua | 2 +- mods/mcl_end/init.lua | 8 +- mods/mcl_fences/init.lua | 1 + mods/mcl_jukebox/init.lua | 2 +- mods/mcl_minecarts/init.lua | 2 +- mods/mcl_minecarts/rails.lua | 2 +- mods/mcl_mobitems/init.lua | 9 + mods/mcl_potions/init.lua | 1 + mods/mcl_throwing/init.lua | 2 +- .../minetest-3d_armor/3d_armor_stand/init.lua | 2 +- mods/mobs/crafts.lua | 3 + mods/signs/init.lua | 4 +- mods/stairs/init.lua | 2 + mods/torches/init.lua | 2 +- mods/vessels/init.lua | 2 +- mods/wallet/init.lua | 7 +- mods/wool/init.lua | 4 +- mods/xpanes/init.lua | 1 + 41 files changed, 278 insertions(+), 202 deletions(-) diff --git a/API.md b/API.md index 526939d45..086eb3216 100644 --- a/API.md +++ b/API.md @@ -60,5 +60,12 @@ These groups are used mostly for informational purposes * `eatable`: Item can be *directly* eaten by wielding + left click (`on_use=item_eat`). Rating is the satiation gain * `ammo=1`: Item is used as ammo for a weapon * `ammo_bow=1`: Item is used as ammo for bows -* `weapon_ranged=1`: Item is a ranged weapon + +* `weapon=1`: Item is primarily (!) a weapon +* `tool=1`: Item is primarily (!) a tool +* `craftitem=1`: Item is primarily (!) used for crafting +* `brewitem=1`: Item is primarily (!) used in brewing +* `transport=1`: Item is used for transportation +* `building_block=1`: Block is a building block +* `deco_block=1`: Block is a decorational block diff --git a/mods/beds/init.lua b/mods/beds/init.lua index 60359887c..6c0434632 100644 --- a/mods/beds/init.lua +++ b/mods/beds/init.lua @@ -54,7 +54,7 @@ minetest.register_node("beds:bed_bottom", { paramtype = "light", paramtype2 = "facedir", stack_max = 1, - groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3,deco_block=1}, sounds = default.node_sound_wood_defaults(), node_box = { type = "fixed", @@ -151,7 +151,7 @@ minetest.register_node("beds:bed_top", { paramtype = "light", paramtype2 = "facedir", is_ground_content = false, - groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3,not_in_creative_inventory=1}, sounds = default.node_sound_wood_defaults(), node_box = { type = "fixed", diff --git a/mods/bucket/init.lua b/mods/bucket/init.lua index 9d92512f4..b3ea13b1c 100644 --- a/mods/bucket/init.lua +++ b/mods/bucket/init.lua @@ -40,7 +40,6 @@ function bucket.register_liquid(source, flowing, itemname, inventory_image, name inventory_image = inventory_image, stack_max = 1, liquids_pointable = true, - groups = {not_in_creative_inventory=1}, on_place = function(itemstack, user, pointed_thing) -- Must be pointing to node if pointed_thing.type ~= "node" then diff --git a/mods/craftingpack/crafting/creative.lua b/mods/craftingpack/crafting/creative.lua index 25744cb7d..5c1a187cc 100644 --- a/mods/craftingpack/crafting/creative.lua +++ b/mods/craftingpack/crafting/creative.lua @@ -41,24 +41,29 @@ function set_inv(filter, player) for name,def in pairs(minetest.registered_items) do if (not def.groups.not_in_creative_inventory or def.groups.not_in_creative_inventory == 0) and def.description and def.description ~= "" then if filter ~= "" then + local is_redstone = function(def) + return def.mesecons or def.groups.mesecon or def.groups.mesecon_conductor_craftable or def.groups.mesecon_effecor_off + end + local is_tool = function(def) + return def.groups.tool or (def.tool_capabilities ~= nil and def.tool_capabilities.damage_groups == nil) + end + local is_weapon = function(def) + return def.groups.weapon or def.groups.weapon_ranged or def.groups.ammo or def.groups.armor_head or def.groups.armor_torso or def.groups.armor_legs or def.groups.armor_feet + end if filter == "#blocks" then - if def.walkable == true then + if def.groups.building_block then table.insert(creative_list, name) end elseif filter == "#deco" then - if def.walkable == false or def.drawtype == "plantlike" or def.drawtype == "allfaces_optional" then--def.groups. == true then + if def.groups.deco_block then table.insert(creative_list, name) end elseif filter == "#redstone" then - if def.mesecons or def.groups.mesecon or def.groups.mesecon_conductor_craftable or def.groups.mesecon_effecor_off then + if is_redstone(def) then table.insert(creative_list, name) end elseif filter == "#rail" then - if def.groups.rail or def.groups.minecart or def.groups.boat then - table.insert(creative_list, name) - end - elseif filter == "#misc" then - if def.drawtype == nil and def.tool_capabilities == nil and not string.find(string.lower(def.description), "ingot") and not string.find(string.lower(def.description), "lump") and not string.find(string.lower(def.description), "dye") and not string.find(string.lower(def.name), "diamond") and not string.find(string.lower(def.name), "redstone") and not string.find(string.lower(def.name), "obsidian") and not string.find(string.lower(def.description), "clay") then + if def.groups.transport then table.insert(creative_list, name) end elseif filter == "#food" then @@ -66,15 +71,21 @@ function set_inv(filter, player) table.insert(creative_list, name) end elseif filter == "#tools" then - if def.tool_capabilities ~= nil and not string.find(string.lower(def.description), "sword") then + if is_tool(def) then table.insert(creative_list, name) end elseif filter == "#combat" then - if (def.tool_capabilities ~= nil and def.tool_capabilities.damage_groups ~= nil) or def.groups.weapon or def.groups.weapon_ranged or def.groups.ammo or def.groups.armor_head or def.groups.armor_torso or def.groups.armor_legs or def.groups.armor_feet then + if is_weapon(def) then table.insert(creative_list, name) end elseif filter == "#matr" then - if def.drawtype == nil and def.tool_capabilities == nil and (string.find(string.lower(def.description), "ingot") or string.find(string.lower(def.description), "lump") or string.find(string.lower(def.description), "dye") or string.find(string.lower(def.name), "diamond") or string.find(string.lower(def.name), "redstone") or string.find(string.lower(def.name), "obsidian") or string.find(string.lower(def.description), "clay") or string.find(string.lower(def.description), "stick") or string.find(string.lower(def.description), "flint") or string.find(string.lower(def.description), "seed")) then + -- TODO: Add separate brewing category + if def.groups.craftitem or def.groups.brewitem then + table.insert(creative_list, name) + end + elseif filter == "#misc" then + if not def.groups.building_block and not def.groups.deco_block and not is_redstone(def) and not def.groups.transport and not def.groups.food and not def.groups.eatable and not is_tool(def) and not is_weapon(def) and not def.groups.craftitem and not def.groups.brewitem then + table.insert(creative_list, name) end elseif filter == "all" then diff --git a/mods/craftingpack/crafting/init.lua b/mods/craftingpack/crafting/init.lua index e375636c1..582b123b1 100644 --- a/mods/craftingpack/crafting/init.lua +++ b/mods/craftingpack/crafting/init.lua @@ -167,7 +167,7 @@ minetest.register_node("crafting:workbench", { "crafting_workbench_side.png", "crafting_workbench_front.png", "crafting_workbench_front.png"}, paramtype2 = "facedir", paramtype = "light", - groups = {choppy=2,oddly_breakable_by_hand=2,flammable=2}, + groups = {choppy=2,oddly_breakable_by_hand=2,flammable=2,deco_block=1}, on_rightclick = function(pos, node, clicker, itemstack) set_workbench(clicker) end, diff --git a/mods/default/craftitems.lua b/mods/default/craftitems.lua index 10935a2bc..d5129c839 100644 --- a/mods/default/craftitems.lua +++ b/mods/default/craftitems.lua @@ -8,18 +8,21 @@ minetest.register_craftitem("default:stick", { description = "Stick", inventory_image = "default_stick.png", stack_max = 64, + groups = { craftitem=1 }, }) minetest.register_craftitem("default:paper", { description = "Paper", inventory_image = "default_paper.png", stack_max = 64, + groups = { craftitem=1 }, }) minetest.register_craftitem("default:book", { description = "Book", inventory_image = "default_book.png", stack_max = 64, + groups = { craftitem=1 }, }) minetest.register_craftitem("default:coal_lump", { @@ -27,6 +30,7 @@ minetest.register_craftitem("default:coal_lump", { groups = { coal=1 }, inventory_image = "default_coal_lump.png", stack_max = 64, + groups = { craftitem=1 }, }) minetest.register_craftitem("default:charcoal_lump", { @@ -34,130 +38,151 @@ minetest.register_craftitem("default:charcoal_lump", { groups = { coal=1 }, inventory_image = "default_charcoal_lump.png", stack_max = 64, + groups = { craftitem=1 }, }) minetest.register_craftitem("default:iron_nugget", { description = "Iron Nugget", inventory_image = "default_iron_nugget.png", stack_max = 64, + groups = { craftitem=1 }, }) minetest.register_craftitem("default:gold_nugget", { description = "Gold Nugget", inventory_image = "default_gold_nugget.png", stack_max = 64, + groups = { craftitem=1 }, }) minetest.register_craftitem("default:diamond", { description = "Diamond", inventory_image = "default_diamond.png", stack_max = 64, + groups = { craftitem=1 }, }) minetest.register_craftitem("default:clay_lump", { description = "Clay", inventory_image = "default_clay_lump.png", stack_max = 64, + groups = { craftitem=1 }, }) minetest.register_craftitem("default:steel_ingot", { description = "Iron Ingot", inventory_image = "default_steel_ingot.png", stack_max = 64, + groups = { craftitem=1 }, }) minetest.register_craftitem("default:gold_ingot", { description = "Gold Ingot", inventory_image = "default_gold_ingot.png", stack_max = 64, + groups = { craftitem=1 }, }) minetest.register_craftitem("default:emerald", { description = "Emerald", inventory_image = "default_emerald.png", stack_max = 64, + groups = { craftitem=1 }, }) minetest.register_craftitem("default:clay_brick", { description = "Brick", inventory_image = "default_clay_brick.png", stack_max = 64, + groups = { craftitem=1 }, }) minetest.register_craftitem("default:flint", { description = "Flint", inventory_image = "default_flint.png", stack_max = 64, + groups = { craftitem=1 }, }) minetest.register_craftitem("default:gunpowder", { description = "Gunpowder", inventory_image = "default_gunpowder.png", stack_max = 64, + groups = { craftitem=1 }, }) minetest.register_craftitem("default:bone", { description = "Bone", inventory_image = "default_bone.png", stack_max = 64, + groups = { craftitem=1 }, }) minetest.register_craftitem("default:glowstone_dust", { description = "Glowstone Dust", inventory_image = "default_glowstone_dust.png", stack_max = 64, + groups = { craftitem=1 }, }) minetest.register_craftitem("default:fish_raw", { description = "Raw Fish", - groups = {}, - inventory_image = "default_fish.png", + inventory_image = "default_fish.png", on_use = minetest.item_eat(2), stack_max = 64, + groups = { food=1, eatable = 2 }, }) minetest.register_craftitem("default:fish", { description = "Cooked Fish", - groups = {}, - inventory_image = "default_fish_cooked.png", + inventory_image = "default_fish_cooked.png", on_use = minetest.item_eat(4), stack_max = 64, + groups = { food=1, eatable=4 }, }) minetest.register_craftitem("default:sugar", { description = "Sugar", inventory_image = "default_sugar.png", stack_max = 64, + groups = { craftitem = 1 }, }) minetest.register_craftitem("default:string",{ description = "String", inventory_image = "default_string.png", stack_max = 64, + groups = { craftitem = 1 }, }) minetest.register_craftitem("default:bowl",{ description = "Bowl", inventory_image = "default_bowl.png", stack_max = 64, + groups = { craftitem = 1 }, }) minetest.register_craftitem("default:prismarine_cry", { description = "Prismarine Crystals", inventory_image = "default_prismarine_crystals.png", stack_max = 64, + groups = { craftitem = 1 }, }) minetest.register_craftitem("default:prismarine_shard", { description = "Prismarine Shard", inventory_image = "default_prismarine_shard.png", stack_max = 64, + groups = { craftitem = 1 }, + groups = { craftitem=1 }, }) minetest.register_craftitem("default:quartz_crystal", { description = "Nether Quartz", inventory_image = "default_quartz_crystal.png", stack_max = 64, + groups = { craftitem = 1 }, + groups = { craftitem=1 }, }) minetest.register_craftitem("default:apple", { diff --git a/mods/default/functions.lua b/mods/default/functions.lua index f20df4c4d..eb6ddd851 100644 --- a/mods/default/functions.lua +++ b/mods/default/functions.lua @@ -896,7 +896,7 @@ function AddGlass(desc, recipeitem, color) paramtype = "light", use_texture_alpha = true, stack_max = 64, - groups = {cracky=3,oddly_breakable_by_hand=3}, + groups = {cracky=3,oddly_breakable_by_hand=3, building_block=1}, sounds = default.node_sound_glass_defaults(), drop = "", }) diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index dff44edf8..c67419717 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -22,7 +22,7 @@ minetest.register_node("default:stone", { tiles = {"default_stone.png"}, is_ground_content = true, stack_max = 64, - groups = {cracky=3, stone=1}, + groups = {cracky=3, stone=1, building_block=1, deco_block=1}, drop = 'default:cobble', sounds = default.node_sound_stone_defaults(), }) @@ -32,7 +32,7 @@ minetest.register_node("default:stone_with_coal", { tiles = {"default_stone.png^default_mineral_coal.png"}, is_ground_content = true, stack_max = 64, - groups = {cracky=3}, + groups = {cracky=3, building_block=1}, drop = 'default:coal_lump', sounds = default.node_sound_stone_defaults(), }) @@ -42,7 +42,7 @@ minetest.register_node("default:stone_with_iron", { tiles = {"default_stone.png^default_mineral_iron.png"}, is_ground_content = true, stack_max = 64, - groups = {cracky=2}, + groups = {cracky=2, building_block=1}, drop = 'default:stone_with_iron', sounds = default.node_sound_stone_defaults(), }) @@ -53,7 +53,7 @@ minetest.register_node("default:stone_with_gold", { tiles = {"default_stone.png^default_mineral_gold.png"}, is_ground_content = true, stack_max = 64, - groups = {cracky=2}, + groups = {cracky=2, building_block=1}, drop = "default:stone_with_gold", sounds = default.node_sound_stone_defaults(), }) @@ -69,7 +69,7 @@ minetest.register_node("default:stone_with_redstone", { tiles = {"default_stone.png^default_mineral_redstone.png"}, is_ground_content = true, stack_max = 64, - groups = {cracky=2}, + groups = {cracky=2, building_block=1}, drop = { items = { max_items = 1, @@ -127,7 +127,7 @@ minetest.register_node("default:stone_with_lapis", { tiles = {"default_stone.png^default_mineral_lapis.png"}, is_ground_content = true, stack_max = 64, - groups = {cracky=2}, + groups = {cracky=2, building_block=1}, drop = { max_items = 1, items = { @@ -146,15 +146,8 @@ minetest.register_node("default:stone_with_emerald", { tiles = {"default_stone.png^default_mineral_emerald.png"}, is_ground_content = true, stack_max = 64, - groups = {cracky=2}, + groups = {cracky=2, building_block=1}, drop = "default:emerald", --- drop = { --- max_items = 2, --- items = { --- {items="default:emerald",rarity = 5}, --- {items="default:emerald"}, --- }, --- }, sounds = default.node_sound_stone_defaults(), }) @@ -163,7 +156,7 @@ minetest.register_node("default:stone_with_diamond", { tiles = {"default_stone.png^default_mineral_diamond.png"}, is_ground_content = true, stack_max = 64, - groups = {cracky=1}, + groups = {cracky=1, building_block=1}, drop = "default:diamond", sounds = default.node_sound_stone_defaults(), }) @@ -172,7 +165,7 @@ minetest.register_node("default:stonebrick", { description = "Stone Bricks", tiles = {"default_stone_brick.png"}, stack_max = 64, - groups = {cracky=3, stone=1, stonebrick=1}, + groups = {cracky=3, stone=1, stonebrick=1, building_block=1, deco_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -181,7 +174,7 @@ minetest.register_node("default:stonebrickcarved", { tiles = {"default_stonebrick_carved.png"}, is_ground_content = false, stack_max = 64, - groups = {cracky=3, stone=1, stonebrick=1}, + groups = {cracky=3, stone=1, stonebrick=1, building_block=1, deco_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -190,7 +183,7 @@ minetest.register_node("default:stonebrickcracked", { tiles = {"default_stonebrick_cracked.png"}, is_ground_content = false, stack_max = 64, - groups = {cracky=3, stone=1, stonebrick=1}, + groups = {cracky=3, stone=1, stonebrick=1, building_block=1, deco_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -198,7 +191,7 @@ minetest.register_node("default:stonebrickmossy", { description = "Mossy Stone Bricks", tiles = {"default_stonebrick_mossy.png"}, stack_max = 64, - groups = {cracky=3, stone=1, stonebrick=1}, + groups = {cracky=3, stone=1, stonebrick=1, building_block=1, deco_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -207,7 +200,7 @@ minetest.register_node("default:granite", { tiles = {"default_granite.png"}, is_ground_content = true, stack_max = 64, - groups = {cracky=3, stone=1}, + groups = {cracky=3, stone=1, building_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -215,7 +208,7 @@ minetest.register_node("default:granite_smooth", { description = "Polished Granite", tiles = {"default_granite_smooth.png"}, stack_max = 64, - groups = {cracky=3, stone=1}, + groups = {cracky=3, stone=1, building_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -224,7 +217,7 @@ minetest.register_node("default:andesite", { tiles = {"default_andesite.png"}, is_ground_content = true, stack_max = 64, - groups = {cracky=3, stone=1}, + groups = {cracky=3, stone=1, building_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -232,7 +225,7 @@ minetest.register_node("default:andesite_smooth", { description = "Polished Andesite", tiles = {"default_andesite_smooth.png"}, stack_max = 64, - groups = {cracky=3, stone=1}, + groups = {cracky=3, stone=1, building_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -241,7 +234,7 @@ minetest.register_node("default:diorite", { tiles = {"default_diorite.png"}, is_ground_content = true, stack_max = 64, - groups = {cracky=3, stone=1}, + groups = {cracky=3, stone=1, building_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -249,7 +242,7 @@ minetest.register_node("default:diorite_smooth", { description = "Polished Diorite", tiles = {"default_diorite_smooth.png"}, stack_max = 64, - groups = {cracky=3, stone=1}, + groups = {cracky=3, stone=1, building_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -258,7 +251,7 @@ minetest.register_node("default:dirt_with_grass", { tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"}, is_ground_content = true, stack_max = 64, - groups = {crumbly=3, soil=1, soil_sapling=2, soil_sugarcane=1, cultivatable=2}, + groups = {crumbly=3, soil=1, soil_sapling=2, soil_sugarcane=1, cultivatable=2, building_block=1}, drop = 'default:dirt', sounds = default.node_sound_dirt_defaults({ footstep = {name="default_grass_footstep", gain=0.4}, @@ -271,7 +264,7 @@ minetest.register_node("default:mycelium", { tiles = {"default_mycelium_top.png", "default_dirt.png", "default_mycelium_side.png"}, is_ground_content = true, stack_max = 64, - groups = {crumbly=3}, + groups = {crumbly=3, building_block=1}, drop = 'default:dirt', sounds = default.node_sound_dirt_defaults({ footstep = {name="default_grass_footstep", gain=0.4}, @@ -283,7 +276,7 @@ minetest.register_node("default:podzol", { tiles = {"default_dirt_podzol_top.png", "default_dirt.png", "default_dirt_podzol_side.png"}, is_ground_content = true, stack_max = 64, - groups = {crumbly=3, soil=1, soil_sapling=2, soil_sugarcane=1}, + groups = {crumbly=3, soil=1, soil_sapling=2, soil_sugarcane=1, building_block=1}, drop = 'default:dirt', sounds = default.node_sound_dirt_defaults(), }) @@ -293,7 +286,7 @@ minetest.register_node("default:dirt", { tiles = {"default_dirt.png"}, is_ground_content = true, stack_max = 64, - groups = {crumbly=3, soil=1, soil_sapling=2, soil_sugarcane=1, cultivatable=2}, + groups = {crumbly=3, soil=1, soil_sapling=2, soil_sugarcane=1, cultivatable=2, building_block=1}, sounds = default.node_sound_dirt_defaults(), }) @@ -302,7 +295,7 @@ minetest.register_node("default:coarse_dirt", { tiles = {"default_coarse_dirt.png"}, is_ground_content = true, stack_max = 64, - groups = {crumbly=3, soil=1, soil_sugarcane=1, cultivatable=1}, + groups = {crumbly=3, soil=1, soil_sugarcane=1, cultivatable=1, building_block=1}, sounds = default.node_sound_dirt_defaults(), }) @@ -311,7 +304,7 @@ minetest.register_node("default:gravel", { tiles = {"default_gravel.png"}, is_ground_content = true, stack_max = 64, - groups = {crumbly=2, falling_node=1}, + groups = {crumbly=2, falling_node=1, building_block=1}, drop = { max_items = 1, items = { @@ -330,7 +323,7 @@ minetest.register_node("default:sand", { tiles = {"default_sand.png"}, is_ground_content = true, stack_max = 64, - groups = {crumbly=3, falling_node=1, sand=1, soil_sugarcane=1}, + groups = {crumbly=3, falling_node=1, sand=1, soil_sugarcane=1, building_block=1}, sounds = default.node_sound_sand_defaults(), }) @@ -339,7 +332,7 @@ minetest.register_node("default:sandstone", { tiles = {"default_sandstone_top.png", "default_sandstone_bottom.png", "default_sandstone_normal.png"}, is_ground_content = true, stack_max = 64, - groups = {crumbly=2,cracky=2,sandstone=1}, + groups = {crumbly=2,cracky=2,sandstone=1, building_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -348,7 +341,7 @@ minetest.register_node("default:sandstonesmooth", { tiles = {"default_sandstone_top.png", "default_sandstone_bottom.png", "default_sandstone_smooth.png"}, is_ground_content = true, stack_max = 64, - groups = {crumbly=2,cracky=2,sandstone=1}, + groups = {crumbly=2,cracky=2,sandstone=1, building_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -357,7 +350,7 @@ minetest.register_node("default:sandstonecarved", { tiles = {"default_sandstone_top.png", "default_sandstone_bottom.png", "default_sandstone_carved.png"}, is_ground_content = true, stack_max = 64, - groups = {crumbly=2,cracky=2,sandstone=1}, + groups = {crumbly=2,cracky=2,sandstone=1, building_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -368,7 +361,7 @@ minetest.register_node("default:redsand", { tiles = {"default_red_sand.png"}, is_ground_content = true, stack_max = 64, - groups = {crumbly=3, falling_node=1, sand=1, soil_sugarcane=1}, + groups = {crumbly=3, falling_node=1, sand=1, soil_sugarcane=1, building_block=1}, sounds = default.node_sound_sand_defaults(), }) @@ -377,7 +370,7 @@ minetest.register_node("default:redsandstone", { tiles = {"default_redsandstone_top.png", "default_redsandstone_bottom.png", "default_redsandstone_normal.png"}, is_ground_content = true, stack_max = 64, - groups = {crumbly=2,cracky=2,redsandstone=1}, + groups = {crumbly=2,cracky=2,redsandstone=1, building_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -386,7 +379,7 @@ minetest.register_node("default:redsandstonesmooth", { tiles = {"default_redsandstone_top.png", "default_redsandstone_bottom.png", "default_redsandstone_smooth.png"}, is_ground_content = true, stack_max = 64, - groups = {crumbly=2,cracky=2,redsandstone=1}, + groups = {crumbly=2,cracky=2,redsandstone=1, building_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -395,7 +388,7 @@ minetest.register_node("default:redsandstonecarved", { tiles = {"default_redsandstone_top.png", "default_redsandstone_bottom.png", "default_redsandstone_carved.png"}, is_ground_content = true, stack_max = 64, - groups = {crumbly=2,cracky=2,redsandstone=1}, + groups = {crumbly=2,cracky=2,redsandstone=1, building_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -407,7 +400,7 @@ minetest.register_node("default:clay", { tiles = {"default_clay.png"}, is_ground_content = true, stack_max = 64, - groups = {crumbly=3}, + groups = {crumbly=3, building_block=1}, drop = 'default:clay_lump 4', sounds = default.node_sound_dirt_defaults({ footstep = "", @@ -419,7 +412,7 @@ minetest.register_node("default:brick", { tiles = {"default_brick.png"}, is_ground_content = false, stack_max = 64, - groups = {cracky=3}, + groups = {cracky=3, building_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -431,7 +424,7 @@ minetest.register_node("default:haybale", { paramtype2 = "facedir", is_ground_content = false, on_place = minetest.rotate_node, - groups = {oddly_breakable_by_hand=3,flammable=2}, + groups = {oddly_breakable_by_hand=3,flammable=2, building_block=1}, sounds = default.node_sound_leaves_defaults(), }) @@ -443,7 +436,7 @@ minetest.register_node("default:bone_block", { is_ground_content = false, paramtype2 = "facedir", on_place = minetest.rotate_node, - groups = {cracky=3}, + groups = {cracky=3, building_block=1}, sounds = default.node_sound_stone_defaults(), }) ]] @@ -462,7 +455,7 @@ minetest.register_node("default:sea_lantern", { } }, tiles = {"default_sea_lantern.png"}, - groups = {oddly_breakable_by_hand=3}, + groups = {oddly_breakable_by_hand=3, building_block=1}, sounds = default.node_sound_glass_defaults(), }) @@ -471,7 +464,7 @@ minetest.register_node("default:prismarine", { stack_max = 64, is_ground_content = false, tiles = {{name="default_prismarine_anim.png", animation={type="vertical_frames", aspect_w=32, aspect_h=32, length=45.0}}}, - groups = {cracky=3}, + groups = {cracky=3, building_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -480,7 +473,7 @@ minetest.register_node("default:prismarine_brick", { stack_max = 64, is_ground_content = false, tiles = {"default_prismarine_bricks.png"}, - groups = {cracky=2}, + groups = {cracky=2, building_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -489,7 +482,7 @@ minetest.register_node("default:prismarine_dark", { stack_max = 64, is_ground_content = false, tiles = {"default_prismarine_dark.png"}, - groups = {cracky=2}, + groups = {cracky=2, building_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -503,7 +496,7 @@ minetest.register_node("default:tree", { paramtype2 = "facedir", on_place = minetest.rotate_node, stack_max = 64, - groups = {tree=1,choppy=2,oddly_breakable_by_hand=1,flammable=2}, + groups = {tree=1,choppy=2,oddly_breakable_by_hand=1,flammable=2, building_block=1}, sounds = default.node_sound_wood_defaults(), }) @@ -521,7 +514,7 @@ minetest.register_node("default:sapling", { fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} }, stack_max = 64, - groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1,dig_by_water=1}, + groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1,dig_by_water=1,deco_block=1}, sounds = default.node_sound_defaults(), }) @@ -532,7 +525,7 @@ minetest.register_node("default:leaves", { tiles = {"default_leaves.png"}, paramtype = "light", stack_max = 64, - groups = {snappy=3, leafdecay=3, flammable=2, leaves=1}, + groups = {snappy=3, leafdecay=3, flammable=2, leaves=1, deco_block=1}, drop = { max_items = 1, items = { @@ -558,7 +551,7 @@ minetest.register_node("default:darktree", { paramtype2 = "facedir", on_place = minetest.rotate_node, stack_max = 64, - groups = {tree=1,choppy=2,oddly_breakable_by_hand=1,flammable=2}, + groups = {tree=1,choppy=2,oddly_breakable_by_hand=1,flammable=2,building_block=1}, sounds = default.node_sound_wood_defaults(), }) @@ -576,7 +569,7 @@ minetest.register_node("default:darksapling", { fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} }, stack_max = 64, - groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1,dig_by_water=1}, + groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1,dig_by_water=1,deco_block=1}, sounds = default.node_sound_defaults(), }) @@ -587,7 +580,7 @@ minetest.register_node("default:darkleaves", { tiles = {"default_leaves_big_oak.png"}, paramtype = "light", stack_max = 64, - groups = {snappy=3, leafdecay=3, flammable=2, leaves=1}, + groups = {snappy=3, leafdecay=3, flammable=2, leaves=1, deco_block=1}, drop = { max_items = 1, items = { @@ -614,7 +607,7 @@ minetest.register_node("default:jungletree", { stack_max = 64, paramtype2 = "facedir", on_place = minetest.rotate_node, - groups = {tree=1,choppy=2,oddly_breakable_by_hand=1,flammable=2}, + groups = {tree=1,choppy=2,oddly_breakable_by_hand=1,flammable=2,building_block=1}, sounds = default.node_sound_wood_defaults(), }) @@ -623,7 +616,7 @@ minetest.register_node("default:junglewood", { tiles = {"default_junglewood.png"}, stack_max = 64, is_ground_content = false, - groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, + groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1,building_block=1}, sounds = default.node_sound_wood_defaults(), }) @@ -634,7 +627,7 @@ minetest.register_node("default:jungleleaves", { tiles = {"default_jungleleaves.png"}, paramtype = "light", stack_max = 64, - groups = {snappy=3, leafdecay=3, flammable=2, leaves=1}, + groups = {snappy=3, leafdecay=3, flammable=2, leaves=1, deco_block=1}, drop = { max_items = 1, items = { @@ -661,7 +654,7 @@ minetest.register_node("default:junglesapling", { fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} }, stack_max = 64, - groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1,dig_by_water=1}, + groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1,dig_by_water=1,deco_block=1}, sounds = default.node_sound_defaults(), }) @@ -674,7 +667,7 @@ minetest.register_node("default:acaciatree", { stack_max = 64, paramtype2 = "facedir", on_place = minetest.rotate_node, - groups = {tree=1,choppy=2,oddly_breakable_by_hand=1,flammable=2}, + groups = {tree=1,choppy=2,oddly_breakable_by_hand=1,flammable=2,building_block=1}, sounds = default.node_sound_wood_defaults(), }) @@ -683,7 +676,7 @@ minetest.register_node("default:acaciawood", { tiles = {"default_acaciawood.png"}, stack_max = 64, is_ground_content = false, - groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, + groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1,building_block=1}, sounds = default.node_sound_wood_defaults(), }) @@ -694,7 +687,7 @@ minetest.register_node("default:acacialeaves", { tiles = {"default_acacialeaves.png"}, paramtype = "light", stack_max = 64, - groups = {snappy=3, leafdecay=3, flammable=2, leaves=1}, + groups = {snappy=3, leafdecay=3, flammable=2, leaves=1, deco_block=1}, drop = { max_items = 1, items = { @@ -721,7 +714,7 @@ minetest.register_node("default:acaciasapling", { fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} }, stack_max = 64, - groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1,dig_by_water=1}, + groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1,dig_by_water=1,deco_block=1}, sounds = default.node_sound_defaults(), }) @@ -733,7 +726,7 @@ minetest.register_node("default:sprucetree", { stack_max = 64, paramtype2 = "facedir", on_place = minetest.rotate_node, - groups = {tree=1,choppy=2,oddly_breakable_by_hand=1,flammable=2}, + groups = {tree=1,choppy=2,oddly_breakable_by_hand=1,flammable=2,building_block=1}, sounds = default.node_sound_wood_defaults(), }) @@ -742,7 +735,7 @@ minetest.register_node("default:sprucewood", { tiles = {"default_sprucewood.png"}, stack_max = 64, is_ground_content = false, - groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, + groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1,building_block=1}, sounds = default.node_sound_wood_defaults(), }) @@ -753,7 +746,7 @@ minetest.register_node("default:spruceleaves", { tiles = {"default_spruceleaves.png"}, paramtype = "light", stack_max = 64, - groups = {snappy=3, leafdecay=3, flammable=2, leaves=1}, + groups = {snappy=3, leafdecay=3, flammable=2, leaves=1, deco_block=1}, drop = { max_items = 1, items = { @@ -786,7 +779,7 @@ minetest.register_node("default:sprucesapling", { fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} }, stack_max = 64, - groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1,dig_by_water=1}, + groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1,dig_by_water=1,deco_block=1}, sounds = default.node_sound_defaults(), }) @@ -796,7 +789,7 @@ minetest.register_node("default:birchtree", { stack_max = 64, paramtype2 = "facedir", on_place = minetest.rotate_node, - groups = {tree=1,choppy=2,oddly_breakable_by_hand=1,flammable=2}, + groups = {tree=1,choppy=2,oddly_breakable_by_hand=1,flammable=2,building_block=1}, sounds = default.node_sound_wood_defaults(), }) @@ -805,7 +798,7 @@ minetest.register_node("default:birchwood", { tiles = {"default_planks_birch.png"}, stack_max = 64, is_ground_content = false, - groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, + groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1,building_block=1}, sounds = default.node_sound_wood_defaults(), }) @@ -816,7 +809,7 @@ minetest.register_node("default:birchleaves", { tiles = {"default_leaves_birch.png"}, paramtype = "light", stack_max = 64, - groups = {snappy=3, leafdecay=3, flammable=2, leaves=1}, + groups = {snappy=3, leafdecay=3, flammable=2, leaves=1, deco_block=1}, drop = { max_items = 1, items = { @@ -844,7 +837,7 @@ minetest.register_node("default:birchsapling", { fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} }, stack_max = 64, - groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1,dig_by_water=1}, + groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1,dig_by_water=1,deco_block=1}, sounds = default.node_sound_defaults(), }) @@ -860,7 +853,7 @@ minetest.register_node("default:junglegrass", { buildable_to = true, is_ground_content = true, stack_max = 64, - groups = {dig_immediate=3,flammable=2,attached_node=1,dig_by_water=1}, + groups = {dig_immediate=3,flammable=2,attached_node=1,dig_by_water=1,deco_block=1}, sounds = default.node_sound_leaves_defaults(), selection_box = { type = "fixed", @@ -883,7 +876,7 @@ minetest.register_node("default:cactus", { tiles = {"default_cactus_top.png", "default_cactus_bottom.png", "default_cactus_side.png","default_cactus_side.png","default_cactus_side.png","default_cactus_side.png"}, is_ground_content = true, stack_max = 64, - groups = {oddly_breakable_by_hand=2,}, + groups = {oddly_breakable_by_hand=2,deco_block=1}, sounds = default.node_sound_wood_defaults(), paramtype = "light", node_box = { @@ -932,7 +925,7 @@ minetest.register_node("default:reeds", { }, }, stack_max = 64, - groups = {dig_immediate=3,flammable=2}, + groups = {dig_immediate=3,flammable=2,craftitem=1}, sounds = default.node_sound_leaves_defaults(), }) @@ -942,7 +935,7 @@ minetest.register_node("default:quartz_ore", { stack_max = 64, tiles = {"default_quartz_ore.png"}, is_ground_content = false, - groups = {cracky=3,}, + groups = {cracky=3,building_block=1}, drop = 'default:quartz_crystal', sounds = default.node_sound_stone_defaults(), }) @@ -951,7 +944,7 @@ minetest.register_node("default:quartz_block", { description = "Block of Quartz", stack_max = 64, tiles = {"default_quartz_block_top.png", "default_quartz_block_bottom.png", "default_quartz_block_side.png"}, - groups = {snappy=1,cracky=1,level=2,quartz_block=1}, + groups = {snappy=1,cracky=1,level=2,quartz_block=1,building_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -960,7 +953,7 @@ minetest.register_node("default:quartz_chiseled", { stack_max = 64, is_ground_content = false, tiles = {"default_quartz_chiseled_top.png", "default_quartz_chiseled_top.png", "default_quartz_chiseled_side.png"}, - groups = {snappy=1,cracky=1,level=2,quartz_block=1}, + groups = {snappy=1,cracky=1,level=2,quartz_block=1,building_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -971,7 +964,7 @@ minetest.register_node("default:quartz_pillar", { is_ground_content = true, on_place = minetest.rotate_node, tiles = {"default_quartz_pillar_top.png", "default_quartz_pillar_top.png", "default_quartz_pillar_side.png"}, - groups = {snappy=1,cracky=1,level=2,quartz_block=1}, + groups = {snappy=1,cracky=1,level=2,quartz_block=1,building_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -979,7 +972,7 @@ minetest.register_node("default:bedrock", { description = "Bedrock", tiles = {"default_bedrock.png"}, stack_max = 64, - groups = {oddly_breakable_by_hand=5}, + groups = {oddly_breakable_by_hand=5,building_block=1}, sounds = default.node_sound_stone_defaults(), is_ground_content = false, on_blast = function() end, @@ -991,7 +984,7 @@ minetest.register_node("default:bookshelf", { tiles = {"default_wood.png", "default_wood.png", "default_bookshelf.png"}, stack_max = 64, is_ground_content = false, - groups = {choppy=3,oddly_breakable_by_hand=2,flammable=3}, + groups = {choppy=3,oddly_breakable_by_hand=2,flammable=3,deco_block=1}, drop = "default:book 3", sounds = default.node_sound_wood_defaults(), }) @@ -1015,7 +1008,7 @@ minetest.register_node("default:slimeblock", { stack_max = 64, -- According to Minecraft Wiki, bouncing off a slime block from a height off 255 blocks should result in a bounce height of 50 blocks -- bouncy=44 makes the player bounce up to 49.6. This value was chosen by experiment. - groups = {oddly_breakable_by_hand=3,dig_immediate=2,bouncy=44,fall_damage_add_percent=-100}, + groups = {oddly_breakable_by_hand=3,dig_immediate=2,bouncy=44,fall_damage_add_percent=-100,deco_block=1}, }) minetest.register_node("default:glass", { @@ -1026,7 +1019,7 @@ minetest.register_node("default:glass", { paramtype = "light", sunlight_propagates = true, stack_max = 64, - groups = {cracky=3,oddly_breakable_by_hand=3}, + groups = {cracky=3,oddly_breakable_by_hand=3,building_block=1}, sounds = default.node_sound_glass_defaults(), drop = "", }) @@ -1064,7 +1057,7 @@ minetest.register_node("default:rail", { fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2}, }, stack_max = 64, - groups = {dig_immediate=2,attached_node=1,rail=1,connect_to_raillike=1,dig_by_water=1}, + groups = {dig_immediate=2,attached_node=1,rail=1,connect_to_raillike=1,dig_by_water=1,transport=1}, }) minetest.register_node("default:ladder", { @@ -1085,7 +1078,7 @@ minetest.register_node("default:ladder", { --wall_side = = }, stack_max = 64, - groups = {choppy=2,oddly_breakable_by_hand=3,flammable=2}, + groups = {choppy=2,oddly_breakable_by_hand=3,flammable=2,deco_block=1}, sounds = default.node_sound_wood_defaults(), }) @@ -1104,7 +1097,7 @@ minetest.register_node("default:vine", { type = "wallmounted", }, stack_max = 64, - groups = {choppy=2,oddly_breakable_by_hand=3,flammable=2}, + groups = {choppy=2,oddly_breakable_by_hand=3,flammable=2,deco_block=1}, sounds = default.node_sound_leaves_defaults(), drop = "", after_dig_node = function(pos, oldnode, oldmetadata, user) @@ -1135,7 +1128,7 @@ minetest.register_node("default:wood", { tiles = {"default_wood.png"}, stack_max = 64, is_ground_content = false, - groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, + groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1,building_block=1}, sounds = default.node_sound_wood_defaults(), }) @@ -1144,7 +1137,7 @@ minetest.register_node("default:darkwood", { tiles = {"default_planks_big_oak.png"}, stack_max = 64, is_ground_content = false, - groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, + groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1,building_block=1}, sounds = default.node_sound_wood_defaults(), }) @@ -1215,7 +1208,7 @@ minetest.register_node("default:water_source", { freezemelt = "default:ice", post_effect_color = {a=64, r=100, g=100, b=200}, stack_max = 64, - groups = {water=3, liquid=3, puts_out_fire=1, freezes=1}, + groups = {water=3, liquid=3, puts_out_fire=1, freezes=1, not_in_creative_inventory=1}, }) minetest.register_node("default:lava_flowing", { @@ -1290,7 +1283,7 @@ minetest.register_node("default:lava_source", { damage_per_second = 4*2, post_effect_color = {a=192, r=255, g=64, b=0}, stack_max = 64, - groups = {lava=3, liquid=2, igniter=3}, + groups = {lava=3, liquid=2, igniter=3, not_in_creative_inventory=1}, }) @@ -1324,7 +1317,7 @@ minetest.register_node("default:chest", { "default_chest_side.png", "default_chest_side.png", "default_chest_front.png"}, paramtype2 = "facedir", stack_max = 64, - groups = {choppy=2,oddly_breakable_by_hand=2}, + groups = {choppy=2,oddly_breakable_by_hand=2, deco_block=1}, is_ground_content = false, sounds = default.node_sound_wood_defaults(), on_construct = function(pos) @@ -1570,7 +1563,7 @@ minetest.register_node("default:furnace", { paramtype2 = "facedir", is_ground_content = false, stack_max = 64, - groups = {cracky=2}, + groups = {cracky=2, deco_block=1}, sounds = default.node_sound_stone_defaults(), on_construct = function(pos) local meta = minetest.get_meta(pos) @@ -1802,7 +1795,7 @@ minetest.register_node("default:cobble", { tiles = {"default_cobble.png"}, is_ground_content = true, stack_max = 64, - groups = {cracky=3, stone=2}, + groups = {cracky=3, stone=2, building_block=1, deco_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -1811,7 +1804,7 @@ minetest.register_node("default:mossycobble", { tiles = {"default_mossycobble.png"}, is_ground_content = true, stack_max = 64, - groups = {cracky=3}, + groups = {cracky=3, building_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -1820,7 +1813,7 @@ minetest.register_node("default:coalblock", { tiles = {"default_coal_block.png"}, is_ground_content = false, stack_max = 64, - groups = {cracky=2}, + groups = {cracky=2, building_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -1829,7 +1822,7 @@ minetest.register_node("default:steelblock", { tiles = {"default_steel_block.png"}, is_ground_content = false, stack_max = 64, - groups = {cracky=1,level=2}, + groups = {cracky=1,level=2,building_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -1838,7 +1831,7 @@ minetest.register_node("default:goldblock", { tiles = {"default_gold_block.png"}, is_ground_content = false, stack_max = 64, - groups = {cracky=1}, + groups = {cracky=1,building_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -1847,7 +1840,7 @@ minetest.register_node("default:diamondblock", { tiles = {"default_diamond_block.png"}, is_ground_content = false, stack_max = 64, - groups = {cracky=1,level=3}, + groups = {cracky=1,level=3,building_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -1856,7 +1849,7 @@ minetest.register_node("default:lapisblock", { tiles = {"default_lapis_block.png"}, is_ground_content = false, stack_max = 64, - groups = {cracky=1}, + groups = {cracky=1,building_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -1865,7 +1858,7 @@ minetest.register_node("default:emeraldblock", { tiles = {"default_emerald_block.png"}, is_ground_content = false, stack_max = 64, - groups = {cracky=1}, + groups = {cracky=1,building_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -1875,7 +1868,7 @@ minetest.register_node("default:obsidian", { is_ground_content = true, sounds = default.node_sound_stone_defaults(), stack_max = 64, - groups = {cracky=4,level=2,oddly_breakable_by_hand=4}, + groups = {cracky=4,level=2,oddly_breakable_by_hand=4,building_block=1}, }) minetest.register_node("default:dry_shrub", { @@ -1888,7 +1881,7 @@ minetest.register_node("default:dry_shrub", { paramtype = "light", walkable = false, stack_max = 64, - groups = {dig_immediate=3,flammable=3,attached_node=1,dig_by_water=1}, + groups = {dig_immediate=3,flammable=3,attached_node=1,dig_by_water=1,deco_block=1}, drop = { max_items = 1, items = { @@ -1928,7 +1921,7 @@ minetest.register_node("default:grass", { walkable = false, buildable_to = true, is_ground_content = true, - groups = {snappy=3,flammable=3,attached_node=1,dig_immediate=3,dig_by_water=1}, + groups = {snappy=3,flammable=3,attached_node=1,dig_immediate=3,dig_by_water=1,deco_block=1}, sounds = default.node_sound_leaves_defaults(), after_dig_node = function(pos, oldnode, oldmetadata, user) local item = user:get_wielded_item() @@ -1943,7 +1936,7 @@ minetest.register_node("default:glowstone", { tiles = {"default_glowstone.png"}, is_ground_content = true, stack_max = 64, - groups = {cracky=3}, + groups = {cracky=3,building_block=1}, drop = { max_items = 1, items = { @@ -1968,7 +1961,7 @@ minetest.register_node("default:sponge", { buildable_to = false, stack_max = 64, sounds = default.node_sound_dirt_defaults(), - groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=3}, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=3,building_block=1}, on_place = function(itemstack, placer, pointed_thing) local pn = placer:get_player_name() if pointed_thing.type ~= "node" then @@ -2049,7 +2042,7 @@ minetest.register_node("default:sponge_wet", { buildable_to = false, stack_max = 64, sounds = default.node_sound_dirt_defaults(), - groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3}, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,building_block=1}, }) @@ -2061,7 +2054,7 @@ minetest.register_node("default:ice", { paramtype = "light", use_texture_alpha = true, stack_max = 64, - groups = {cracky=3,oddly_breakable_by_hand=2}, + groups = {cracky=3,oddly_breakable_by_hand=2,building_block=1}, drop = "", sounds = default.node_sound_glass_defaults(), }) @@ -2074,7 +2067,7 @@ minetest.register_node("default:packed_ice", { paramtype = "light", use_texture_alpha = true, stack_max = 64, - groups = {cracky=3,oddly_breakable_by_hand=2}, + groups = {cracky=3,oddly_breakable_by_hand=2,building_block=1}, drop = "", sounds = default.node_sound_glass_defaults(), }) @@ -2101,10 +2094,6 @@ for i=0,3 do end end end - local creative = 1 - if i == 0 then - creative = 0 - end minetest.register_node("default:frosted_ice_"..i, { description = "Frosted Ice", drawtype = "glasslike", @@ -2113,7 +2102,7 @@ for i=0,3 do paramtype = "light", use_texture_alpha = true, stack_max = 64, - groups = {cracky=2, frosted_ice=1, not_in_creative_inventory=creative}, + groups = {cracky=2, frosted_ice=1, not_in_creative_inventory=1}, drop = "", sounds = default.node_sound_glass_defaults(), on_construct = function(pos) @@ -2150,7 +2139,7 @@ minetest.register_node("default:snow", { {-0.5, -0.5, -0.5, 0.5, -0.5+2/16, 0.5}, }, }, - groups = {crumbly=3,falling_node=1}, + groups = {crumbly=3,falling_node=1,deco_block=1}, sounds = default.node_sound_dirt_defaults({ footstep = {name="default_grass_footstep", gain=0.4}, }), @@ -2162,7 +2151,7 @@ minetest.register_node("default:snowblock", { tiles = {"default_snow.png"}, is_ground_content = true, stack_max = 64, - groups = {crumbly=3}, + groups = {crumbly=3,building_block=1}, sounds = default.node_sound_dirt_defaults({ footstep = {name="default_grass_footstep", gain=0.4}, }), @@ -2185,7 +2174,7 @@ minetest.register_node("default:cobweb", { liquid_renewable = false, liquid_range = 0, walkable = false, - groups = {snappy=1,liquid=3,flammable=2}, + groups = {snappy=1,liquid=3,flammable=2,deco_block=1}, drop = "default:string", }) diff --git a/mods/default/tools.lua b/mods/default/tools.lua index f769edb8b..bd6ae891a 100644 --- a/mods/default/tools.lua +++ b/mods/default/tools.lua @@ -36,6 +36,7 @@ minetest.register_item(":", { minetest.register_tool("default:pick_wood", { description = "Wooden Pickaxe", inventory_image = "default_tool_woodpick.png", + groups = { tool=1 }, tool_capabilities = { -- 1/1.2 full_punch_interval = 0.83333333, @@ -49,6 +50,7 @@ minetest.register_tool("default:pick_wood", { minetest.register_tool("default:pick_stone", { description = "Stone Pickaxe", inventory_image = "default_tool_stonepick.png", + groups = { tool=1 }, tool_capabilities = { -- 1/1.2 full_punch_interval = 0.83333333, @@ -62,6 +64,7 @@ minetest.register_tool("default:pick_stone", { minetest.register_tool("default:pick_steel", { description = "Iron Pickaxe", inventory_image = "default_tool_steelpick.png", + groups = { tool=1 }, tool_capabilities = { -- 1/1.2 full_punch_interval = 0.83333333, @@ -73,8 +76,9 @@ minetest.register_tool("default:pick_steel", { }, }) minetest.register_tool("default:pick_gold", { - description = "Gold Pickaxe", + description = "Golden Pickaxe", inventory_image = "default_tool_goldpick.png", + groups = { tool=1 }, tool_capabilities = { -- 1/1.2 full_punch_interval = 0.83333333, @@ -88,6 +92,7 @@ minetest.register_tool("default:pick_gold", { minetest.register_tool("default:pick_diamond", { description = "Diamond Pickaxe", inventory_image = "default_tool_diamondpick.png", + groups = { tool=1 }, tool_capabilities = { -- 1/1.2 full_punch_interval = 0.83333333, @@ -104,6 +109,7 @@ minetest.register_tool("default:shovel_wood", { description = "Wooden Shovel", inventory_image = "default_tool_woodshovel.png", wield_image = "default_tool_woodshovel.png^[transformR90", + groups = { tool=1 }, tool_capabilities = { full_punch_interval = 1, max_drop_level=0, @@ -117,6 +123,7 @@ minetest.register_tool("default:shovel_stone", { description = "Stone Shovel", inventory_image = "default_tool_stoneshovel.png", wield_image = "default_tool_stoneshovel.png^[transformR90", + groups = { tool=1 }, tool_capabilities = { full_punch_interval = 1, max_drop_level=0, @@ -130,6 +137,7 @@ minetest.register_tool("default:shovel_steel", { description = "Iron Shovel", inventory_image = "default_tool_steelshovel.png", wield_image = "default_tool_steelshovel.png^[transformR90", + groups = { tool=1 }, tool_capabilities = { full_punch_interval = 1, max_drop_level=1, @@ -140,9 +148,10 @@ minetest.register_tool("default:shovel_steel", { }, }) minetest.register_tool("default:shovel_gold", { - description = "Gold Shovel", + description = "Golden Shovel", inventory_image = "default_tool_goldshovel.png", wield_image = "default_tool_goldshovel.png^[transformR90", + groups = { tool=1 }, tool_capabilities = { full_punch_interval = 1, max_drop_level=0, @@ -156,6 +165,7 @@ minetest.register_tool("default:shovel_diamond", { description = "Diamond Shovel", inventory_image = "default_tool_diamondshovel.png", wield_image = "default_tool_diamondshovel.png^[transformR90", + groups = { tool=1 }, tool_capabilities = { full_punch_interval = 1, max_drop_level=1, @@ -170,6 +180,7 @@ minetest.register_tool("default:shovel_diamond", { minetest.register_tool("default:axe_wood", { description = "Wooden Axe", inventory_image = "default_tool_woodaxe.png", + groups = { tool=1 }, tool_capabilities = { full_punch_interval = 1.25, max_drop_level=0, @@ -182,6 +193,7 @@ minetest.register_tool("default:axe_wood", { minetest.register_tool("default:axe_stone", { description = "Stone Axe", inventory_image = "default_tool_stoneaxe.png", + groups = { tool=1 }, tool_capabilities = { full_punch_interval = 1.25, max_drop_level=0, @@ -194,6 +206,7 @@ minetest.register_tool("default:axe_stone", { minetest.register_tool("default:axe_steel", { description = "Iron Axe", inventory_image = "default_tool_steelaxe.png", + groups = { tool=1 }, tool_capabilities = { -- 1/0.9 full_punch_interval = 1.11111111, @@ -205,8 +218,9 @@ minetest.register_tool("default:axe_steel", { }, }) minetest.register_tool("default:axe_gold", { - description = "Gold Axe", + description = "Golden Axe", inventory_image = "default_tool_goldaxe.png", + groups = { tool=1 }, tool_capabilities = { full_punch_interval = 1.0, max_drop_level=0, @@ -219,6 +233,7 @@ minetest.register_tool("default:axe_gold", { minetest.register_tool("default:axe_diamond", { description = "Diamond Axe", inventory_image = "default_tool_diamondaxe.png", + groups = { tool=1 }, tool_capabilities = { full_punch_interval = 1.0, max_drop_level=1, @@ -233,6 +248,7 @@ minetest.register_tool("default:axe_diamond", { minetest.register_tool("default:sword_wood", { description = "Wooden Sword", inventory_image = "default_tool_woodsword.png", + groups = { weapon=1 }, tool_capabilities = { full_punch_interval = 0.625, max_drop_level=0, @@ -245,6 +261,7 @@ minetest.register_tool("default:sword_wood", { minetest.register_tool("default:sword_stone", { description = "Stone Sword", inventory_image = "default_tool_stonesword.png", + groups = { weapon=1 }, tool_capabilities = { full_punch_interval = 0.625, max_drop_level=0, @@ -257,6 +274,7 @@ minetest.register_tool("default:sword_stone", { minetest.register_tool("default:sword_steel", { description = "Iron Sword", inventory_image = "default_tool_steelsword.png", + groups = { weapon=1 }, tool_capabilities = { full_punch_interval = 0.625, max_drop_level=1, @@ -267,8 +285,9 @@ minetest.register_tool("default:sword_steel", { } }) minetest.register_tool("default:sword_gold", { - description = "Gold Sword", + description = "Golden Sword", inventory_image = "default_tool_goldsword.png", + groups = { weapon=1 }, tool_capabilities = { full_punch_interval = 0.625, max_drop_level=0, @@ -281,6 +300,7 @@ minetest.register_tool("default:sword_gold", { minetest.register_tool("default:sword_diamond", { description = "Diamond Sword", inventory_image = "default_tool_diamondsword.png", + groups = { weapon=1 }, tool_capabilities = { full_punch_interval = 0.625, max_drop_level=1, @@ -297,6 +317,7 @@ minetest.register_tool("default:flint_and_steel", { inventory_image = "default_tool_flint_and_steel.png", liquids_pointable = false, stack_max = 1, + groups = { tool = 1 }, tool_capabilities = { full_punch_interval = 1.0, max_drop_level=0, @@ -320,7 +341,7 @@ minetest.register_tool("default:flint_and_steel", { -- Fishing Pole minetest.register_tool("default:pole", { description = "Fishing Rod", - groups = {}, + groups = { tool=1 }, inventory_image = "default_tool_fishing_pole.png", stack_max = 1, liquids_pointable = true, @@ -418,6 +439,7 @@ minetest.register_tool("default:shears", { wield_image = "default_tool_shears.png", stack_max = 1, max_drop_level=3, + groups = { tool=1 }, tool_capabilities = { full_punch_interval = 0.5, max_drop_level=1, diff --git a/mods/dye/init.lua b/mods/dye/init.lua index bf7c6a28d..3c1dc6457 100644 --- a/mods/dye/init.lua +++ b/mods/dye/init.lua @@ -63,22 +63,22 @@ local dyelocal = {} -- This collection of colors is partly a historic thing, partly something else. dyelocal.dyes = { - {"white", "Bone Meal", {dye=1, basecolor_white=1, excolor_white=1, unicolor_white=1}}, - {"grey", "Light Grey Dye", {dye=1, basecolor_grey=1, excolor_grey=1, unicolor_grey=1}}, - {"dark_grey", "Grey Dye", {dye=1, basecolor_grey=1, excolor_darkgrey=1, unicolor_darkgrey=1}}, - {"black", "Ink Sac", {dye=1, basecolor_black=1, excolor_black=1, unicolor_black=1}}, - {"violet", "Violet Dye", {dye=1, basecolor_magenta=1, excolor_violet=1, unicolor_violet=1}}, - {"blue", "Lapis Lazuli", {dye=1, basecolor_blue=1, excolor_blue=1, unicolor_blue=1}}, - {"lightblue", "Light Blue Dye", {dye=1, basecolor_blue=1, excolor_blue=1, unicolor_light_blue=1}}, - {"cyan", "Cyan Dye", {dye=1, basecolor_cyan=1, excolor_cyan=1, unicolor_cyan=1}}, - {"dark_green", "Cactus Green",{dye=1, basecolor_green=1, excolor_green=1, unicolor_dark_green=1}}, - {"green", "Lime Dye", {dye=1, basecolor_green=1, excolor_green=1, unicolor_green=1}}, - {"yellow", "Dandelion Yellow", {dye=1, basecolor_yellow=1, excolor_yellow=1, unicolor_yellow=1}}, - {"brown", "Cocoa Beans", {dye=1, basecolor_yellow=1, excolor_orange=1, unicolor_dark_orange=1}}, - {"orange", "Orange Dye", {dye=1, basecolor_orange=1, excolor_orange=1, unicolor_orange=1}}, - {"red", "Rose Red", {dye=1, basecolor_red=1, excolor_red=1, unicolor_red=1}}, - {"magenta", "Magenta Dye", {dye=1, basecolor_magenta=1, excolor_red_violet=1,unicolor_red_violet=1}}, - {"pink", "Pink Dye", {dye=1, basecolor_red=1, excolor_red=1, unicolor_light_red=1}}, + {"white", "Bone Meal", {dye=1, craftitem=1, basecolor_white=1, excolor_white=1, unicolor_white=1}}, + {"grey", "Light Grey Dye", {dye=1, craftitem=1, basecolor_grey=1, excolor_grey=1, unicolor_grey=1}}, + {"dark_grey", "Grey Dye", {dye=1, craftitem=1, basecolor_grey=1, excolor_darkgrey=1, unicolor_darkgrey=1}}, + {"black", "Ink Sac", {dye=1, craftitem=1, basecolor_black=1, excolor_black=1, unicolor_black=1}}, + {"violet", "Violet Dye", {dye=1, craftitem=1, basecolor_magenta=1, excolor_violet=1, unicolor_violet=1}}, + {"blue", "Lapis Lazuli", {dye=1, craftitem=1, basecolor_blue=1, excolor_blue=1, unicolor_blue=1}}, + {"lightblue", "Light Blue Dye", {dye=1, craftitem=1, basecolor_blue=1, excolor_blue=1, unicolor_light_blue=1}}, + {"cyan", "Cyan Dye", {dye=1, craftitem=1, basecolor_cyan=1, excolor_cyan=1, unicolor_cyan=1}}, + {"dark_green", "Cactus Green",{dye=1, craftitem=1, basecolor_green=1, excolor_green=1, unicolor_dark_green=1}}, + {"green", "Lime Dye", {dye=1, craftitem=1, basecolor_green=1, excolor_green=1, unicolor_green=1}}, + {"yellow", "Dandelion Yellow", {dye=1, craftitem=1, basecolor_yellow=1, excolor_yellow=1, unicolor_yellow=1}}, + {"brown", "Cocoa Beans", {dye=1, craftitem=1, basecolor_yellow=1, excolor_orange=1, unicolor_dark_orange=1}}, + {"orange", "Orange Dye", {dye=1, craftitem=1, basecolor_orange=1, excolor_orange=1, unicolor_orange=1}}, + {"red", "Rose Red", {dye=1, craftitem=1, basecolor_red=1, excolor_red=1, unicolor_red=1}}, + {"magenta", "Magenta Dye", {dye=1, craftitem=1, basecolor_magenta=1, excolor_red_violet=1,unicolor_red_violet=1}}, + {"pink", "Pink Dye", {dye=1, craftitem=1, basecolor_red=1, excolor_red=1, unicolor_light_red=1}}, } -- Define items @@ -100,7 +100,7 @@ minetest.register_craftitem("dye:white", { inventory_image = "dye_white.png", description = "Bone Meal", stack_max = 64, - groups = {dye=1, basecolor_white=1, excolor_white=1, unicolor_white=1}, + groups = {dye=1, craftitem=1, basecolor_white=1, excolor_white=1, unicolor_white=1}, on_place = function(itemstack, user, pointed_thing) if(duengen(pointed_thing)) then itemstack:take_item() diff --git a/mods/farming/hoes.lua b/mods/farming/hoes.lua index 9023c811b..2d3f575da 100644 --- a/mods/farming/hoes.lua +++ b/mods/farming/hoes.lua @@ -32,6 +32,7 @@ minetest.register_tool("farming:hoe_wood", { return itemstack end end, + groups = { tool=1 }, tool_capabilities = { full_punch_interval = 1, damage_groups = { fleshy = 1, } @@ -71,6 +72,7 @@ minetest.register_tool("farming:hoe_stone", { return itemstack end end, + groups = { tool=1 }, tool_capabilities = { full_punch_interval = 0.5, damage_groups = { fleshy = 1, } @@ -105,6 +107,7 @@ minetest.register_tool("farming:hoe_steel", { return itemstack end end, + groups = { tool=1 }, tool_capabilities = { -- 1/3 full_punch_interval = 0.33333333, @@ -147,6 +150,7 @@ minetest.register_tool("farming:hoe_gold", { return itemstack end end, + groups = { tool=1 }, tool_capabilities = { full_punch_interval = 1, damage_groups = { fleshy = 1, } @@ -190,6 +194,7 @@ minetest.register_tool("farming:hoe_diamond", { return itemstack end end, + groups = { tool=1 }, tool_capabilities = { full_punch_interval = 0.25, damage_groups = { fleshy = 1, } diff --git a/mods/farming/melon.lua b/mods/farming/melon.lua index c6e4a48da..e1aaf5d0f 100644 --- a/mods/farming/melon.lua +++ b/mods/farming/melon.lua @@ -3,7 +3,7 @@ minetest.register_node("farming:melon", { paramtype2 = "facedir", stack_max = 64, tiles = {"farming_melon_top.png", "farming_melon_top.png", "farming_melon_side.png", "farming_melon_side.png", "farming_melon_side.png", "farming_melon_side.png"}, - groups = {choppy=2, oddly_breakable_by_hand=2}, + groups = {choppy=2, oddly_breakable_by_hand=2, building_block=1}, drop = { max_items = 1, items = { @@ -222,6 +222,7 @@ minetest.register_craftitem("farming:melon_item", { minetest.register_craftitem("farming:speckled_melon", { description = "Glistering Melon", stack_max = 64, + groups = { brewitem = 1 }, inventory_image = "farming_melon_speckled.png", }) diff --git a/mods/farming/mushrooms.lua b/mods/farming/mushrooms.lua index 414ace3a7..f789de4b4 100644 --- a/mods/farming/mushrooms.lua +++ b/mods/farming/mushrooms.lua @@ -7,7 +7,7 @@ minetest.register_node("farming:mushroom_brown", { sunlight_propagates = true, paramtype = "light", walkable = false, - groups = {dig_immediate=3,flammable=2,mushroom=1,attached_node=1,dig_by_water=1}, + groups = {dig_immediate=3,flammable=2,mushroom=1,attached_node=1,dig_by_water=1,deco_block=1}, sounds = default.node_sound_leaves_defaults(), light_source = 1, selection_box = { @@ -25,7 +25,7 @@ minetest.register_node("farming:mushroom_red", { sunlight_propagates = true, paramtype = "light", walkable = false, - groups = {dig_immediate=3,flammable=2,mushroom=1,attached_node=1,dig_by_water=1}, + groups = {dig_immediate=3,flammable=2,mushroom=1,attached_node=1,dig_by_water=1,deco_block=1}, sounds = default.node_sound_leaves_defaults(), selection_box = { type = "fixed", diff --git a/mods/farming/pumpkin.lua b/mods/farming/pumpkin.lua index 350a87688..4350710a4 100644 --- a/mods/farming/pumpkin.lua +++ b/mods/farming/pumpkin.lua @@ -55,7 +55,7 @@ minetest.register_node("farming:pumpkin_face", { stack_max = 64, paramtype2 = "facedir", tiles = {"farming_pumpkin_top.png", "farming_pumpkin_top.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_face.png"}, - groups = {choppy=2, oddly_breakable_by_hand=2, flammable=2}, + groups = {choppy=2, oddly_breakable_by_hand=2, flammable=2, building_block=1}, after_dig_node = function(pos, oldnode, oldmetadata, user) local have_change = 0 for x=-1,1 do @@ -273,7 +273,7 @@ minetest.register_node("farming:pumpkin_face_light", { paramtype2 = "facedir", light_source = 14, tiles = {"farming_pumpkin_top.png", "farming_pumpkin_top.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_face_light.png"}, - groups = {choppy=2, oddly_breakable_by_hand=2, flammable=2}, + groups = {choppy=2, oddly_breakable_by_hand=2, flammable=2, building_block=1}, sounds = default.node_sound_wood_defaults(), }) diff --git a/mods/farming/wheat.lua b/mods/farming/wheat.lua index 89f2d6ae1..a7a10990d 100644 --- a/mods/farming/wheat.lua +++ b/mods/farming/wheat.lua @@ -127,6 +127,7 @@ farming:add_plant("farming:wheat", {"farming:wheat_1", "farming:wheat_2", "farmi minetest.register_craftitem("farming:wheat_harvested", { description = "Wheat", inventory_image = "farming_wheat_harvested.png", + groups = { craftitem = 1 }, }) minetest.register_craft({ diff --git a/mods/fire/init.lua b/mods/fire/init.lua index 0a22b78cd..dd3026d16 100644 --- a/mods/fire/init.lua +++ b/mods/fire/init.lua @@ -9,7 +9,7 @@ minetest.register_node("fire:basic_flame", { }}, inventory_image = "fire_basic_flame.png", light_source = 14, - groups = {igniter=2,dig_immediate=3,dig_by_water=1}, + groups = {igniter=2,dig_immediate=3,dig_by_water=1,not_in_creative_inventory=1}, drop = '', walkable = false, buildable_to = true, diff --git a/mods/flowers/init.lua b/mods/flowers/init.lua index 75f05138f..3e909c25c 100644 --- a/mods/flowers/init.lua +++ b/mods/flowers/init.lua @@ -26,7 +26,7 @@ local function add_simple_flower(name, desc, image, color) paramtype = "light", walkable = false, stack_max = 64, - groups = {dig_immediate=3,flammable=2,flower=1,attached_node=1,dig_by_water=1,color=1}, + groups = {dig_immediate=3,flammable=2,flower=1,attached_node=1,dig_by_water=1,color=1,deco_block=1}, sounds = default.node_sound_leaves_defaults(), buildable_to = true, selection_box = { @@ -51,7 +51,7 @@ minetest.register_node("flowers:tulip_pink", { paramtype = "light", walkable = false, stack_max = 64, - groups = {dig_immediate=3,flammable=2,flower=1,attached_node=1,color_pink=1,dig_by_water=1}, + groups = {dig_immediate=3,flammable=2,flower=1,attached_node=1,color_pink=1,dig_by_water=1,deco_block=1}, buildable_to = true, sounds = default.node_sound_leaves_defaults(), selection_box = { @@ -70,7 +70,7 @@ minetest.register_node("flowers:tulip_red", { paramtype = "light", walkable = false, stack_max = 64, - groups = {dig_immediate=3,flammable=2,flower=1,attached_node=1,color_red=1,dig_by_water=1}, + groups = {dig_immediate=3,flammable=2,flower=1,attached_node=1,color_red=1,dig_by_water=1,deco_block=1}, buildable_to = true, sounds = default.node_sound_leaves_defaults(), selection_box = { @@ -90,7 +90,7 @@ minetest.register_node("flowers:tulip_white", { paramtype = "light", walkable = false, stack_max = 64, - groups = {dig_immediate=3,flammable=2,flower=1,attached_node=1,color_white=1,dig_by_water=1}, + groups = {dig_immediate=3,flammable=2,flower=1,attached_node=1,color_white=1,dig_by_water=1,deco_block=1}, buildable_to = true, sounds = default.node_sound_leaves_defaults(), selection_box = { @@ -112,7 +112,7 @@ minetest.register_node("flowers:allium", { paramtype = "light", walkable = false, stack_max = 64, - groups = {dig_immediate=3,flammable=2,flower=1,attached_node=1,color_pink=1,dig_by_water=1}, + groups = {dig_immediate=3,flammable=2,flower=1,attached_node=1,color_pink=1,dig_by_water=1,deco_block=1}, buildable_to = true, sounds = default.node_sound_leaves_defaults(), selection_box = { @@ -133,7 +133,7 @@ minetest.register_node("flowers:peony", { paramtype = "light", walkable = false, stack_max = 64, - groups = {dig_immediate=3,flammable=2,flower=1,attached_node=1,color_pink=1,dig_by_water=1}, + groups = {dig_immediate=3,flammable=2,flower=1,attached_node=1,color_pink=1,dig_by_water=1,deco_block=1}, buildable_to = true, sounds = default.node_sound_leaves_defaults(), selection_box = { @@ -155,7 +155,7 @@ minetest.register_node("flowers:azure_bluet", { paramtype = "light", walkable = false, stack_max = 64, - groups = {dig_immediate=3,flammable=2,flower=1,attached_node=1,color_white=1,dig_by_water=1}, + groups = {dig_immediate=3,flammable=2,flower=1,attached_node=1,color_white=1,dig_by_water=1,deco_block=1}, buildable_to = true, sounds = default.node_sound_leaves_defaults(), selection_box = { @@ -176,7 +176,7 @@ minetest.register_node("flowers:blue_orchid", { paramtype = "light", walkable = false, stack_max = 64, - groups = {dig_immediate=3,flammable=2,flower=1,attached_node=1,color_blue=1,dig_by_water=1}, + groups = {dig_immediate=3,flammable=2,flower=1,attached_node=1,color_blue=1,dig_by_water=1,deco_block=1}, buildable_to = true, sounds = default.node_sound_leaves_defaults(), selection_box = { @@ -197,7 +197,7 @@ minetest.register_node("flowers:fern", { paramtype = "light", walkable = false, stack_max = 64, - groups = {dig_immediate=3,flammable=2,flower=1,attached_node=1,dig_by_water=1}, + groups = {dig_immediate=3,flammable=2,flower=1,attached_node=1,dig_by_water=1,deco_block=1}, buildable_to = true, sounds = default.node_sound_leaves_defaults(), selection_box = { @@ -246,7 +246,7 @@ function register_large(name, desc, inv_img, bot_img, colr) --change in function end, ]] drop = "flowers:"..name, - groups = {dig_immediate=3,flammable=2,flower=1,attached_node=1,colr=1, dig_by_water=1, double_bottom =1}, + groups = {dig_immediate=3,flammable=2,flower=1,attached_node=1,colr=1, dig_by_water=1, double_bottom =1,deco_block=1,deco_block=1}, sounds = default.node_sound_leaves_defaults(), selection_box = { type = "fixed", @@ -295,7 +295,7 @@ minetest.register_node("flowers:pot",{ tiles = {"flowers_pot_top.png", "flowers_pot_bottom.png", "flowers_pot_top.png"}, inventory_image="flowers_pot_inventory.png", paramtype = "light", - groups = {dig_immediate=3}, + groups = {dig_immediate=3,deco_block=1}, stack_max = 16, sounds = default.node_sound_defaults(), after_place_node = function(pos, placer, itemstack) @@ -343,7 +343,7 @@ minetest.register_node("flowers:waterlily", { liquids_pointable = true, walkable = true, sunlight_propagates = true, - groups = {dig_immediate = 3, dig_by_water = 1, }, + groups = {dig_immediate = 3, dig_by_water = 1, deco_block=1}, sounds = default.node_sound_leaves_defaults(), node_placement_prediction = "", node_box = { diff --git a/mods/gemalde/init.lua b/mods/gemalde/init.lua index 2434f53cb..e10cdf956 100644 --- a/mods/gemalde/init.lua +++ b/mods/gemalde/init.lua @@ -18,7 +18,7 @@ for n=1, N do local groups = {choppy=2, dig_immediate=3, picture=1, not_in_creative_inventory=1} if n == 1 then - groups = {choppy=2, dig_immediate=3, picture=1} + groups = {choppy=2, dig_immediate=3, picture=1, deco_block=1} end -- inivisible node diff --git a/mods/hardened_clay/init.lua b/mods/hardened_clay/init.lua index 56972cbc6..37b0d25d8 100644 --- a/mods/hardened_clay/init.lua +++ b/mods/hardened_clay/init.lua @@ -24,7 +24,7 @@ minetest.register_node("hardened_clay:hardened_clay", { description = "Hardened Clay", tiles = {"hardened_clay.png"}, stack_max = 64, - groups = {cracky=3}, + groups = {cracky=3,hardened_clay=1,building_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -44,7 +44,7 @@ for _, row in ipairs(clay.dyes) do minetest.register_node("hardened_clay:"..name, { description = desc.." Hardened Clay", tiles = {"hardened_clay_stained_"..name..".png"}, - groups = {cracky=3,hardened_clay=1}, + groups = {cracky=3,hardened_clay=1,building_block=1}, stack_max = 64, sounds = default.node_sound_stone_defaults(), }) diff --git a/mods/head/init.lua b/mods/head/init.lua index e8180006b..a463cb0c0 100644 --- a/mods/head/init.lua +++ b/mods/head/init.lua @@ -11,7 +11,7 @@ local function addhead(node, desc) { -0.25, -0.5, -0.25, 0.25, 0.0, 0.25, }, }, }, - groups = {oddly_breakable_by_hand=3, head=1}, + groups = {oddly_breakable_by_hand=3, head=1, deco_block=1}, tiles = { "head_"..node.."_top.png", "head_"..node.."_top.png", diff --git a/mods/itemframes/init.lua b/mods/itemframes/init.lua index b74adc2f2..ca81400bb 100644 --- a/mods/itemframes/init.lua +++ b/mods/itemframes/init.lua @@ -99,7 +99,7 @@ minetest.register_node("itemframes:frame",{ paramtype = "light", paramtype2 = "facedir", sunlight_propagates = true, - groups = { choppy=2,dig_immediate=2 }, + groups = { choppy=2,dig_immediate=2,deco_block=1}, sounds = default.node_sound_defaults(), after_place_node = function(pos, placer, itemstack) local meta = minetest.get_meta(pos) diff --git a/mods/mcl_boats/init.lua b/mods/mcl_boats/init.lua index 3e32f6f42..61efa729e 100644 --- a/mods/mcl_boats/init.lua +++ b/mods/mcl_boats/init.lua @@ -145,7 +145,7 @@ for w=1, #woods do description = names[w], inventory_image = "mcl_boats_inventory.png", liquids_pointable = true, - groups = { boat = 1, }, + groups = { boat = 1, transport = 1}, stack_max = 1, on_place = function(itemstack, placer, pointed_thing) if pointed_thing.type ~= "node" then diff --git a/mods/mcl_clock/init.lua b/mods/mcl_clock/init.lua index 779050b37..29670d572 100644 --- a/mods/mcl_clock/init.lua +++ b/mods/mcl_clock/init.lua @@ -31,7 +31,7 @@ function watch.register_item(name, image, creative) minetest.register_tool(name, { description = "Clock", inventory_image = image, - groups = {not_in_creative_inventory=g, clock=1}, + groups = {not_in_creative_inventory=g, tool=1, clock=1}, wield_image = "", stack_max = 1, }) @@ -73,9 +73,7 @@ end) -- Clock recipe minetest.register_craft({ - description = "Clock", output = 'mcl_clock:clock', - groups = {not_in_creative_inventory=1}, recipe = { {'', 'default:gold_ingot', ''}, {'default:gold_ingot', 'mesecons:redstone', 'default:gold_ingot'}, diff --git a/mods/mcl_compass/init.lua b/mods/mcl_compass/init.lua index c159fe14a..f013e020e 100644 --- a/mods/mcl_compass/init.lua +++ b/mods/mcl_compass/init.lua @@ -50,7 +50,7 @@ for i,img in ipairs(images) do inventory_image = img, wield_image = img, stack_max = 1, - groups = {not_in_creative_inventory=inv,compass=i} + groups = {not_in_creative_inventory=inv,compass=i,tool=1} }) end diff --git a/mods/mcl_end/init.lua b/mods/mcl_end/init.lua index 66dbbb555..7cb0e638e 100644 --- a/mods/mcl_end/init.lua +++ b/mods/mcl_end/init.lua @@ -2,7 +2,7 @@ minetest.register_node("mcl_end:end_stone", { description = "End Stone", tiles = {"mcl_end_end_stone.png"}, stack_max = 64, - groups = {cracky=2}, + groups = {cracky=2,building_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -11,7 +11,7 @@ minetest.register_node("mcl_end:end_bricks", { tiles = {"mcl_end_end_stone_brick.png"}, is_ground_content = false, stack_max = 64, - groups = {cracky=3}, + groups = {cracky=3,building_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -20,7 +20,7 @@ minetest.register_node("mcl_end:purpur_block", { tiles = {"mcl_end_purpur_block.png"}, is_ground_content = false, stack_max = 64, - groups = {cracky=3}, + groups = {cracky=3,building_block=1}, sounds = default.node_sound_stone_defaults(), }) @@ -30,7 +30,7 @@ minetest.register_node("mcl_end:purpur_pillar", { paramtype2 = "facedir", is_ground_content = false, tiles = {"mcl_end_purpur_pillar_top.png", "mcl_end_purpur_pillar_top.png", "mcl_end_purpur_pillar.png"}, - groups = {cracky=3}, + groups = {cracky=3,building_block=1}, sounds = default.node_sound_stone_defaults(), }) diff --git a/mods/mcl_fences/init.lua b/mods/mcl_fences/init.lua index d514a54ec..aeb6aa23c 100644 --- a/mods/mcl_fences/init.lua +++ b/mods/mcl_fences/init.lua @@ -22,6 +22,7 @@ mcl_fences = {} mcl_fences.register_fence = function(id, fence_name, fence_gate_name, texture, fence_image, gate_image, groups, connects_to, sounds) if groups == nil then groups = {} end groups.fence = 1 + groups.deco_block = 1 if connects_to == nil then connects_to = {} end table.insert(connects_to, "group:solid") table.insert(connects_to, "group:fence") diff --git a/mods/mcl_jukebox/init.lua b/mods/mcl_jukebox/init.lua index 872378381..42743bba0 100644 --- a/mods/mcl_jukebox/init.lua +++ b/mods/mcl_jukebox/init.lua @@ -77,7 +77,7 @@ minetest.register_node("mcl_jukebox:jukebox", { description = "Jukebox", tiles = {"mcl_jukebox_top.png", "mcl_jukebox_side.png", "mcl_jukebox_side.png"}, sounds = default.node_sound_wood_defaults(), - groups = {oddly_breakable_by_hand=1, flammable=1, choppy=3}, + groups = {oddly_breakable_by_hand=1, flammable=1, choppy=3, deco_block=1}, on_construct = function(pos) local meta = minetest.get_meta(pos) local inv = meta:get_inventory() diff --git a/mods/mcl_minecarts/init.lua b/mods/mcl_minecarts/init.lua index 7e24d24ab..3931069c1 100644 --- a/mods/mcl_minecarts/init.lua +++ b/mods/mcl_minecarts/init.lua @@ -276,7 +276,7 @@ minetest.register_craftitem("mcl_minecarts:minecart", { itemstack:take_item() return itemstack end, - groups = { minecart = 1 }, + groups = { minecart = 1, transport = 1}, }) minetest.register_craft({ diff --git a/mods/mcl_minecarts/rails.lua b/mods/mcl_minecarts/rails.lua index 2a93e0ed0..4310444a1 100644 --- a/mods/mcl_minecarts/rails.lua +++ b/mods/mcl_minecarts/rails.lua @@ -14,7 +14,7 @@ minetest.register_node("mcl_minecarts:golden_rail", { -- but how to specify the dimensions for curved and sideways rails? fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2}, }, - groups = {dig_immediate = 2, attached_node = 1, rail = 1, connect_to_raillike = 1, dig_by_water = 1}, + groups = {dig_immediate = 2, attached_node = 1, rail = 1, connect_to_raillike = 1, dig_by_water = 1, transport = 1}, after_place_node = function(pos, placer, itemstack) if not mesecon then diff --git a/mods/mcl_mobitems/init.lua b/mods/mcl_mobitems/init.lua index e20442b40..c2edccb26 100644 --- a/mods/mcl_mobitems/init.lua +++ b/mods/mcl_mobitems/init.lua @@ -124,6 +124,7 @@ minetest.register_craftitem("mcl_mobitems:blaze_rod", { description = "Blaze Rod", wield_image = "mcl_mobitems_blaze_rod.png", inventory_image = "mcl_mobitems_blaze_rod.png", + groups = { craftitem = 1 }, stack_max = 64, }) @@ -131,6 +132,7 @@ minetest.register_craftitem("mcl_mobitems:blaze_powder", { description = "Blaze Powder", wield_image = "mcl_mobitems_blaze_powder.png", inventory_image = "mcl_mobitems_blaze_powder.png", + groups = { brewitem = 1 }, stack_max = 64, }) @@ -138,6 +140,7 @@ minetest.register_craftitem("mcl_mobitems:magma_cream", { description = "Magma Cream", wield_image = "mcl_mobitems_magma_cream.png", inventory_image = "mcl_mobitems_magma_cream.png", + groups = { craftitem = 1 }, stack_max = 64, }) @@ -145,6 +148,7 @@ minetest.register_craftitem("mcl_mobitems:ghast_tear", { description = "Ghast Tear", wield_image = "mcl_mobitems_ghast_tear.png", inventory_image = "mcl_mobitems_ghast_tear.png", + groups = { brewitem = 1 }, stack_max = 64, }) @@ -152,6 +156,7 @@ minetest.register_craftitem("mcl_mobitems:nether_star", { description = "Nether Star", wield_image = "mcl_mobitems_nether_star.png", inventory_image = "mcl_mobitems_nether_star.png", + groups = { craftitem = 1 }, stack_max = 64, }) @@ -159,6 +164,7 @@ minetest.register_craftitem("mcl_mobitems:leather", { description = "Leather", wield_image = "mcl_mobitems_leather.png", inventory_image = "mcl_mobitems_leather.png", + groups = { craftitem = 1 }, stack_max = 64, }) @@ -166,6 +172,7 @@ minetest.register_craftitem("mcl_mobitems:feather", { description = "Feather", wield_image = "mcl_mobitems_feather.png", inventory_image = "mcl_mobitems_feather.png", + groups = { craftitem = 1 }, stack_max = 64, }) @@ -173,6 +180,7 @@ minetest.register_craftitem("mcl_mobitems:rabbit_hide", { description = "Rabbit Hide", wield_image = "mcl_mobitems_rabbit_hide.png", inventory_image = "mcl_mobitems_rabbit_hide.png", + groups = { craftitem = 1 }, stack_max = 64, }) @@ -180,6 +188,7 @@ minetest.register_craftitem("mcl_mobitems:rabbit_foot", { description = "Rabbit's Foot", wield_image = "mcl_mobitems_rabbit_foot.png", inventory_image = "mcl_mobitems_rabbit_foot.png", + groups = { craftitem = 1 }, stack_max = 64, }) diff --git a/mods/mcl_potions/init.lua b/mods/mcl_potions/init.lua index 7e03e35de..5bb5ab678 100644 --- a/mods/mcl_potions/init.lua +++ b/mods/mcl_potions/init.lua @@ -2,6 +2,7 @@ minetest.register_craftitem("mcl_potions:fermented_spider_eye", { description = "Fermented Spider Eye", wield_image = "mcl_potions_spider_eye_fermented.png", inventory_image = "mcl_potions_spider_eye_fermented.png", + groups = { brewitem = 1 }, stack_max = 64, }) diff --git a/mods/mcl_throwing/init.lua b/mods/mcl_throwing/init.lua index 1f700c61c..855c45118 100644 --- a/mods/mcl_throwing/init.lua +++ b/mods/mcl_throwing/init.lua @@ -39,7 +39,7 @@ minetest.register_tool("mcl_throwing:bow", { itemstack:add_wear(wear) return itemstack end, - groups = {weapon_ranged=1,}, + groups = {weapon=1,weapon_ranged=1}, on_use = function(itemstack, user, pointed_thing) local wear = itemstack:get_wear() itemstack:add_wear(wear) diff --git a/mods/minetest-3d_armor/3d_armor_stand/init.lua b/mods/minetest-3d_armor/3d_armor_stand/init.lua index 702da0f38..6369fb561 100644 --- a/mods/minetest-3d_armor/3d_armor_stand/init.lua +++ b/mods/minetest-3d_armor/3d_armor_stand/init.lua @@ -94,7 +94,7 @@ minetest.register_node("3d_armor_stand:armor_stand", { type = "fixed", fixed = {-0.5,-0.5,-0.5, 0.5,1.4,0.5} }, - groups = {choppy=2, oddly_breakable_by_hand=2}, + groups = {choppy=2, oddly_breakable_by_hand=2, deco_block=1}, sounds = default.node_sound_wood_defaults(), on_construct = function(pos) local meta = minetest.get_meta(pos) diff --git a/mods/mobs/crafts.lua b/mods/mobs/crafts.lua index 1d26df3a8..6146ebf30 100644 --- a/mods/mobs/crafts.lua +++ b/mods/mobs/crafts.lua @@ -5,5 +5,8 @@ local S = mobs.intllib minetest.register_craftitem("mobs:nametag", { description = S("Name Tag"), inventory_image = "mobs_nametag.png", + wield_image = "mobs_nametag.png", + stack_max = 64, + groups = { tool=1 }, }) diff --git a/mods/signs/init.lua b/mods/signs/init.lua index 7e19533e7..c7c17fc69 100644 --- a/mods/signs/init.lua +++ b/mods/signs/init.lua @@ -32,7 +32,7 @@ local signs_yard = { {delta = {x = 0.05, y = 0, z = 0}, yaw = math.pi / 2}, } -local sign_groups = {choppy=2, dig_immediate=2} +local sign_groups = {choppy=2, dig_immediate=2, deco_block=1} local construct_sign = function(pos) local meta = minetest.get_meta(pos) @@ -167,7 +167,7 @@ minetest.register_node("signs:sign_yard", { }}, selection_box = {type = "fixed", fixed = {-0.45, -0.15, -0.049, 0.45, 0.45, 0.049}}, tiles = {"signs_top.png", "signs_bottom.png", "signs_side.png", "signs_side.png", "signs_back.png", "signs_front.png"}, - groups = {choppy=2, dig_immediate=2}, + groups = {choppy=2, dig_immediate=2, deco_block=1}, drop = "signs:sign_wall", stack_max = 16, diff --git a/mods/stairs/init.lua b/mods/stairs/init.lua index 6e5de63b7..cea3a0d47 100644 --- a/mods/stairs/init.lua +++ b/mods/stairs/init.lua @@ -11,6 +11,7 @@ stairs = {} function stairs.register_stair(subname, recipeitem, groups, images, description, sounds) groups.stair = 1 + groups.building_block = 1 minetest.register_node(":stairs:stair_" .. subname, { description = description, drawtype = "mesh", @@ -100,6 +101,7 @@ local slab_trans_dir_place = {[0] = 0, 20, 12, 16, 4, 8} function stairs.register_slab(subname, recipeitem, groups, images, description, sounds) groups.slab = 1 + groups.building_block = 1 minetest.register_node(":stairs:slab_" .. subname, { description = description, drawtype = "nodebox", diff --git a/mods/torches/init.lua b/mods/torches/init.lua index b5e0f5ff5..aec62bd6b 100644 --- a/mods/torches/init.lua +++ b/mods/torches/init.lua @@ -19,7 +19,7 @@ minetest.register_node(":default:torch", { walkable = false, liquids_pointable = false, light_source = 13, - groups = {choppy=2, dig_immediate=3, flammable=1, attached_node=1, torch=1, dig_by_water=1,}, + groups = {choppy=2, dig_immediate=3, flammable=1, attached_node=1, torch=1, dig_by_water=1, deco_block=1}, drop = "default:torch", selection_box = { type = "wallmounted", diff --git a/mods/vessels/init.lua b/mods/vessels/init.lua index 5ebed8fd9..4d3722517 100644 --- a/mods/vessels/init.lua +++ b/mods/vessels/init.lua @@ -14,7 +14,7 @@ minetest.register_node("vessels:glass_bottle", { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25} }, - groups = {vessel=1,dig_immediate=3,attached_node=1}, + groups = {vessel=1,dig_immediate=3,attached_node=1,brewitem=1}, sounds = default.node_sound_glass_defaults(), }) diff --git a/mods/wallet/init.lua b/mods/wallet/init.lua index c9fa8e255..12442e27f 100644 --- a/mods/wallet/init.lua +++ b/mods/wallet/init.lua @@ -111,7 +111,7 @@ local function register_wall(nodename, name, texture, invtex) is_ground_content = false, tiles = {texture}, paramtype = "light", - groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3,wall=1}, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3,wall=1,not_in_creative_inventory=1}, drop = nodename, node_box = { type = "fixed", @@ -130,7 +130,7 @@ local function register_wall(nodename, name, texture, invtex) tiles = {texture}, paramtype = "light", is_ground_content = false, - groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3,wall=1}, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3,wall=1,not_in_creative_inventory=1}, drop = nodename, node_box = { type = "fixed", @@ -148,7 +148,7 @@ local function register_wall(nodename, name, texture, invtex) tiles = {texture}, paramtype = "light", is_ground_content = false, - groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3,wall=1}, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3,wall=1,not_in_creative_inventory=1}, drop = nodename, node_box = { type = "fixed", @@ -162,6 +162,7 @@ local function register_wall(nodename, name, texture, invtex) description = name, paramtype = "light", is_ground_content = false, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3,wall=1,deco_block=1}, tiles = {texture}, inventory_image = invtex, stack_max = 64, diff --git a/mods/wool/init.lua b/mods/wool/init.lua index 98d93d73b..90bb219bd 100644 --- a/mods/wool/init.lua +++ b/mods/wool/init.lua @@ -38,7 +38,7 @@ for _, row in ipairs(wool.dyes) do stack_max = 64, is_ground_content = false, tiles = {"wool_"..texture..".png"}, - groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=1,wool=1}, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=1,wool=1,building_block=1}, sounds = default.node_sound_defaults(), }) minetest.register_node("wool:"..name.."_carpet", { @@ -47,7 +47,7 @@ for _, row in ipairs(wool.dyes) do is_ground_content = false, tiles = {"wool_"..texture..".png"}, wield_image = "wool_"..name..".png", - groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=1,carpet=1}, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=1,carpet=1,deco_block=1}, sounds = default.node_sound_defaults(), paramtype = "light", stack_max = 64, diff --git a/mods/xpanes/init.lua b/mods/xpanes/init.lua index 5f401f06b..4b48c16bd 100644 --- a/mods/xpanes/init.lua +++ b/mods/xpanes/init.lua @@ -91,6 +91,7 @@ function xpanes.register_pane(name, def) local flatgroups = table.copy(def.groups) flatgroups.pane = 1 + flatgroups.deco_block = 1 minetest.register_node(":xpanes:" .. name .. "_flat", { description = def.description, drawtype = "nodebox",