+ cactii
parent
5f063ce97c
commit
289e31ed98
Binary file not shown.
After Width: | Height: | Size: 279 B |
Binary file not shown.
After Width: | Height: | Size: 236 B |
34
src/map.cpp
34
src/map.cpp
|
@ -2045,6 +2045,20 @@ void make_tree(VoxelManipulator &vmanip, v3s16 p0)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void make_cactus(VoxelManipulator &vmanip, v3s16 p0)
|
||||||
|
{
|
||||||
|
MapNode cactusnode(CONTENT_CACTUS);
|
||||||
|
|
||||||
|
s16 trunk_h = 3;
|
||||||
|
v3s16 p1 = p0;
|
||||||
|
for(s16 ii=0; ii<trunk_h; ii++)
|
||||||
|
{
|
||||||
|
if(vmanip.m_area.contains(p1))
|
||||||
|
vmanip.m_data[vmanip.m_area.index(p1)] = cactusnode;
|
||||||
|
p1.Y++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Noise functions. Make sure seed is mangled differently in each one.
|
Noise functions. Make sure seed is mangled differently in each one.
|
||||||
*/
|
*/
|
||||||
|
@ -3207,18 +3221,24 @@ void makeChunk(ChunkMakeData *data)
|
||||||
if(y > y_nodes_max - 6)
|
if(y > y_nodes_max - 6)
|
||||||
continue;
|
continue;
|
||||||
v3s16 p(x,y,z);
|
v3s16 p(x,y,z);
|
||||||
/*
|
|
||||||
Trees grow only on mud and grass
|
|
||||||
*/
|
|
||||||
{
|
{
|
||||||
u32 i = data->vmanip.m_area.index(v3s16(p));
|
u32 i = data->vmanip.m_area.index(v3s16(p));
|
||||||
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)
|
||||||
continue;
|
continue;
|
||||||
|
// Trees grow only on mud and grass
|
||||||
|
if(n->d == CONTENT_MUD || n->d == CONTENT_GRASS)
|
||||||
|
{
|
||||||
|
p.Y++;
|
||||||
|
make_tree(data->vmanip, p);
|
||||||
|
}
|
||||||
|
// Cactii grow only on sand
|
||||||
|
if(n->d == CONTENT_SAND)
|
||||||
|
{
|
||||||
|
p.Y++;
|
||||||
|
make_cactus(data->vmanip, p);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
p.Y++;
|
|
||||||
// Make a tree
|
|
||||||
make_tree(data->vmanip, p);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*u32 tree_max = relative_area / 60;
|
/*u32 tree_max = relative_area / 60;
|
||||||
|
|
|
@ -215,6 +215,16 @@ void init_mapnode()
|
||||||
}
|
}
|
||||||
f->dug_item = std::string("MaterialItem ")+itos(i)+" 1";
|
f->dug_item = std::string("MaterialItem ")+itos(i)+" 1";
|
||||||
|
|
||||||
|
i = CONTENT_CACTUS;
|
||||||
|
f = &g_content_features[i];
|
||||||
|
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("MaterialItem ")+itos(i)+" 1";
|
||||||
|
|
||||||
i = CONTENT_GLASS;
|
i = CONTENT_GLASS;
|
||||||
f = &g_content_features[i];
|
f = &g_content_features[i];
|
||||||
f->light_propagates = true;
|
f->light_propagates = true;
|
||||||
|
|
|
@ -102,6 +102,7 @@ void init_content_inventory_texture_paths();
|
||||||
#define CONTENT_GLASS 20
|
#define CONTENT_GLASS 20
|
||||||
#define CONTENT_FENCE 21
|
#define CONTENT_FENCE 21
|
||||||
#define CONTENT_SANDSTONE 22
|
#define CONTENT_SANDSTONE 22
|
||||||
|
#define CONTENT_CACTUS 23
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Content feature list
|
Content feature list
|
||||||
|
|
|
@ -73,6 +73,7 @@ void initializeMaterialProperties()
|
||||||
|
|
||||||
setWoodLikeDiggingProperties(CONTENT_TREE, 1.0);
|
setWoodLikeDiggingProperties(CONTENT_TREE, 1.0);
|
||||||
setWoodLikeDiggingProperties(CONTENT_LEAVES, 0.15);
|
setWoodLikeDiggingProperties(CONTENT_LEAVES, 0.15);
|
||||||
|
setWoodLikeDiggingProperties(CONTENT_CACTUS, 0.75);
|
||||||
setWoodLikeDiggingProperties(CONTENT_GLASS, 0.15);
|
setWoodLikeDiggingProperties(CONTENT_GLASS, 0.15);
|
||||||
setWoodLikeDiggingProperties(CONTENT_FENCE, 0.75);
|
setWoodLikeDiggingProperties(CONTENT_FENCE, 0.75);
|
||||||
setWoodLikeDiggingProperties(CONTENT_WOOD, 0.75);
|
setWoodLikeDiggingProperties(CONTENT_WOOD, 0.75);
|
||||||
|
|
|
@ -4078,6 +4078,7 @@ void setCreativeInventory(Player *player)
|
||||||
CONTENT_SANDSTONE,
|
CONTENT_SANDSTONE,
|
||||||
CONTENT_TREE,
|
CONTENT_TREE,
|
||||||
CONTENT_LEAVES,
|
CONTENT_LEAVES,
|
||||||
|
CONTENT_CACTUS,
|
||||||
CONTENT_GLASS,
|
CONTENT_GLASS,
|
||||||
CONTENT_FENCE,
|
CONTENT_FENCE,
|
||||||
CONTENT_MESE,
|
CONTENT_MESE,
|
||||||
|
|
|
@ -513,6 +513,8 @@ void TextureSource::buildMainAtlas()
|
||||||
sourcelist.push_back("tree_top.png");
|
sourcelist.push_back("tree_top.png");
|
||||||
sourcelist.push_back("water.png");
|
sourcelist.push_back("water.png");
|
||||||
sourcelist.push_back("leaves.png");
|
sourcelist.push_back("leaves.png");
|
||||||
|
sourcelist.push_back("cactus_side.png");
|
||||||
|
sourcelist.push_back("cactus_top.png");
|
||||||
sourcelist.push_back("glass.png");
|
sourcelist.push_back("glass.png");
|
||||||
sourcelist.push_back("mud.png^grass_side.png");
|
sourcelist.push_back("mud.png^grass_side.png");
|
||||||
sourcelist.push_back("cobble.png");
|
sourcelist.push_back("cobble.png");
|
||||||
|
|
Loading…
Reference in New Issue