From c0f6395cf09f658eb95365c60f67b8a89104cb23 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Wed, 16 Nov 2011 13:03:28 +0200 Subject: Node definition names --- src/content_mapnode.cpp | 1093 +++++++++++++++++++++++++---------------------- 1 file changed, 591 insertions(+), 502 deletions(-) (limited to 'src/content_mapnode.cpp') diff --git a/src/content_mapnode.cpp b/src/content_mapnode.cpp index b836cb493..fdb75d468 100644 --- a/src/content_mapnode.cpp +++ b/src/content_mapnode.cpp @@ -24,6 +24,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "content_nodemeta.h" #include "nodedef.h" #include "utility.h" +#include "nameidmapping.h" #define WATER_ALPHA 160 @@ -154,577 +155,665 @@ MapNode mapnode_translate_to_internal(MapNode n_from, u8 version) return result; } +void content_mapnode_get_name_id_mapping(NameIdMapping *nimap) +{ + nimap->set(0, "stone"); + nimap->set(2, "water_flowing"); + nimap->set(3, "torch"); + nimap->set(9, "water_source"); + nimap->set(14, "sign_wall"); + nimap->set(15, "chest"); + nimap->set(16, "furnace"); + nimap->set(17, "locked_chest"); + nimap->set(21, "wooden_fence"); + nimap->set(30, "rail"); + nimap->set(31, "ladder"); + nimap->set(32, "lava_flowing"); + nimap->set(33, "lava_source"); + nimap->set(0x800, "dirt_with_grass"); + nimap->set(0x801, "tree"); + nimap->set(0x802, "leaves"); + nimap->set(0x803, "dirt_with_grass_footsteps"); + nimap->set(0x804, "mese"); + nimap->set(0x805, "dirt"); + nimap->set(0x806, "cloud"); + nimap->set(0x807, "coalstone"); + nimap->set(0x808, "wood"); + nimap->set(0x809, "sand"); + nimap->set(0x80a, "cobble"); + nimap->set(0x80b, "steel"); + nimap->set(0x80c, "glass"); + nimap->set(0x80d, "mossycobble"); + nimap->set(0x80e, "gravel"); + nimap->set(0x80f, "sandstone"); + nimap->set(0x810, "cactus"); + nimap->set(0x811, "brick"); + nimap->set(0x812, "clay"); + nimap->set(0x813, "papyrus"); + nimap->set(0x814, "bookshelf"); + nimap->set(0x815, "jungletree"); + nimap->set(0x816, "junglegrass"); + nimap->set(0x817, "nyancat"); + nimap->set(0x818, "nyancat_rainbow"); + nimap->set(0x819, "apple"); + nimap->set(0x820, "sapling"); + // Static types + nimap->set(CONTENT_IGNORE, "ignore"); + nimap->set(CONTENT_AIR, "air"); +} + // See header for description void content_mapnode_init(IWritableNodeDefManager *nodemgr) { content_t i; - ContentFeatures *f = NULL; + ContentFeatures f; i = CONTENT_STONE; - f = nodemgr->getModifiable(i); - f->name = "stone"; - f->setAllTextures("stone.png"); - f->setInventoryTextureCube("stone.png", "stone.png", "stone.png"); - f->param_type = CPT_MINERAL; - f->is_ground_content = true; - f->often_contains_mineral = true; - f->dug_item = std::string("MaterialItem2 ")+itos(CONTENT_COBBLE)+" 1"; - setStoneLikeMaterialProperties(f->material, 1.0); - + f = ContentFeatures(); + f.name = "stone"; + f.setAllTextures("stone.png"); + f.setInventoryTextureCube("stone.png", "stone.png", "stone.png"); + f.param_type = CPT_MINERAL; + f.is_ground_content = true; + f.often_contains_mineral = true; + f.dug_item = std::string("MaterialItem2 ")+itos(CONTENT_COBBLE)+" 1"; + setStoneLikeMaterialProperties(f.material, 1.0); + nodemgr->set(i, f); + i = CONTENT_GRASS; - f = nodemgr->getModifiable(i); - f->name = "grass"; - f->setAllTextures("mud.png^grass_side.png"); - f->setTexture(0, "grass.png"); - f->setTexture(1, "mud.png"); - f->param_type = CPT_MINERAL; - f->is_ground_content = true; - f->dug_item = std::string("MaterialItem2 ")+itos(CONTENT_MUD)+" 1"; - setDirtLikeMaterialProperties(f->material, 1.0); - + f = ContentFeatures(); + f.name = "dirt_with_grass"; + f.setAllTextures("mud.png^grass_side.png"); + f.setTexture(0, "grass.png"); + f.setTexture(1, "mud.png"); + f.param_type = CPT_MINERAL; + f.is_ground_content = true; + f.dug_item = std::string("MaterialItem2 ")+itos(CONTENT_MUD)+" 1"; + setDirtLikeMaterialProperties(f.material, 1.0); + nodemgr->set(i, f); + i = CONTENT_GRASS_FOOTSTEPS; - f = nodemgr->getModifiable(i); - f->name = "grass_footsteps"; - f->setAllTextures("mud.png^grass_side.png"); - f->setTexture(0, "grass_footsteps.png"); - f->setTexture(1, "mud.png"); - f->param_type = CPT_MINERAL; - f->is_ground_content = true; - f->dug_item = std::string("MaterialItem2 ")+itos(CONTENT_MUD)+" 1"; - setDirtLikeMaterialProperties(f->material, 1.0); - + f = ContentFeatures(); + f.name = "dirt_with_grass_footsteps"; + f.setAllTextures("mud.png^grass_side.png"); + f.setTexture(0, "grass_footsteps.png"); + f.setTexture(1, "mud.png"); + f.param_type = CPT_MINERAL; + f.is_ground_content = true; + f.dug_item = std::string("MaterialItem2 ")+itos(CONTENT_MUD)+" 1"; + setDirtLikeMaterialProperties(f.material, 1.0); + nodemgr->set(i, f); + i = CONTENT_MUD; - f = nodemgr->getModifiable(i); - f->name = "dirt"; - f->setAllTextures("mud.png"); - f->setInventoryTextureCube("mud.png", "mud.png", "mud.png"); - f->param_type = CPT_MINERAL; - f->is_ground_content = true; - f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; - setDirtLikeMaterialProperties(f->material, 1.0); - + f = ContentFeatures(); + f.name = "dirt"; + f.setAllTextures("mud.png"); + f.setInventoryTextureCube("mud.png", "mud.png", "mud.png"); + f.param_type = CPT_MINERAL; + f.is_ground_content = true; + f.dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; + setDirtLikeMaterialProperties(f.material, 1.0); + nodemgr->set(i, f); + i = CONTENT_SAND; - f = nodemgr->getModifiable(i); - f->name = "sand"; - f->setAllTextures("sand.png"); - f->setInventoryTextureCube("sand.png", "sand.png", "sand.png"); - f->param_type = CPT_MINERAL; - f->is_ground_content = true; - f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; - f->cookresult_item = std::string("MaterialItem2 ")+itos(CONTENT_GLASS)+" 1"; - setDirtLikeMaterialProperties(f->material, 1.0); - + f = ContentFeatures(); + f.name = "sand"; + f.setAllTextures("sand.png"); + f.setInventoryTextureCube("sand.png", "sand.png", "sand.png"); + f.param_type = CPT_MINERAL; + f.is_ground_content = true; + f.dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; + f.cookresult_item = std::string("MaterialItem2 ")+itos(CONTENT_GLASS)+" 1"; + setDirtLikeMaterialProperties(f.material, 1.0); + nodemgr->set(i, f); + i = CONTENT_GRAVEL; - f = nodemgr->getModifiable(i); - f->name = "gravel"; - f->setAllTextures("gravel.png"); - f->setInventoryTextureCube("gravel.png", "gravel.png", "gravel.png"); - f->param_type = CPT_MINERAL; - f->is_ground_content = true; - f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; - setGravelLikeMaterialProperties(f->material, 1.0); - + f = ContentFeatures(); + f.name = "gravel"; + f.setAllTextures("gravel.png"); + f.setInventoryTextureCube("gravel.png", "gravel.png", "gravel.png"); + f.param_type = CPT_MINERAL; + f.is_ground_content = true; + f.dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; + setGravelLikeMaterialProperties(f.material, 1.0); + nodemgr->set(i, f); + i = CONTENT_SANDSTONE; - f = nodemgr->getModifiable(i); - f->name = "sandstone"; - f->setAllTextures("sandstone.png"); - f->setInventoryTextureCube("sandstone.png", "sandstone.png", "sandstone.png"); - f->param_type = CPT_MINERAL; - f->is_ground_content = true; - f->dug_item = std::string("MaterialItem2 ")+itos(CONTENT_SAND)+" 1"; - setDirtLikeMaterialProperties(f->material, 1.0); + f = ContentFeatures(); + f.name = "sandstone"; + f.setAllTextures("sandstone.png"); + f.setInventoryTextureCube("sandstone.png", "sandstone.png", "sandstone.png"); + f.param_type = CPT_MINERAL; + f.is_ground_content = true; + f.dug_item = std::string("MaterialItem2 ")+itos(CONTENT_SAND)+" 1"; + setDirtLikeMaterialProperties(f.material, 1.0); + nodemgr->set(i, f); i = CONTENT_CLAY; - f = nodemgr->getModifiable(i); - f->name = "clay"; - f->setAllTextures("clay.png"); - f->setInventoryTextureCube("clay.png", "clay.png", "clay.png"); - f->param_type = CPT_MINERAL; - f->is_ground_content = true; - f->dug_item = std::string("CraftItem lump_of_clay 4"); - setDirtLikeMaterialProperties(f->material, 1.0); + f = ContentFeatures(); + f.name = "clay"; + f.setAllTextures("clay.png"); + f.setInventoryTextureCube("clay.png", "clay.png", "clay.png"); + f.param_type = CPT_MINERAL; + f.is_ground_content = true; + f.dug_item = std::string("CraftItem lump_of_clay 4"); + setDirtLikeMaterialProperties(f.material, 1.0); + nodemgr->set(i, f); i = CONTENT_BRICK; - f = nodemgr->getModifiable(i); - f->name = "brick"; - f->setAllTextures("brick.png"); - f->setInventoryTextureCube("brick.png", "brick.png", "brick.png"); - f->param_type = CPT_MINERAL; - f->is_ground_content = true; - f->dug_item = std::string("CraftItem clay_brick 4"); - setStoneLikeMaterialProperties(f->material, 1.0); + f = ContentFeatures(); + f.name = "brick"; + f.setAllTextures("brick.png"); + f.setInventoryTextureCube("brick.png", "brick.png", "brick.png"); + f.param_type = CPT_MINERAL; + f.is_ground_content = true; + f.dug_item = std::string("CraftItem clay_brick 4"); + setStoneLikeMaterialProperties(f.material, 1.0); + nodemgr->set(i, f); i = CONTENT_TREE; - f = nodemgr->getModifiable(i); - f->name = "tree"; - f->setAllTextures("tree.png"); - f->setTexture(0, "tree_top.png"); - f->setTexture(1, "tree_top.png"); - f->param_type = CPT_MINERAL; - f->is_ground_content = true; - f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; - f->cookresult_item = "CraftItem lump_of_coal 1"; - f->furnace_burntime = 30; - setWoodLikeMaterialProperties(f->material, 1.0); - + f = ContentFeatures(); + f.name = "tree"; + f.setAllTextures("tree.png"); + f.setTexture(0, "tree_top.png"); + f.setTexture(1, "tree_top.png"); + f.param_type = CPT_MINERAL; + f.is_ground_content = true; + f.dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; + f.cookresult_item = "CraftItem lump_of_coal 1"; + f.furnace_burntime = 30; + setWoodLikeMaterialProperties(f.material, 1.0); + nodemgr->set(i, f); + i = CONTENT_JUNGLETREE; - f = nodemgr->getModifiable(i); - f->name = "jungletree"; - f->setAllTextures("jungletree.png"); - f->setTexture(0, "jungletree_top.png"); - f->setTexture(1, "jungletree_top.png"); - f->param_type = CPT_MINERAL; - f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; - f->furnace_burntime = 30; - setWoodLikeMaterialProperties(f->material, 1.0); - + f = ContentFeatures(); + f.name = "jungletree"; + f.setAllTextures("jungletree.png"); + f.setTexture(0, "jungletree_top.png"); + f.setTexture(1, "jungletree_top.png"); + f.param_type = CPT_MINERAL; + f.dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; + f.furnace_burntime = 30; + setWoodLikeMaterialProperties(f.material, 1.0); + nodemgr->set(i, f); + i = CONTENT_JUNGLEGRASS; - f = nodemgr->getModifiable(i); - f->name = "junglegrass"; - f->drawtype = NDT_PLANTLIKE; - f->visual_scale = 1.3; - f->setAllTextures("junglegrass.png"); - f->setInventoryTexture("junglegrass.png"); - f->light_propagates = true; - f->param_type = CPT_LIGHT; - f->air_equivalent = false; // grass grows underneath - f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; - f->walkable = false; - setLeavesLikeMaterialProperties(f->material, 1.0); - f->furnace_burntime = 2; + f = ContentFeatures(); + f.name = "junglegrass"; + f.drawtype = NDT_PLANTLIKE; + f.visual_scale = 1.3; + f.setAllTextures("junglegrass.png"); + f.setInventoryTexture("junglegrass.png"); + f.light_propagates = true; + f.param_type = CPT_LIGHT; + f.air_equivalent = false; // grass grows underneath + f.dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; + f.walkable = false; + setLeavesLikeMaterialProperties(f.material, 1.0); + f.furnace_burntime = 2; + nodemgr->set(i, f); i = CONTENT_LEAVES; - f = nodemgr->getModifiable(i); - f->name = "leaves"; - f->drawtype = NDT_ALLFACES_OPTIONAL; - f->setAllTextures("leaves.png"); - //f->setAllTextures("[noalpha:leaves.png"); - f->light_propagates = true; - f->param_type = CPT_LIGHT; - f->extra_dug_item = std::string("MaterialItem2 ")+itos(CONTENT_SAPLING)+" 1"; - f->extra_dug_item_rarity = 20; - f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; - setLeavesLikeMaterialProperties(f->material, 1.0); - f->furnace_burntime = 1.0; + f = ContentFeatures(); + f.name = "leaves"; + f.drawtype = NDT_ALLFACES_OPTIONAL; + f.setAllTextures("leaves.png"); + //f.setAllTextures("[noalpha:leaves.png"); + f.light_propagates = true; + f.param_type = CPT_LIGHT; + f.extra_dug_item = std::string("MaterialItem2 ")+itos(CONTENT_SAPLING)+" 1"; + f.extra_dug_item_rarity = 20; + f.dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; + setLeavesLikeMaterialProperties(f.material, 1.0); + f.furnace_burntime = 1.0; + nodemgr->set(i, f); i = CONTENT_CACTUS; - f = nodemgr->getModifiable(i); - f->name = "cactus"; - f->setAllTextures("cactus_side.png"); - f->setTexture(0, "cactus_top.png"); - f->setTexture(1, "cactus_top.png"); - f->setInventoryTextureCube("cactus_top.png", "cactus_side.png", "cactus_side.png"); - f->param_type = CPT_MINERAL; - f->is_ground_content = true; - f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; - setWoodLikeMaterialProperties(f->material, 0.75); - f->furnace_burntime = 15; + f = ContentFeatures(); + f.name = "cactus"; + f.setAllTextures("cactus_side.png"); + f.setTexture(0, "cactus_top.png"); + f.setTexture(1, "cactus_top.png"); + f.setInventoryTextureCube("cactus_top.png", "cactus_side.png", "cactus_side.png"); + f.param_type = CPT_MINERAL; + f.is_ground_content = true; + f.dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; + setWoodLikeMaterialProperties(f.material, 0.75); + f.furnace_burntime = 15; + nodemgr->set(i, f); i = CONTENT_PAPYRUS; - f = nodemgr->getModifiable(i); - f->name = "papyrus"; - f->drawtype = NDT_PLANTLIKE; - f->setAllTextures("papyrus.png"); - f->setInventoryTexture("papyrus.png"); - f->light_propagates = true; - f->param_type = CPT_LIGHT; - f->is_ground_content = true; - f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; - f->walkable = false; - setLeavesLikeMaterialProperties(f->material, 0.5); - f->furnace_burntime = 1; + f = ContentFeatures(); + f.name = "papyrus"; + f.drawtype = NDT_PLANTLIKE; + f.setAllTextures("papyrus.png"); + f.setInventoryTexture("papyrus.png"); + f.light_propagates = true; + f.param_type = CPT_LIGHT; + f.is_ground_content = true; + f.dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; + f.walkable = false; + setLeavesLikeMaterialProperties(f.material, 0.5); + f.furnace_burntime = 1; + nodemgr->set(i, f); i = CONTENT_BOOKSHELF; - f = nodemgr->getModifiable(i); - f->name = "bookshelf"; - f->setAllTextures("bookshelf.png"); - f->setTexture(0, "wood.png"); - f->setTexture(1, "wood.png"); + f = ContentFeatures(); + f.name = "bookshelf"; + f.setAllTextures("bookshelf.png"); + f.setTexture(0, "wood.png"); + f.setTexture(1, "wood.png"); // FIXME: setInventoryTextureCube() only cares for the first texture - f->setInventoryTextureCube("bookshelf.png", "bookshelf.png", "bookshelf.png"); - //f->setInventoryTextureCube("wood.png", "bookshelf.png", "bookshelf.png"); - f->param_type = CPT_MINERAL; - f->is_ground_content = true; - setWoodLikeMaterialProperties(f->material, 0.75); - f->furnace_burntime = 30; + f.setInventoryTextureCube("bookshelf.png", "bookshelf.png", "bookshelf.png"); + //f.setInventoryTextureCube("wood.png", "bookshelf.png", "bookshelf.png"); + f.param_type = CPT_MINERAL; + f.is_ground_content = true; + setWoodLikeMaterialProperties(f.material, 0.75); + f.furnace_burntime = 30; + nodemgr->set(i, f); i = CONTENT_GLASS; - f = nodemgr->getModifiable(i); - f->name = "glass"; - f->drawtype = NDT_GLASSLIKE; - f->setAllTextures("glass.png"); - f->light_propagates = true; - f->sunlight_propagates = true; - f->param_type = CPT_LIGHT; - f->is_ground_content = true; - f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; - f->setInventoryTextureCube("glass.png", "glass.png", "glass.png"); - setGlassLikeMaterialProperties(f->material, 1.0); + f = ContentFeatures(); + f.name = "glass"; + f.drawtype = NDT_GLASSLIKE; + f.setAllTextures("glass.png"); + f.light_propagates = true; + f.sunlight_propagates = true; + f.param_type = CPT_LIGHT; + f.is_ground_content = true; + f.dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; + f.setInventoryTextureCube("glass.png", "glass.png", "glass.png"); + setGlassLikeMaterialProperties(f.material, 1.0); + nodemgr->set(i, f); i = CONTENT_FENCE; - f = nodemgr->getModifiable(i); - f->name = "fence"; - f->drawtype = NDT_FENCELIKE; - f->setInventoryTexture("fence.png"); - f->setTexture(0, "wood.png"); - f->light_propagates = true; - f->param_type = CPT_LIGHT; - f->is_ground_content = true; - f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; - f->air_equivalent = true; // grass grows underneath - f->selection_box.type = NODEBOX_FIXED; - f->selection_box.fixed = core::aabbox3d( + f = ContentFeatures(); + f.name = "wooden_fence"; + f.drawtype = NDT_FENCELIKE; + f.setInventoryTexture("fence.png"); + f.setTexture(0, "wood.png"); + f.light_propagates = true; + f.param_type = CPT_LIGHT; + f.is_ground_content = true; + f.dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; + f.air_equivalent = true; // grass grows underneath + f.selection_box.type = NODEBOX_FIXED; + f.selection_box.fixed = core::aabbox3d( -BS/7, -BS/2, -BS/7, BS/7, BS/2, BS/7); - f->furnace_burntime = 30/2; - setWoodLikeMaterialProperties(f->material, 0.75); + f.furnace_burntime = 30/2; + setWoodLikeMaterialProperties(f.material, 0.75); + nodemgr->set(i, f); i = CONTENT_RAIL; - f = nodemgr->getModifiable(i); - f->name = "rail"; - f->drawtype = NDT_RAILLIKE; - f->setInventoryTexture("rail.png"); - f->setTexture(0, "rail.png"); - f->setTexture(1, "rail_curved.png"); - f->setTexture(2, "rail_t_junction.png"); - f->setTexture(3, "rail_crossing.png"); - f->light_propagates = true; - f->param_type = CPT_LIGHT; - f->is_ground_content = true; - f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; - f->air_equivalent = true; // grass grows underneath - f->walkable = false; - f->selection_box.type = NODEBOX_FIXED; - f->furnace_burntime = 5; - setDirtLikeMaterialProperties(f->material, 0.75); + f = ContentFeatures(); + f.name = "rail"; + f.drawtype = NDT_RAILLIKE; + f.setInventoryTexture("rail.png"); + f.setTexture(0, "rail.png"); + f.setTexture(1, "rail_curved.png"); + f.setTexture(2, "rail_t_junction.png"); + f.setTexture(3, "rail_crossing.png"); + f.light_propagates = true; + f.param_type = CPT_LIGHT; + f.is_ground_content = true; + f.dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; + f.air_equivalent = true; // grass grows underneath + f.walkable = false; + f.selection_box.type = NODEBOX_FIXED; + f.furnace_burntime = 5; + setDirtLikeMaterialProperties(f.material, 0.75); + nodemgr->set(i, f); i = CONTENT_LADDER; - f = nodemgr->getModifiable(i); - f->name = "ladder"; - f->drawtype = NDT_SIGNLIKE; - f->setAllTextures("ladder.png"); - f->setInventoryTexture("ladder.png"); - f->light_propagates = true; - f->param_type = CPT_LIGHT; - f->is_ground_content = true; - f->dug_item = std::string("MaterialItem ")+itos(i)+" 1"; - f->wall_mounted = true; - f->air_equivalent = true; - f->walkable = false; - f->climbable = true; - f->selection_box.type = NODEBOX_WALLMOUNTED; - f->furnace_burntime = 5; - setWoodLikeMaterialProperties(f->material, 0.5); - - // Deprecated + f = ContentFeatures(); + f.name = "ladder"; + f.drawtype = NDT_SIGNLIKE; + f.setAllTextures("ladder.png"); + f.setInventoryTexture("ladder.png"); + f.light_propagates = true; + f.param_type = CPT_LIGHT; + f.is_ground_content = true; + f.dug_item = std::string("MaterialItem ")+itos(i)+" 1"; + f.wall_mounted = true; + f.air_equivalent = true; + f.walkable = false; + f.climbable = true; + f.selection_box.type = NODEBOX_WALLMOUNTED; + f.furnace_burntime = 5; + setWoodLikeMaterialProperties(f.material, 0.5); + + nodemgr->set(i, f); + i = CONTENT_COALSTONE; - f = nodemgr->getModifiable(i); - f->name = "coalstone"; - f->setAllTextures("stone.png^mineral_coal.png"); - f->is_ground_content = true; - setStoneLikeMaterialProperties(f->material, 1.5); - + f = ContentFeatures(); + f.name = "coalstone"; + f.setAllTextures("stone.png^mineral_coal.png"); + f.is_ground_content = true; + setStoneLikeMaterialProperties(f.material, 1.5); + nodemgr->set(i, f); + i = CONTENT_WOOD; - f = nodemgr->getModifiable(i); - f->name = "wood"; - f->setAllTextures("wood.png"); - f->setInventoryTextureCube("wood.png", "wood.png", "wood.png"); - f->is_ground_content = true; - f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; - f->furnace_burntime = 30/4; - setWoodLikeMaterialProperties(f->material, 0.75); - + f = ContentFeatures(); + f.name = "wood"; + f.setAllTextures("wood.png"); + f.setInventoryTextureCube("wood.png", "wood.png", "wood.png"); + f.is_ground_content = true; + f.dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; + f.furnace_burntime = 30/4; + setWoodLikeMaterialProperties(f.material, 0.75); + nodemgr->set(i, f); + i = CONTENT_MESE; - f = nodemgr->getModifiable(i); - f->name = "mese"; - f->setAllTextures("mese.png"); - f->setInventoryTextureCube("mese.png", "mese.png", "mese.png"); - f->is_ground_content = true; - f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; - f->furnace_burntime = 30; - setStoneLikeMaterialProperties(f->material, 0.5); - + f = ContentFeatures(); + f.name = "mese"; + f.setAllTextures("mese.png"); + f.setInventoryTextureCube("mese.png", "mese.png", "mese.png"); + f.is_ground_content = true; + f.dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; + f.furnace_burntime = 30; + setStoneLikeMaterialProperties(f.material, 0.5); + nodemgr->set(i, f); + i = CONTENT_CLOUD; - f = nodemgr->getModifiable(i); - f->name = "cloud"; - f->setAllTextures("cloud.png"); - f->setInventoryTextureCube("cloud.png", "cloud.png", "cloud.png"); - f->is_ground_content = true; - f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; - + f = ContentFeatures(); + f.name = "cloud"; + f.setAllTextures("cloud.png"); + f.setInventoryTextureCube("cloud.png", "cloud.png", "cloud.png"); + f.is_ground_content = true; + f.dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; + nodemgr->set(i, f); + i = CONTENT_AIR; - f = nodemgr->getModifiable(i); - f->name = "air"; - f->param_type = CPT_LIGHT; - f->light_propagates = true; - f->sunlight_propagates = true; - f->walkable = false; - f->pointable = false; - f->diggable = false; - f->buildable_to = true; - f->air_equivalent = true; - + f = ContentFeatures(); + f.name = "air"; + f.param_type = CPT_LIGHT; + f.light_propagates = true; + f.sunlight_propagates = true; + f.walkable = false; + f.pointable = false; + f.diggable = false; + f.buildable_to = true; + f.air_equivalent = true; + nodemgr->set(i, f); + i = CONTENT_WATER; - f = nodemgr->getModifiable(i); - f->name = "water_flowing"; - f->drawtype = NDT_FLOWINGLIQUID; - f->setAllTextures("water.png"); - f->alpha = WATER_ALPHA; - f->setInventoryTextureCube("water.png", "water.png", "water.png"); - f->param_type = CPT_LIGHT; - f->light_propagates = true; - f->walkable = false; - f->pointable = false; - f->diggable = false; - f->buildable_to = true; - f->liquid_type = LIQUID_FLOWING; - f->liquid_alternative_flowing = CONTENT_WATER; - f->liquid_alternative_source = CONTENT_WATERSOURCE; - f->liquid_viscosity = WATER_VISC; - f->post_effect_color = video::SColor(64, 100, 100, 200); - f->setSpecialMaterial(0, MaterialSpec("water.png", false)); - f->setSpecialMaterial(1, MaterialSpec("water.png", true)); + f = ContentFeatures(); + f.name = "water_flowing"; + f.drawtype = NDT_FLOWINGLIQUID; + f.setAllTextures("water.png"); + f.alpha = WATER_ALPHA; + f.setInventoryTextureCube("water.png", "water.png", "water.png"); + f.param_type = CPT_LIGHT; + f.light_propagates = true; + f.walkable = false; + f.pointable = false; + f.diggable = false; + f.buildable_to = true; + f.liquid_type = LIQUID_FLOWING; + f.liquid_alternative_flowing = CONTENT_WATER; + f.liquid_alternative_source = CONTENT_WATERSOURCE; + f.liquid_viscosity = WATER_VISC; + f.post_effect_color = video::SColor(64, 100, 100, 200); + f.setSpecialMaterial(0, MaterialSpec("water.png", false)); + f.setSpecialMaterial(1, MaterialSpec("water.png", true)); + nodemgr->set(i, f); i = CONTENT_WATERSOURCE; - f = nodemgr->getModifiable(i); - f->name = "water_source"; - f->drawtype = NDT_LIQUID; - f->setAllTextures("water.png"); - f->alpha = WATER_ALPHA; - f->setInventoryTextureCube("water.png", "water.png", "water.png"); - f->param_type = CPT_LIGHT; - f->light_propagates = true; - f->walkable = false; - f->pointable = false; - f->diggable = false; - f->buildable_to = true; - f->liquid_type = LIQUID_SOURCE; - f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; - f->liquid_alternative_flowing = CONTENT_WATER; - f->liquid_alternative_source = CONTENT_WATERSOURCE; - f->liquid_viscosity = WATER_VISC; - f->post_effect_color = video::SColor(64, 100, 100, 200); + f = ContentFeatures(); + f.name = "water_source"; + f.drawtype = NDT_LIQUID; + f.setAllTextures("water.png"); + f.alpha = WATER_ALPHA; + f.setInventoryTextureCube("water.png", "water.png", "water.png"); + f.param_type = CPT_LIGHT; + f.light_propagates = true; + f.walkable = false; + f.pointable = false; + f.diggable = false; + f.buildable_to = true; + f.liquid_type = LIQUID_SOURCE; + f.dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; + f.liquid_alternative_flowing = CONTENT_WATER; + f.liquid_alternative_source = CONTENT_WATERSOURCE; + f.liquid_viscosity = WATER_VISC; + f.post_effect_color = video::SColor(64, 100, 100, 200); // New-style water source material (mostly unused) - f->setSpecialMaterial(0, MaterialSpec("water.png", false)); - + f.setSpecialMaterial(0, MaterialSpec("water.png", false)); + nodemgr->set(i, f); + i = CONTENT_LAVA; - f = nodemgr->getModifiable(i); - f->name = "lava_flowing"; - f->drawtype = NDT_FLOWINGLIQUID; - f->setAllTextures("lava.png"); - f->setInventoryTextureCube("lava.png", "lava.png", "lava.png"); - f->param_type = CPT_LIGHT; - f->light_propagates = false; - f->light_source = LIGHT_MAX-1; - f->walkable = false; - f->pointable = false; - f->diggable = false; - f->buildable_to = true; - f->liquid_type = LIQUID_FLOWING; - f->liquid_alternative_flowing = CONTENT_LAVA; - f->liquid_alternative_source = CONTENT_LAVASOURCE; - f->liquid_viscosity = LAVA_VISC; - f->damage_per_second = 4*2; - f->post_effect_color = video::SColor(192, 255, 64, 0); - f->setSpecialMaterial(0, MaterialSpec("lava.png", false)); - f->setSpecialMaterial(1, MaterialSpec("lava.png", true)); - + f = ContentFeatures(); + f.name = "lava_flowing"; + f.drawtype = NDT_FLOWINGLIQUID; + f.setAllTextures("lava.png"); + f.setInventoryTextureCube("lava.png", "lava.png", "lava.png"); + f.param_type = CPT_LIGHT; + f.light_propagates = false; + f.light_source = LIGHT_MAX-1; + f.walkable = false; + f.pointable = false; + f.diggable = false; + f.buildable_to = true; + f.liquid_type = LIQUID_FLOWING; + f.liquid_alternative_flowing = CONTENT_LAVA; + f.liquid_alternative_source = CONTENT_LAVASOURCE; + f.liquid_viscosity = LAVA_VISC; + f.damage_per_second = 4*2; + f.post_effect_color = video::SColor(192, 255, 64, 0); + f.setSpecialMaterial(0, MaterialSpec("lava.png", false)); + f.setSpecialMaterial(1, MaterialSpec("lava.png", true)); + nodemgr->set(i, f); + i = CONTENT_LAVASOURCE; - f = nodemgr->getModifiable(i); - f->name = "lava_source"; - f->drawtype = NDT_LIQUID; - f->setAllTextures("lava.png"); - f->setInventoryTextureCube("lava.png", "lava.png", "lava.png"); - f->param_type = CPT_LIGHT; - f->light_propagates = false; - f->light_source = LIGHT_MAX-1; - f->walkable = false; - f->pointable = false; - f->diggable = false; - f->buildable_to = true; - f->liquid_type = LIQUID_SOURCE; - f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; - f->liquid_alternative_flowing = CONTENT_LAVA; - f->liquid_alternative_source = CONTENT_LAVASOURCE; - f->liquid_viscosity = LAVA_VISC; - f->damage_per_second = 4*2; - f->post_effect_color = video::SColor(192, 255, 64, 0); + f = ContentFeatures(); + f.name = "lava_source"; + f.drawtype = NDT_LIQUID; + f.setAllTextures("lava.png"); + f.setInventoryTextureCube("lava.png", "lava.png", "lava.png"); + f.param_type = CPT_LIGHT; + f.light_propagates = false; + f.light_source = LIGHT_MAX-1; + f.walkable = false; + f.pointable = false; + f.diggable = false; + f.buildable_to = true; + f.liquid_type = LIQUID_SOURCE; + f.dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; + f.liquid_alternative_flowing = CONTENT_LAVA; + f.liquid_alternative_source = CONTENT_LAVASOURCE; + f.liquid_viscosity = LAVA_VISC; + f.damage_per_second = 4*2; + f.post_effect_color = video::SColor(192, 255, 64, 0); // New-style lava source material (mostly unused) - f->setSpecialMaterial(0, MaterialSpec("lava.png", false)); - f->furnace_burntime = 60; - + f.setSpecialMaterial(0, MaterialSpec("lava.png", false)); + f.furnace_burntime = 60; + nodemgr->set(i, f); + i = CONTENT_TORCH; - f = nodemgr->getModifiable(i); - f->name = "torch"; - f->drawtype = NDT_TORCHLIKE; - f->setTexture(0, "torch_on_floor.png"); - f->setTexture(1, "torch_on_ceiling.png"); - f->setTexture(2, "torch.png"); - f->setInventoryTexture("torch_on_floor.png"); - f->param_type = CPT_LIGHT; - f->light_propagates = true; - f->sunlight_propagates = true; - f->walkable = false; - f->wall_mounted = true; - f->air_equivalent = true; - f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; - f->light_source = LIGHT_MAX-1; - f->selection_box.type = NODEBOX_WALLMOUNTED; - f->selection_box.wall_top = core::aabbox3d( + f = ContentFeatures(); + f.name = "torch"; + f.drawtype = NDT_TORCHLIKE; + f.setTexture(0, "torch_on_floor.png"); + f.setTexture(1, "torch_on_ceiling.png"); + f.setTexture(2, "torch.png"); + f.setInventoryTexture("torch_on_floor.png"); + f.param_type = CPT_LIGHT; + f.light_propagates = true; + f.sunlight_propagates = true; + f.walkable = false; + f.wall_mounted = true; + f.air_equivalent = true; + f.dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; + f.light_source = LIGHT_MAX-1; + f.selection_box.type = NODEBOX_WALLMOUNTED; + f.selection_box.wall_top = core::aabbox3d( -BS/10, BS/2-BS/3.333*2, -BS/10, BS/10, BS/2, BS/10); - f->selection_box.wall_bottom = core::aabbox3d( + f.selection_box.wall_bottom = core::aabbox3d( -BS/10, -BS/2, -BS/10, BS/10, -BS/2+BS/3.333*2, BS/10); - f->selection_box.wall_side = core::aabbox3d( + f.selection_box.wall_side = core::aabbox3d( -BS/2, -BS/3.333, -BS/10, -BS/2+BS/3.333, BS/3.333, BS/10); - setConstantMaterialProperties(f->material, 0.0); - f->furnace_burntime = 4; - + setConstantMaterialProperties(f.material, 0.0); + f.furnace_burntime = 4; + nodemgr->set(i, f); + i = CONTENT_SIGN_WALL; - f = nodemgr->getModifiable(i); - f->name = "sign_wall"; - f->drawtype = NDT_SIGNLIKE; - f->setAllTextures("sign_wall.png"); - f->setInventoryTexture("sign_wall.png"); - f->param_type = CPT_LIGHT; - f->light_propagates = true; - f->sunlight_propagates = true; - f->walkable = false; - f->wall_mounted = true; - f->air_equivalent = true; - f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; - if(f->initial_metadata == NULL) - f->initial_metadata = new SignNodeMetadata(NULL, "Some sign"); - setConstantMaterialProperties(f->material, 0.5); - f->selection_box.type = NODEBOX_WALLMOUNTED; - f->furnace_burntime = 10; - + f = ContentFeatures(); + f.name = "sign_wall"; + f.drawtype = NDT_SIGNLIKE; + f.setAllTextures("sign_wall.png"); + f.setInventoryTexture("sign_wall.png"); + f.param_type = CPT_LIGHT; + f.light_propagates = true; + f.sunlight_propagates = true; + f.walkable = false; + f.wall_mounted = true; + f.air_equivalent = true; + f.dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; + if(f.initial_metadata == NULL) + f.initial_metadata = new SignNodeMetadata(NULL, "Some sign"); + setConstantMaterialProperties(f.material, 0.5); + f.selection_box.type = NODEBOX_WALLMOUNTED; + f.furnace_burntime = 10; + nodemgr->set(i, f); + i = CONTENT_CHEST; - f = nodemgr->getModifiable(i); - f->name = "chest"; - f->param_type = CPT_FACEDIR_SIMPLE; - f->setAllTextures("chest_side.png"); - f->setTexture(0, "chest_top.png"); - f->setTexture(1, "chest_top.png"); - f->setTexture(5, "chest_front.png"); // Z- - f->setInventoryTexture("chest_top.png"); - //f->setInventoryTextureCube("chest_top.png", "chest_side.png", "chest_side.png"); - f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; - if(f->initial_metadata == NULL) - f->initial_metadata = new ChestNodeMetadata(NULL); - setWoodLikeMaterialProperties(f->material, 1.0); - f->furnace_burntime = 30; - + f = ContentFeatures(); + f.name = "chest"; + f.param_type = CPT_FACEDIR_SIMPLE; + f.setAllTextures("chest_side.png"); + f.setTexture(0, "chest_top.png"); + f.setTexture(1, "chest_top.png"); + f.setTexture(5, "chest_front.png"); // Z- + f.setInventoryTexture("chest_top.png"); + //f.setInventoryTextureCube("chest_top.png", "chest_side.png", "chest_side.png"); + f.dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; + if(f.initial_metadata == NULL) + f.initial_metadata = new ChestNodeMetadata(NULL); + setWoodLikeMaterialProperties(f.material, 1.0); + f.furnace_burntime = 30; + nodemgr->set(i, f); + i = CONTENT_LOCKABLE_CHEST; - f = nodemgr->getModifiable(i); - f->name = "locked_chest"; - f->param_type = CPT_FACEDIR_SIMPLE; - f->setAllTextures("chest_side.png"); - f->setTexture(0, "chest_top.png"); - f->setTexture(1, "chest_top.png"); - f->setTexture(5, "chest_lock.png"); // Z- - f->setInventoryTexture("chest_lock.png"); - //f->setInventoryTextureCube("chest_top.png", "chest_side.png", "chest_side.png"); - f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; - if(f->initial_metadata == NULL) - f->initial_metadata = new LockingChestNodeMetadata(NULL); - setWoodLikeMaterialProperties(f->material, 1.0); - f->furnace_burntime = 30; + f = ContentFeatures(); + f.name = "locked_chest"; + f.param_type = CPT_FACEDIR_SIMPLE; + f.setAllTextures("chest_side.png"); + f.setTexture(0, "chest_top.png"); + f.setTexture(1, "chest_top.png"); + f.setTexture(5, "chest_lock.png"); // Z- + f.setInventoryTexture("chest_lock.png"); + //f.setInventoryTextureCube("chest_top.png", "chest_side.png", "chest_side.png"); + f.dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; + if(f.initial_metadata == NULL) + f.initial_metadata = new LockingChestNodeMetadata(NULL); + setWoodLikeMaterialProperties(f.material, 1.0); + f.furnace_burntime = 30; + nodemgr->set(i, f); i = CONTENT_FURNACE; - f = nodemgr->getModifiable(i); - f->name = "furnace"; - f->param_type = CPT_FACEDIR_SIMPLE; - f->setAllTextures("furnace_side.png"); - f->setTexture(5, "furnace_front.png"); // Z- - f->setInventoryTexture("furnace_front.png"); - //f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; - f->dug_item = std::string("MaterialItem2 ")+itos(CONTENT_COBBLE)+" 6"; - if(f->initial_metadata == NULL) - f->initial_metadata = new FurnaceNodeMetadata(NULL); - setStoneLikeMaterialProperties(f->material, 3.0); - + f = ContentFeatures(); + f.name = "furnace"; + f.param_type = CPT_FACEDIR_SIMPLE; + f.setAllTextures("furnace_side.png"); + f.setTexture(5, "furnace_front.png"); // Z- + f.setInventoryTexture("furnace_front.png"); + //f.dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; + f.dug_item = std::string("MaterialItem2 ")+itos(CONTENT_COBBLE)+" 6"; + if(f.initial_metadata == NULL) + f.initial_metadata = new FurnaceNodeMetadata(NULL); + setStoneLikeMaterialProperties(f.material, 3.0); + nodemgr->set(i, f); + i = CONTENT_COBBLE; - f = nodemgr->getModifiable(i); - f->name = "cobble"; - f->setAllTextures("cobble.png"); - f->setInventoryTextureCube("cobble.png", "cobble.png", "cobble.png"); - f->param_type = CPT_NONE; - f->is_ground_content = true; - f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; - f->cookresult_item = std::string("MaterialItem2 ")+itos(CONTENT_STONE)+" 1"; - setStoneLikeMaterialProperties(f->material, 0.9); + f = ContentFeatures(); + f.name = "cobble"; + f.setAllTextures("cobble.png"); + f.setInventoryTextureCube("cobble.png", "cobble.png", "cobble.png"); + f.param_type = CPT_NONE; + f.is_ground_content = true; + f.dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; + f.cookresult_item = std::string("MaterialItem2 ")+itos(CONTENT_STONE)+" 1"; + setStoneLikeMaterialProperties(f.material, 0.9); + nodemgr->set(i, f); i = CONTENT_MOSSYCOBBLE; - f = nodemgr->getModifiable(i); - f->name = "mossycobble"; - f->setAllTextures("mossycobble.png"); - f->setInventoryTextureCube("mossycobble.png", "mossycobble.png", "mossycobble.png"); - f->param_type = CPT_NONE; - f->is_ground_content = true; - f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; - setStoneLikeMaterialProperties(f->material, 0.8); - + f = ContentFeatures(); + f.name = "mossycobble"; + f.setAllTextures("mossycobble.png"); + f.setInventoryTextureCube("mossycobble.png", "mossycobble.png", "mossycobble.png"); + f.param_type = CPT_NONE; + f.is_ground_content = true; + f.dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; + setStoneLikeMaterialProperties(f.material, 0.8); + nodemgr->set(i, f); + i = CONTENT_STEEL; - f = nodemgr->getModifiable(i); - f->name = "steelblock"; - f->setAllTextures("steel_block.png"); - f->setInventoryTextureCube("steel_block.png", "steel_block.png", + f = ContentFeatures(); + f.name = "steelblock"; + f.setAllTextures("steel_block.png"); + f.setInventoryTextureCube("steel_block.png", "steel_block.png", "steel_block.png"); - f->param_type = CPT_NONE; - f->is_ground_content = true; - f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; - setStoneLikeMaterialProperties(f->material, 5.0); - + f.param_type = CPT_NONE; + f.is_ground_content = true; + f.dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; + setStoneLikeMaterialProperties(f.material, 5.0); + nodemgr->set(i, f); + i = CONTENT_NC; - f = nodemgr->getModifiable(i); - f->name = "nyancat"; - f->param_type = CPT_FACEDIR_SIMPLE; - f->setAllTextures("nc_side.png"); - f->setTexture(5, "nc_front.png"); // Z- - f->setTexture(4, "nc_back.png"); // Z+ - f->setInventoryTexture("nc_front.png"); - f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; - setStoneLikeMaterialProperties(f->material, 3.0); - f->furnace_burntime = 1; - + f = ContentFeatures(); + f.name = "nyancat"; + f.param_type = CPT_FACEDIR_SIMPLE; + f.setAllTextures("nc_side.png"); + f.setTexture(5, "nc_front.png"); // Z- + f.setTexture(4, "nc_back.png"); // Z+ + f.setInventoryTexture("nc_front.png"); + f.dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; + setStoneLikeMaterialProperties(f.material, 3.0); + f.furnace_burntime = 1; + nodemgr->set(i, f); + i = CONTENT_NC_RB; - f = nodemgr->getModifiable(i); - f->name = "nyancat_rainbow"; - f->setAllTextures("nc_rb.png"); - f->setInventoryTexture("nc_rb.png"); - f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; - setStoneLikeMaterialProperties(f->material, 3.0); - f->furnace_burntime = 1; + f = ContentFeatures(); + f.name = "nyancat_rainbow"; + f.setAllTextures("nc_rb.png"); + f.setInventoryTexture("nc_rb.png"); + f.dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; + setStoneLikeMaterialProperties(f.material, 3.0); + f.furnace_burntime = 1; + nodemgr->set(i, f); i = CONTENT_SAPLING; - f = nodemgr->getModifiable(i); - f->name = "sapling"; - f->drawtype = NDT_PLANTLIKE; - f->visual_scale = 1.0; - f->setAllTextures("sapling.png"); - f->setInventoryTexture("sapling.png"); - f->param_type = CPT_LIGHT; - f->dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; - f->light_propagates = true; - f->air_equivalent = false; - f->walkable = false; - setConstantMaterialProperties(f->material, 0.0); - f->furnace_burntime = 10; - + f = ContentFeatures(); + f.name = "sapling"; + f.drawtype = NDT_PLANTLIKE; + f.visual_scale = 1.0; + f.setAllTextures("sapling.png"); + f.setInventoryTexture("sapling.png"); + f.param_type = CPT_LIGHT; + f.dug_item = std::string("MaterialItem2 ")+itos(i)+" 1"; + f.light_propagates = true; + f.air_equivalent = false; + f.walkable = false; + setConstantMaterialProperties(f.material, 0.0); + f.furnace_burntime = 10; + nodemgr->set(i, f); + i = CONTENT_APPLE; - f = nodemgr->getModifiable(i); - f->name = "apple"; - f->drawtype = NDT_PLANTLIKE; - f->visual_scale = 1.0; - f->setAllTextures("apple.png"); - f->setInventoryTexture("apple.png"); - f->param_type = CPT_LIGHT; - f->light_propagates = true; - f->sunlight_propagates = true; - f->walkable = false; - f->air_equivalent = true; - f->dug_item = std::string("CraftItem apple 1"); - setConstantMaterialProperties(f->material, 0.0); - f->furnace_burntime = 3; + f = ContentFeatures(); + f.name = "apple"; + f.drawtype = NDT_PLANTLIKE; + f.visual_scale = 1.0; + f.setAllTextures("apple.png"); + f.setInventoryTexture("apple.png"); + f.param_type = CPT_LIGHT; + f.light_propagates = true; + f.sunlight_propagates = true; + f.walkable = false; + f.air_equivalent = true; + f.dug_item = std::string("CraftItem apple 1"); + setConstantMaterialProperties(f.material, 0.0); + f.furnace_burntime = 3; + nodemgr->set(i, f); } -- cgit v1.2.3