#include "content_cso.h"
#include <IBillboardSceneNode.h>
-#include "tile.h"
-#include "environment.h"
-#include "gamedef.h"
-#include "log.h"
+#include "client/tile.h"
+#include "clientenvironment.h"
+#include "client.h"
#include "map.h"
-/*
-static void setBillboardTextureMatrix(scene::IBillboardSceneNode *bill,
- float txs, float tys, int col, int row)
-{
- video::SMaterial& material = bill->getMaterial(0);
- core::matrix4& matrix = material.getTextureMatrix(0);
- matrix.setTextureTranslate(txs*col, tys*row);
- matrix.setTextureScale(txs, tys);
-}
-*/
-
class SmokePuffCSO: public ClientSimpleObject
{
float m_age;
m_spritenode = smgr->addBillboardSceneNode(
NULL, v2f(1,1), pos, -1);
m_spritenode->setMaterialTexture(0,
- env->getGameDef()->tsrc()->getTextureRaw("smoke_puff.png"));
+ env->getGameDef()->tsrc()->getTextureForMesh("smoke_puff.png"));
m_spritenode->setMaterialFlag(video::EMF_LIGHTING, false);
m_spritenode->setMaterialFlag(video::EMF_BILINEAR_FILTER, false);
//m_spritenode->setMaterialType(video::EMT_TRANSPARENT_ALPHA_CHANNEL_REF);
m_spritenode->setVisible(true);
m_spritenode->setSize(size);
/* Update brightness */
- u8 light = 64;
- try{
- MapNode n = env->getMap().getNode(floatToInt(pos, BS));
- light = decode_light(n.getLightBlend(env->getDayNightRatio(),
- env->getGameDef()->ndef()));
- }
- catch(InvalidPositionException &e){}
+ u8 light;
+ bool pos_ok;
+ MapNode n = env->getMap().getNodeNoEx(floatToInt(pos, BS), &pos_ok);
+ light = pos_ok ? decode_light(n.getLightBlend(env->getDayNightRatio(),
+ env->getGameDef()->ndef()))
+ : 64;
video::SColor color(255,light,light,light);
m_spritenode->setColor(color);
}