forked from Mirrorlandia_minetest/minetest
+ clay and associated items
This commit is contained in:
parent
d7b768dc4b
commit
ba1460a582
BIN
data/clay.png
Normal file
BIN
data/clay.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 613 B |
BIN
data/clay_brick.png
Normal file
BIN
data/clay_brick.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 249 B |
BIN
data/lump_of_clay.png
Normal file
BIN
data/lump_of_clay.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 210 B |
@ -160,8 +160,12 @@ video::ITexture * CraftItem::getImage()
|
|||||||
name = "lump_of_coal.png";
|
name = "lump_of_coal.png";
|
||||||
else if(m_subname == "lump_of_iron")
|
else if(m_subname == "lump_of_iron")
|
||||||
name = "lump_of_iron.png";
|
name = "lump_of_iron.png";
|
||||||
|
else if(m_subname == "lump_of_clay")
|
||||||
|
name = "lump_of_clay.png";
|
||||||
else if(m_subname == "steel_ingot")
|
else if(m_subname == "steel_ingot")
|
||||||
name = "steel_ingot.png";
|
name = "steel_ingot.png";
|
||||||
|
else if(m_subname == "clay_brick")
|
||||||
|
name = "clay_brick.png";
|
||||||
else if(m_subname == "rat")
|
else if(m_subname == "rat")
|
||||||
name = "rat.png";
|
name = "rat.png";
|
||||||
else
|
else
|
||||||
@ -199,7 +203,7 @@ u16 CraftItem::getDropCount()
|
|||||||
|
|
||||||
bool CraftItem::isCookable()
|
bool CraftItem::isCookable()
|
||||||
{
|
{
|
||||||
if(m_subname == "lump_of_iron")
|
if(m_subname == "lump_of_iron" || m_subname == "lump_of_clay")
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -212,6 +216,8 @@ InventoryItem *CraftItem::createCookResult()
|
|||||||
{
|
{
|
||||||
return new CraftItem("steel_ingot", 1);
|
return new CraftItem("steel_ingot", 1);
|
||||||
}
|
}
|
||||||
|
else if(m_subname == "lump_of_clay")
|
||||||
|
return new CraftItem("clay_brick", 1);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
12
src/map.cpp
12
src/map.cpp
@ -3141,6 +3141,13 @@ void makeChunk(ChunkMakeData *data)
|
|||||||
if(have_sand == false)
|
if(have_sand == false)
|
||||||
continue;
|
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
|
// Find ground level
|
||||||
s16 surface_y = find_ground_level_clever(data->vmanip, p2d);
|
s16 surface_y = find_ground_level_clever(data->vmanip, p2d);
|
||||||
|
|
||||||
@ -3157,7 +3164,10 @@ void makeChunk(ChunkMakeData *data)
|
|||||||
MapNode *n = &data->vmanip.m_data[i];
|
MapNode *n = &data->vmanip.m_data[i];
|
||||||
if(n->d == CONTENT_MUD || n->d == CONTENT_GRASS)
|
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
|
else
|
||||||
{
|
{
|
||||||
|
@ -189,13 +189,21 @@ void init_mapnode()
|
|||||||
f->is_ground_content = true;
|
f->is_ground_content = true;
|
||||||
f->dug_item = std::string("MaterialItem ")+itos(CONTENT_SAND)+" 1";
|
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;
|
i = CONTENT_BRICK;
|
||||||
f = &g_content_features[i];
|
f = &g_content_features[i];
|
||||||
f->setAllTextures("brick.png");
|
f->setAllTextures("brick.png");
|
||||||
f->setInventoryTextureCube("brick.png", "brick.png", "brick.png");
|
f->setInventoryTextureCube("brick.png", "brick.png", "brick.png");
|
||||||
f->param_type = CPT_MINERAL;
|
f->param_type = CPT_MINERAL;
|
||||||
f->is_ground_content = true;
|
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;
|
i = CONTENT_TREE;
|
||||||
f = &g_content_features[i];
|
f = &g_content_features[i];
|
||||||
|
@ -104,6 +104,7 @@ void init_content_inventory_texture_paths();
|
|||||||
#define CONTENT_SANDSTONE 22
|
#define CONTENT_SANDSTONE 22
|
||||||
#define CONTENT_CACTUS 23
|
#define CONTENT_CACTUS 23
|
||||||
#define CONTENT_BRICK 24
|
#define CONTENT_BRICK 24
|
||||||
|
#define CONTENT_CLAY 25
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Content feature list
|
Content feature list
|
||||||
|
@ -71,6 +71,7 @@ void initializeMaterialProperties()
|
|||||||
setDirtLikeDiggingProperties(CONTENT_GRASS, 1.0);
|
setDirtLikeDiggingProperties(CONTENT_GRASS, 1.0);
|
||||||
setDirtLikeDiggingProperties(CONTENT_GRASS_FOOTSTEPS, 1.0);
|
setDirtLikeDiggingProperties(CONTENT_GRASS_FOOTSTEPS, 1.0);
|
||||||
setDirtLikeDiggingProperties(CONTENT_SAND, 1.0);
|
setDirtLikeDiggingProperties(CONTENT_SAND, 1.0);
|
||||||
|
setDirtLikeDiggingProperties(CONTENT_CLAY, 1.0);
|
||||||
|
|
||||||
setWoodLikeDiggingProperties(CONTENT_TREE, 1.0);
|
setWoodLikeDiggingProperties(CONTENT_TREE, 1.0);
|
||||||
setWoodLikeDiggingProperties(CONTENT_LEAVES, 0.15);
|
setWoodLikeDiggingProperties(CONTENT_LEAVES, 0.15);
|
||||||
|
@ -3987,6 +3987,36 @@ void Server::UpdateCrafting(u16 peer_id)
|
|||||||
found = true;
|
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
|
} // if creative_mode == false
|
||||||
@ -4076,6 +4106,7 @@ void setCreativeInventory(Player *player)
|
|||||||
CONTENT_STONE,
|
CONTENT_STONE,
|
||||||
CONTENT_SAND,
|
CONTENT_SAND,
|
||||||
CONTENT_SANDSTONE,
|
CONTENT_SANDSTONE,
|
||||||
|
CONTENT_CLAY,
|
||||||
CONTENT_BRICK,
|
CONTENT_BRICK,
|
||||||
CONTENT_TREE,
|
CONTENT_TREE,
|
||||||
CONTENT_LEAVES,
|
CONTENT_LEAVES,
|
||||||
|
@ -507,6 +507,7 @@ void TextureSource::buildMainAtlas()
|
|||||||
sourcelist.push_back("mud.png");
|
sourcelist.push_back("mud.png");
|
||||||
sourcelist.push_back("sand.png");
|
sourcelist.push_back("sand.png");
|
||||||
sourcelist.push_back("sandstone.png");
|
sourcelist.push_back("sandstone.png");
|
||||||
|
sourcelist.push_back("clay.png");
|
||||||
sourcelist.push_back("brick.png");
|
sourcelist.push_back("brick.png");
|
||||||
sourcelist.push_back("grass.png");
|
sourcelist.push_back("grass.png");
|
||||||
sourcelist.push_back("grass_footsteps.png");
|
sourcelist.push_back("grass_footsteps.png");
|
||||||
|
Loading…
Reference in New Issue
Block a user