32 void tick(uint64_t dt);
54 void syncAttaches(
const Tempest::Matrix4x4& pos);
55 void syncAttachesSingle(
const Tempest::Matrix4x4& inPos);
56 void setupLight(
World& owner);
57 void setupPfx(
World& owner);
58 void setupSfx(
World& owner);
59 void setupCollision(
World& owner);
69 Npc* origin =
nullptr;
70 const Npc* target =
nullptr;
75 std::string_view nodeSlot;
76 size_t boneId = size_t(-1);
78 const Pose* pose =
nullptr;
82 Tempest::Matrix4x4 pos;
83 Tempest::Vec3 selfRotation;
87 bool noPhysics =
false;
89 std::unique_ptr<Effect> next;
void setMesh(const MeshObjects::Mesh *mesh)
const VisualFx * handle() const
void setTarget(const Npc *npc)
Effect(const VisualFx &vfx, World &owner, const Tempest::Vec3 &pos, SpellFxKey key=SpellFxKey::Count)
static void onCollide(World &owner, const VisualFx *root, const Tempest::Vec3 &pos, Npc *npc, Npc *other, int32_t splId)
void bindAttaches(const Pose &pose, const Skeleton &to)
bool is(const VisualFx &vfx) const
void setKey(World &owner, SpellFxKey key, int32_t keyLvl=0)
Effect & operator=(Effect &&)=default
uint64_t effectPrefferedTime() const
void setObjMatrix(const Tempest::Matrix4x4 &mt)
void setBullet(Bullet *b, World &owner)
void setSpellId(int32_t splId, World &owner)
Effect(Effect &&)=default