name = "lump_of_coal.png";
else if(m_subname == "lump_of_iron")
name = "lump_of_iron.png";
+ else if(m_subname == "lump_of_clay")
+ name = "lump_of_clay.png";
else if(m_subname == "steel_ingot")
name = "steel_ingot.png";
+ else if(m_subname == "clay_brick")
+ name = "clay_brick.png";
else if(m_subname == "rat")
name = "rat.png";
else
bool CraftItem::isCookable()
{
- if(m_subname == "lump_of_iron")
+ if(m_subname == "lump_of_iron" || m_subname == "lump_of_clay")
{
return true;
}
{
return new CraftItem("steel_ingot", 1);
}
+ else if(m_subname == "lump_of_clay")
+ return new CraftItem("clay_brick", 1);
return NULL;
}
if(have_sand == false)
continue;
+ // Determine whether to have clay in the sand here
+ double claynoise = noise2d_perlin(
+ 0.5+(float)p2d.X/500, 0.5+(float)p2d.Y/500,
+ data->seed+4321, 8, 0.95);
+
+ bool have_clay = have_sand && (claynoise > 0.95);
+
// Find ground level
s16 surface_y = find_ground_level_clever(data->vmanip, p2d);
MapNode *n = &data->vmanip.m_data[i];
if(n->d == CONTENT_MUD || n->d == CONTENT_GRASS)
{
- n->d = CONTENT_SAND;
+ if(have_clay && (surface_y == WATER_LEVEL))
+ n->d = CONTENT_CLAY;
+ else
+ n->d = CONTENT_SAND;
}
else
{
f->is_ground_content = true;
f->dug_item = std::string("MaterialItem ")+itos(CONTENT_SAND)+" 1";
+ i = CONTENT_CLAY;
+ f = &g_content_features[i];
+ 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");
+
i = CONTENT_BRICK;
f = &g_content_features[i];
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("MaterialItem ")+itos(i)+" 1";
+ f->dug_item = std::string("CraftItem clay_brick 4");
i = CONTENT_TREE;
f = &g_content_features[i];
#define CONTENT_SANDSTONE 22
#define CONTENT_CACTUS 23
#define CONTENT_BRICK 24
+#define CONTENT_CLAY 25
/*
Content feature list
setDirtLikeDiggingProperties(CONTENT_GRASS, 1.0);
setDirtLikeDiggingProperties(CONTENT_GRASS_FOOTSTEPS, 1.0);
setDirtLikeDiggingProperties(CONTENT_SAND, 1.0);
+ setDirtLikeDiggingProperties(CONTENT_CLAY, 1.0);
setWoodLikeDiggingProperties(CONTENT_TREE, 1.0);
setWoodLikeDiggingProperties(CONTENT_LEAVES, 0.15);
found = true;
}
}
+
+ // Clay
+ if(!found)
+ {
+ ItemSpec specs[9];
+ specs[3] = ItemSpec(ITEM_CRAFT, "lump_of_clay");
+ specs[4] = ItemSpec(ITEM_CRAFT, "lump_of_clay");
+ specs[6] = ItemSpec(ITEM_CRAFT, "lump_of_clay");
+ specs[7] = ItemSpec(ITEM_CRAFT, "lump_of_clay");
+ if(checkItemCombination(items, specs))
+ {
+ rlist->addItem(new MaterialItem(CONTENT_CLAY, 1));
+ found = true;
+ }
+ }
+
+ // Brick
+ if(!found)
+ {
+ ItemSpec specs[9];
+ specs[3] = ItemSpec(ITEM_CRAFT, "clay_brick");
+ specs[4] = ItemSpec(ITEM_CRAFT, "clay_brick");
+ specs[6] = ItemSpec(ITEM_CRAFT, "clay_brick");
+ specs[7] = ItemSpec(ITEM_CRAFT, "clay_brick");
+ if(checkItemCombination(items, specs))
+ {
+ rlist->addItem(new MaterialItem(CONTENT_BRICK, 1));
+ found = true;
+ }
+ }
}
} // if creative_mode == false
CONTENT_STONE,
CONTENT_SAND,
CONTENT_SANDSTONE,
+ CONTENT_CLAY,
CONTENT_BRICK,
CONTENT_TREE,
CONTENT_LEAVES,
sourcelist.push_back("mud.png");
sourcelist.push_back("sand.png");
sourcelist.push_back("sandstone.png");
+ sourcelist.push_back("clay.png");
sourcelist.push_back("brick.png");
sourcelist.push_back("grass.png");
sourcelist.push_back("grass_footsteps.png");