Files
DarkflameServer/dGame/dPropertyBehaviors/State.h
David Markowitz fc6a7fbd52 feat: Add a bunch of behaviors (All rotations, DoDamage, OnTimer, OnStartup, MoveBackToStart) and make models move based on normals, not world axes (#2038)
* add rotation behavior logic (not working correctly for multiple axes)

* Fix FetchContent_Declare speed

* remove manual quaternion math

* feat: working rotations

* remove flag

* feat: make directional movements based on model rotation and not world axes

* poggers rotation on the strip

* Add OnStartup and OnTimer

* go home works

* Add DoDamage behavior and dont try and start the same node multiple times

* fix: pause bbb models

* interrupt rotations and save interrupt count across resets
2026-10-05 12:33:45 -05:00

36 lines
761 B
C++

#ifndef __STATE__H__
#define __STATE__H__
#include "Strip.h"
namespace tinyxml2 {
class XMLElement;
}
class AMFArrayValue;
class ModelComponent;
struct UpdateResult;
class State {
public:
template <typename Msg>
void HandleMsg(Msg& msg);
void SendBehaviorBlocksToClient(AMFArrayValue& args) const;
bool IsEmpty() const;
void Serialize(tinyxml2::XMLElement& state) const;
void Deserialize(const tinyxml2::XMLElement& state);
void Update(float deltaTime, ModelComponent& modelComponent, UpdateResult& updateResult);
void OnChatMessageReceived(const std::string& sMessage, const LWOOBJID sender);
void OnHit(const LWOOBJID attacker);
private:
// The strips contained within this state.
std::vector<Strip> m_Strips;
};
#endif //!__STATE__H__