Clean nodefeat and content_mapnode a bit
parent
9fc78cbece
commit
cde35d1606
|
@ -427,7 +427,8 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
|
||||||
i = CONTENT_WATER;
|
i = CONTENT_WATER;
|
||||||
f = nodemgr->getModifiable(i);
|
f = nodemgr->getModifiable(i);
|
||||||
f->drawtype = NDT_FLOWINGLIQUID;
|
f->drawtype = NDT_FLOWINGLIQUID;
|
||||||
f->setAllTextures("water.png", WATER_ALPHA);
|
f->setAllTextures("water.png");
|
||||||
|
f->alpha = WATER_ALPHA;
|
||||||
f->setInventoryTextureCube("water.png", "water.png", "water.png");
|
f->setInventoryTextureCube("water.png", "water.png", "water.png");
|
||||||
f->param_type = CPT_LIGHT;
|
f->param_type = CPT_LIGHT;
|
||||||
f->light_propagates = true;
|
f->light_propagates = true;
|
||||||
|
@ -440,17 +441,14 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
|
||||||
f->liquid_alternative_source = CONTENT_WATERSOURCE;
|
f->liquid_alternative_source = CONTENT_WATERSOURCE;
|
||||||
f->liquid_viscosity = WATER_VISC;
|
f->liquid_viscosity = WATER_VISC;
|
||||||
f->post_effect_color = video::SColor(64, 100, 100, 200);
|
f->post_effect_color = video::SColor(64, 100, 100, 200);
|
||||||
// Flowing water material
|
f->setSpecialMaterial(0, MaterialSpec("water.png", false));
|
||||||
f->mspec_special[0].tname = "water.png";
|
f->setSpecialMaterial(1, MaterialSpec("water.png", true));
|
||||||
f->mspec_special[0].backface_culling = false;
|
|
||||||
f->mspec_special[1].tname = "water.png";
|
|
||||||
f->mspec_special[1].backface_culling = true;
|
|
||||||
|
|
||||||
i = CONTENT_WATERSOURCE;
|
i = CONTENT_WATERSOURCE;
|
||||||
f = nodemgr->getModifiable(i);
|
f = nodemgr->getModifiable(i);
|
||||||
f->drawtype = NDT_LIQUID;
|
f->drawtype = NDT_LIQUID;
|
||||||
f->setAllTextures("water.png", WATER_ALPHA);
|
f->setAllTextures("water.png");
|
||||||
//f->setInventoryTexture("water.png");
|
f->alpha = WATER_ALPHA;
|
||||||
f->setInventoryTextureCube("water.png", "water.png", "water.png");
|
f->setInventoryTextureCube("water.png", "water.png", "water.png");
|
||||||
f->param_type = CPT_LIGHT;
|
f->param_type = CPT_LIGHT;
|
||||||
f->light_propagates = true;
|
f->light_propagates = true;
|
||||||
|
@ -465,8 +463,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
|
||||||
f->liquid_viscosity = WATER_VISC;
|
f->liquid_viscosity = WATER_VISC;
|
||||||
f->post_effect_color = video::SColor(64, 100, 100, 200);
|
f->post_effect_color = video::SColor(64, 100, 100, 200);
|
||||||
// New-style water source material (mostly unused)
|
// New-style water source material (mostly unused)
|
||||||
f->mspec_special[0].tname = "water.png";
|
f->setSpecialMaterial(0, MaterialSpec("water.png", false));
|
||||||
f->mspec_special[0].backface_culling = false;
|
|
||||||
|
|
||||||
i = CONTENT_LAVA;
|
i = CONTENT_LAVA;
|
||||||
f = nodemgr->getModifiable(i);
|
f = nodemgr->getModifiable(i);
|
||||||
|
@ -486,11 +483,8 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
|
||||||
f->liquid_viscosity = LAVA_VISC;
|
f->liquid_viscosity = LAVA_VISC;
|
||||||
f->damage_per_second = 4*2;
|
f->damage_per_second = 4*2;
|
||||||
f->post_effect_color = video::SColor(192, 255, 64, 0);
|
f->post_effect_color = video::SColor(192, 255, 64, 0);
|
||||||
// Flowing lava material
|
f->setSpecialMaterial(0, MaterialSpec("lava.png", false));
|
||||||
f->mspec_special[0].tname = "lava.png";
|
f->setSpecialMaterial(1, MaterialSpec("lava.png", true));
|
||||||
f->mspec_special[0].backface_culling = false;
|
|
||||||
f->mspec_special[1].tname = "lava.png";
|
|
||||||
f->mspec_special[1].backface_culling = true;
|
|
||||||
|
|
||||||
i = CONTENT_LAVASOURCE;
|
i = CONTENT_LAVASOURCE;
|
||||||
f = nodemgr->getModifiable(i);
|
f = nodemgr->getModifiable(i);
|
||||||
|
@ -512,8 +506,7 @@ void content_mapnode_init(IWritableNodeDefManager *nodemgr)
|
||||||
f->damage_per_second = 4*2;
|
f->damage_per_second = 4*2;
|
||||||
f->post_effect_color = video::SColor(192, 255, 64, 0);
|
f->post_effect_color = video::SColor(192, 255, 64, 0);
|
||||||
// New-style lava source material (mostly unused)
|
// New-style lava source material (mostly unused)
|
||||||
f->mspec_special[0].tname = "lava.png";
|
f->setSpecialMaterial(0, MaterialSpec("lava.png", false));
|
||||||
f->mspec_special[0].backface_culling = false;
|
|
||||||
|
|
||||||
i = CONTENT_TORCH;
|
i = CONTENT_TORCH;
|
||||||
f = nodemgr->getModifiable(i);
|
f = nodemgr->getModifiable(i);
|
||||||
|
|
|
@ -27,7 +27,11 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
#include "settings.h"
|
#include "settings.h"
|
||||||
|
|
||||||
void NodeBox::serialize(std::ostream &os)
|
/*
|
||||||
|
NodeBox
|
||||||
|
*/
|
||||||
|
|
||||||
|
void NodeBox::serialize(std::ostream &os) const
|
||||||
{
|
{
|
||||||
writeU8(os, 0); // version
|
writeU8(os, 0); // version
|
||||||
writeU8(os, type);
|
writeU8(os, type);
|
||||||
|
@ -57,7 +61,11 @@ void NodeBox::deSerialize(std::istream &is)
|
||||||
wall_side.MaxEdge = readV3F1000(is);
|
wall_side.MaxEdge = readV3F1000(is);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MaterialSpec::serialize(std::ostream &os)
|
/*
|
||||||
|
MaterialSpec
|
||||||
|
*/
|
||||||
|
|
||||||
|
void MaterialSpec::serialize(std::ostream &os) const
|
||||||
{
|
{
|
||||||
os<<serializeString(tname);
|
os<<serializeString(tname);
|
||||||
writeU8(os, backface_culling);
|
writeU8(os, backface_culling);
|
||||||
|
@ -69,6 +77,10 @@ void MaterialSpec::deSerialize(std::istream &is)
|
||||||
backface_culling = readU8(is);
|
backface_culling = readU8(is);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
ContentFeatures
|
||||||
|
*/
|
||||||
|
|
||||||
ContentFeatures::ContentFeatures()
|
ContentFeatures::ContentFeatures()
|
||||||
{
|
{
|
||||||
reset();
|
reset();
|
||||||
|
@ -248,6 +260,20 @@ void ContentFeatures::setTexture(u16 i, std::string name)
|
||||||
tname_inventory = name;
|
tname_inventory = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ContentFeatures::setAllTextures(std::string name)
|
||||||
|
{
|
||||||
|
for(u16 i=0; i<6; i++)
|
||||||
|
setTexture(i, name);
|
||||||
|
// Force inventory texture too
|
||||||
|
setInventoryTexture(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ContentFeatures::setSpecialMaterial(u16 i, const MaterialSpec &mspec)
|
||||||
|
{
|
||||||
|
assert(i < CF_SPECIAL_COUNT);
|
||||||
|
mspec_special[i] = mspec;
|
||||||
|
}
|
||||||
|
|
||||||
void ContentFeatures::setInventoryTexture(std::string imgname)
|
void ContentFeatures::setInventoryTexture(std::string imgname)
|
||||||
{
|
{
|
||||||
tname_inventory = imgname + "^[forcesingle";
|
tname_inventory = imgname + "^[forcesingle";
|
||||||
|
@ -270,6 +296,10 @@ void ContentFeatures::setInventoryTextureCube(std::string top,
|
||||||
tname_inventory = imgname_full;
|
tname_inventory = imgname_full;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
CNodeDefManager
|
||||||
|
*/
|
||||||
|
|
||||||
class CNodeDefManager: public IWritableNodeDefManager
|
class CNodeDefManager: public IWritableNodeDefManager
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -98,7 +98,7 @@ struct NodeBox
|
||||||
wall_side(-BS/2, -BS/2, -BS/2, -BS/2+BS/16., BS/2, BS/2)
|
wall_side(-BS/2, -BS/2, -BS/2, -BS/2+BS/16., BS/2, BS/2)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
void serialize(std::ostream &os);
|
void serialize(std::ostream &os) const;
|
||||||
void deSerialize(std::istream &is);
|
void deSerialize(std::istream &is);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -115,7 +115,7 @@ struct MaterialSpec
|
||||||
backface_culling(backface_culling_)
|
backface_culling(backface_culling_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
void serialize(std::ostream &os);
|
void serialize(std::ostream &os) const;
|
||||||
void deSerialize(std::istream &is);
|
void deSerialize(std::istream &is);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -156,9 +156,8 @@ struct ContentFeatures
|
||||||
bool backface_culling;
|
bool backface_culling;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// List of all block textures that have been used (value is dummy)
|
// List of textures that are used and are wanted to be included in
|
||||||
// Used for texture atlas making.
|
// the texture atlas
|
||||||
// Exists on server too for cleaner code in content_mapnode.cpp.
|
|
||||||
std::set<std::string> used_texturenames;
|
std::set<std::string> used_texturenames;
|
||||||
|
|
||||||
// True if this actually contains non-default data
|
// True if this actually contains non-default data
|
||||||
|
@ -173,7 +172,7 @@ struct ContentFeatures
|
||||||
float visual_scale; // Misc. scale parameter
|
float visual_scale; // Misc. scale parameter
|
||||||
std::string tname_tiles[6];
|
std::string tname_tiles[6];
|
||||||
std::string tname_inventory;
|
std::string tname_inventory;
|
||||||
MaterialSpec mspec_special[CF_SPECIAL_COUNT];
|
MaterialSpec mspec_special[CF_SPECIAL_COUNT]; // Use setter methods
|
||||||
u8 alpha;
|
u8 alpha;
|
||||||
|
|
||||||
// Post effect color, drawn when the camera is inside the node.
|
// Post effect color, drawn when the camera is inside the node.
|
||||||
|
@ -240,19 +239,14 @@ struct ContentFeatures
|
||||||
void deSerialize(std::istream &is, IGameDef *gamedef);
|
void deSerialize(std::istream &is, IGameDef *gamedef);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Quickhands for simple materials
|
Texture setters.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// Texture setters. They also add stuff to used_texturenames.
|
||||||
void setTexture(u16 i, std::string name);
|
void setTexture(u16 i, std::string name);
|
||||||
|
void setAllTextures(std::string name);
|
||||||
void setAllTextures(std::string name, u8 alpha_=255)
|
void setSpecialMaterial(u16 i, const MaterialSpec &mspec);
|
||||||
{
|
|
||||||
for(u16 i=0; i<6; i++)
|
|
||||||
setTexture(i, name);
|
|
||||||
alpha = alpha_;
|
|
||||||
// Force inventory texture too
|
|
||||||
setInventoryTexture(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
void setInventoryTexture(std::string imgname);
|
void setInventoryTexture(std::string imgname);
|
||||||
void setInventoryTextureCube(std::string top,
|
void setInventoryTextureCube(std::string top,
|
||||||
|
|
Loading…
Reference in New Issue