summaryrefslogtreecommitdiff
path: root/src/itemdef.cpp
diff options
context:
space:
mode:
authorSapier <sapier AT gmx dot net>2015-12-29 19:53:38 +0100
committerSapier <sapier AT gmx dot net>2015-12-29 19:53:38 +0100
commit25d128da36bb5aaa27f0dcd32b86fb5616684426 (patch)
treea372c94fed2009568d6f1deb709258a9f1e589a3 /src/itemdef.cpp
parent61cb4d52a6873a0af69bb8c9a295586f09b2c27a (diff)
downloadminetest-25d128da36bb5aaa27f0dcd32b86fb5616684426.tar.gz
minetest-25d128da36bb5aaa27f0dcd32b86fb5616684426.tar.bz2
minetest-25d128da36bb5aaa27f0dcd32b86fb5616684426.zip
Revert "Add support for using arbitrary meshes as items"
This reverts commit 91bafceee6606fab79db1bde4cba01b84fed65c7. Reverted due to missinterpretation of agreement, obvious dislike and me not interested in doing fights for feature I don't actually need
Diffstat (limited to 'src/itemdef.cpp')
-rw-r--r--src/itemdef.cpp110
1 files changed, 1 insertions, 109 deletions
diff --git a/src/itemdef.cpp b/src/itemdef.cpp
index e37f10d61..fa277f4ff 100644
--- a/src/itemdef.cpp
+++ b/src/itemdef.cpp
@@ -77,8 +77,6 @@ ItemDefinition& ItemDefinition::operator=(const ItemDefinition &def)
sound_place = def.sound_place;
sound_place_failed = def.sound_place_failed;
range = def.range;
- meshname = def.meshname;
- meshtexture = def.meshtexture;
return *this;
}
@@ -159,10 +157,6 @@ void ItemDefinition::serialize(std::ostream &os, u16 protocol_version) const
os << serializeString(sound_place_failed.name);
writeF1000(os, sound_place_failed.gain);
}
-
- //TODO check for protocol version?
- os<<serializeString(meshname);
- os<<serializeString(meshtexture);
}
void ItemDefinition::deSerialize(std::istream &is)
@@ -220,10 +214,6 @@ void ItemDefinition::deSerialize(std::istream &is)
sound_place_failed.name = deSerializeString(is);
sound_place_failed.gain = readF1000(is);
} catch(SerializationError &e) {};
-
- //TODO check for protocol?
- meshname = deSerializeString(is);
- meshtexture = deSerializeString(is);
}
/*
@@ -351,7 +341,7 @@ CItemDefManager::ClientCached* CItemDefManager::createClientCachedDirect(const s
// Create an inventory texture
cc->inventory_texture = NULL;
- if (!def.inventory_image.empty())
+ if (def.inventory_image != "")
cc->inventory_texture = tsrc->getTexture(def.inventory_image);
// Additional processing for nodes:
@@ -362,10 +352,6 @@ CItemDefManager::ClientCached* CItemDefManager::createClientCachedDirect(const s
if (def.type == ITEM_NODE) {
createNodeItemTexture(name, def, nodedef, cc, gamedef, tsrc);
}
- else if (def.type == ITEM_CRAFT) {
- if ( !def.meshname.empty())
- createMeshItemTexture(name, def, nodedef, cc, gamedef, tsrc);
- }
// Put in cache
m_clientcached.set(name, cc);
@@ -664,100 +650,6 @@ void CItemDefManager::createNodeItemTexture(const std::string& name,
if (node_mesh)
node_mesh->drop();
}
-
-/******************************************************************************/
-void CItemDefManager::renderMeshToTexture(const ItemDefinition& def, scene::IMesh* mesh,
- ClientCached* cc, ITextureSource* tsrc) const
-{
- video::ITexture *itemimage = cc->inventory_texture;
-
- /*
- Draw node mesh into a render target texture
- */
- TextureFromMeshParams params;
- params.mesh = mesh;
- params.dim.set(64, 64);
- params.rtt_texture_name = "INVENTORY_" + def.name + "_RTT";
- params.delete_texture_on_shutdown = true;
- params.camera_position.set(0, 1.0, -1.5);
- params.camera_position.rotateXZBy(45);
- params.camera_lookat.set(0, 0, 0);
- // Set orthogonal projection
- params.camera_projection_matrix.buildProjectionMatrixOrthoLH(1.65, 1.65, 0,
- 100);
- params.ambient_light.set(1.0, 0.9, 0.9, 0.9);
- params.light_position.set(10, 100, -50);
- params.light_color.set(1.0, 0.5, 0.5, 0.5);
- params.light_radius = 1000;
- cc->inventory_texture = tsrc->generateTextureFromMesh(params);
-
- // render-to-target didn't work
- if (cc->inventory_texture == NULL) {
-
- cc->inventory_texture = itemimage;
- }
-}
-
-/******************************************************************************/
-void CItemDefManager::createMeshItemTexture(const std::string& name,
- const ItemDefinition& def, INodeDefManager* nodedef,
- ClientCached* cc, IGameDef* gamedef, ITextureSource* tsrc) const
-{
- // Get node properties
- content_t id = nodedef->getId(name);
- const ContentFeatures& f = nodedef->get(id);
-
- if (def.meshname == "")
- return;
-
- video::ITexture *texture = tsrc->getTexture(def.meshtexture);
-
- infostream<<"CItemDefManager::createMeshItemTexture(): mesh"<<std::endl;
-
- scene::IAnimatedMesh *mesh = gamedef->getMesh(def.meshname);
- if(mesh)
- {
-
- video::SColor c(255, 255, 255, 255);
- setMeshColor(mesh, c);
-
- rotateMeshXZby(mesh, 180);
-
- // scale and translate the mesh so it's a
- // unit cube centered on the origin
- scaleMesh(mesh, v3f(1.0 / BS, 1.0 / BS, 1.0 / BS));
-
- // Customize materials
- for (u32 i = 0; i < mesh->getMeshBufferCount(); ++i) {
-
- video::SMaterial &material = mesh->getMeshBuffer(i)->getMaterial();
- material.setTexture(0, texture);
- material.setFlag(video::EMF_BACK_FACE_CULLING, true);
- material.setFlag(video::EMF_BILINEAR_FILTER, false);
- material.MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL_REF;
- }
-
- /*
- Draw node mesh into a render target texture
- */
- renderMeshToTexture(def, mesh, cc, tsrc);
-
- /*
- Use the ingot mesh as the wield mesh
- */
-
- cc->wield_mesh = mesh;
- cc->wield_mesh->grab();
- // no way reference count can be smaller than 2 in this place!
- assert(cc->wield_mesh->getReferenceCount() >= 2);
-
- if (mesh)
- mesh->drop();
-
- }
- else
- errorstream<<"CItemDefManager::createMeshItemTexture(): Could not load mesh "<<def.meshname<<std::endl;
-}
#endif
/******************************************************************************/