OpenGothic
Open source reimplementation of Gothic I and II
Loading...
Searching...
No Matches
pfxemitter.h
Go to the documentation of this file.
1#pragma once
2
3#include <Tempest/Matrix4x4>
4#include <Tempest/Vec>
5
9
10class World;
11class ParticleFx;
12class PfxBucket;
13class PfxObjects;
14class PfxEmitterMesh;
15
17 public:
18 PfxEmitter()=default;
19 PfxEmitter(World& world, std::string_view name);
20 PfxEmitter(World& world, const ParticleFx* decl);
21 PfxEmitter(PfxObjects& obj, const ParticleFx* vob);
22 PfxEmitter(World& world, const zenkit::VirtualObject& vob);
26 PfxEmitter(const PfxEmitter&)=delete;
27
28 bool isEmpty() const { return bucket==nullptr; }
29 void setPosition (float x,float y,float z);
30 void setPosition (const Tempest::Vec3& pos);
31 void setDirection(const Tempest::Matrix4x4& pos);
32 void setObjMatrix(const Tempest::Matrix4x4& mt);
33 void setActive(bool act);
34 bool isActive() const;
35 void setLooped(bool loop);
36 void setMesh(const MeshObjects::Mesh* mesh, const Pose* pose);
37
38 void setTarget(const Npc* tg);
39
40 void setPhysicsEnable (World& physic, std::function<void(Npc& npc)> cb);
41 void setPhysicsDisable();
42
43 uint64_t effectPrefferedTime() const;
44 bool isAlive() const;
45
46 private:
47 PfxEmitter(PfxBucket &b,size_t id);
48
49 PfxBucket* bucket = nullptr;
50 size_t id = size_t(-1);
51
52 CollisionZone zone;
53 MeshObjects::Mesh shpMesh;
54
55 friend class PfxBucket;
56 friend class PfxObjects;
57 };
58
Definition npc.h:25
void setPosition(const Tempest::Vec3 &pos)
bool isEmpty() const
Definition pfxemitter.h:28
void setLooped(bool loop)
uint64_t effectPrefferedTime() const
void setObjMatrix(const Tempest::Matrix4x4 &mt)
PfxEmitter(const PfxEmitter &)=delete
bool isAlive() const
void setPhysicsEnable(World &physic, std::function< void(Npc &npc)> cb)
PfxEmitter()=default
bool isActive() const
void setMesh(const MeshObjects::Mesh *mesh, const Pose *pose)
void setPhysicsDisable()
void setActive(bool act)
void setDirection(const Tempest::Matrix4x4 &pos)
void setPosition(float x, float y, float z)
PfxEmitter & operator=(PfxEmitter &&b)
void setTarget(const Npc *tg)
Definition pose.h:16
Definition world.h:31