mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2025-12-20 11:59:40 -06:00
Compare commits
4 Commits
csr_comman
...
propertybe
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b79406c27d | ||
|
|
ff1523b43f | ||
|
|
56ec037eb6 | ||
|
|
06897eb2ae |
@@ -15,6 +15,7 @@ ModelComponent::ModelComponent(Entity* parent) : Component(parent) {
|
|||||||
m_OriginalRotation = m_Parent->GetDefaultRotation();
|
m_OriginalRotation = m_Parent->GetDefaultRotation();
|
||||||
|
|
||||||
m_userModelID = m_Parent->GetVarAs<LWOOBJID>(u"userModelID");
|
m_userModelID = m_Parent->GetVarAs<LWOOBJID>(u"userModelID");
|
||||||
|
m_Running = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ModelComponent::LoadBehaviors() {
|
void ModelComponent::LoadBehaviors() {
|
||||||
@@ -66,6 +67,11 @@ void ModelComponent::Serialize(RakNet::BitStream& outBitStream, bool bIsInitialU
|
|||||||
if (bIsInitialUpdate) outBitStream.Write0(); // We are not writing model editing info
|
if (bIsInitialUpdate) outBitStream.Write0(); // We are not writing model editing info
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ModelComponent::Update(float deltaTime) {
|
||||||
|
if (!m_Running) return;
|
||||||
|
for (auto& behavior : m_Behaviors) behavior.Update(deltaTime, *this);
|
||||||
|
}
|
||||||
|
|
||||||
void ModelComponent::UpdatePendingBehaviorId(const int32_t newId) {
|
void ModelComponent::UpdatePendingBehaviorId(const int32_t newId) {
|
||||||
for (auto& behavior : m_Behaviors) if (behavior.GetBehaviorId() == -1) behavior.SetBehaviorId(newId);
|
for (auto& behavior : m_Behaviors) if (behavior.GetBehaviorId() == -1) behavior.SetBehaviorId(newId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,8 @@ public:
|
|||||||
|
|
||||||
ModelComponent(Entity* parent);
|
ModelComponent(Entity* parent);
|
||||||
|
|
||||||
|
void Update(float deltaTime) override;
|
||||||
|
|
||||||
void LoadBehaviors();
|
void LoadBehaviors();
|
||||||
|
|
||||||
void Serialize(RakNet::BitStream& outBitStream, bool bIsInitialUpdate) override;
|
void Serialize(RakNet::BitStream& outBitStream, bool bIsInitialUpdate) override;
|
||||||
@@ -114,7 +116,11 @@ public:
|
|||||||
|
|
||||||
std::array<std::pair<int32_t, std::string>, 5> GetBehaviorsForSave() const;
|
std::array<std::pair<int32_t, std::string>, 5> GetBehaviorsForSave() const;
|
||||||
|
|
||||||
|
void SetIsRunning(bool isRunning) { m_Running = isRunning; }
|
||||||
|
bool GetIsRunning() const { return m_Running; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
bool m_Running;
|
||||||
/**
|
/**
|
||||||
* The behaviors of the model
|
* The behaviors of the model
|
||||||
* Note: This is a vector because the order of the behaviors matters when serializing to the client.
|
* Note: This is a vector because the order of the behaviors matters when serializing to the client.
|
||||||
|
|||||||
@@ -253,6 +253,15 @@ void PropertyManagementComponent::OnStartBuilding() {
|
|||||||
|
|
||||||
// Push equipped items
|
// Push equipped items
|
||||||
if (inventoryComponent) inventoryComponent->PushEquippedItems();
|
if (inventoryComponent) inventoryComponent->PushEquippedItems();
|
||||||
|
|
||||||
|
for (const auto obj : models | std::views::keys) {
|
||||||
|
auto* const model = Game::entityManager->GetEntity(obj);
|
||||||
|
|
||||||
|
if (!model) continue;
|
||||||
|
|
||||||
|
auto* const modelComponent = model->GetComponent<ModelComponent>();
|
||||||
|
if (modelComponent) modelComponent->SetIsRunning(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertyManagementComponent::OnFinishBuilding() {
|
void PropertyManagementComponent::OnFinishBuilding() {
|
||||||
@@ -265,6 +274,14 @@ void PropertyManagementComponent::OnFinishBuilding() {
|
|||||||
UpdateApprovedStatus(false);
|
UpdateApprovedStatus(false);
|
||||||
|
|
||||||
Save();
|
Save();
|
||||||
|
for (const auto obj : models | std::views::keys) {
|
||||||
|
auto* const model = Game::entityManager->GetEntity(obj);
|
||||||
|
|
||||||
|
if (!model) continue;
|
||||||
|
|
||||||
|
auto* const modelComponent = model->GetComponent<ModelComponent>();
|
||||||
|
if (modelComponent) modelComponent->SetIsRunning(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertyManagementComponent::UpdateModelPosition(const LWOOBJID id, const NiPoint3 position, NiQuaternion rotation) {
|
void PropertyManagementComponent::UpdateModelPosition(const LWOOBJID id, const NiPoint3 position, NiQuaternion rotation) {
|
||||||
|
|||||||
@@ -22,6 +22,26 @@ Action::Action(const AMFArrayValue& arguments) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Action::Update(float deltaTime, const ModelComponent& modelComponent) {
|
||||||
|
// Do nothing
|
||||||
|
if (Running()) return;
|
||||||
|
|
||||||
|
// model component default speed is 3.0f
|
||||||
|
if (m_Type == "FlyUp") {
|
||||||
|
|
||||||
|
} else if (m_Type == "FlyDown") {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Action::Done() const noexcept {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Action::Running() const noexcept {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
void Action::SendBehaviorBlocksToClient(AMFArrayValue& args) const {
|
void Action::SendBehaviorBlocksToClient(AMFArrayValue& args) const {
|
||||||
auto* const actionArgs = args.PushArray();
|
auto* const actionArgs = args.PushArray();
|
||||||
actionArgs->Insert("Type", m_Type);
|
actionArgs->Insert("Type", m_Type);
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ namespace tinyxml2 {
|
|||||||
};
|
};
|
||||||
|
|
||||||
class AMFArrayValue;
|
class AMFArrayValue;
|
||||||
|
class ModelComponent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Sent if a ControlBehavior message has an Action associated with it
|
* @brief Sent if a ControlBehavior message has an Action associated with it
|
||||||
@@ -17,6 +18,13 @@ class Action {
|
|||||||
public:
|
public:
|
||||||
Action() = default;
|
Action() = default;
|
||||||
Action(const AMFArrayValue& arguments);
|
Action(const AMFArrayValue& arguments);
|
||||||
|
|
||||||
|
void Update(float deltaTime, const ModelComponent& modelComponent);
|
||||||
|
|
||||||
|
bool Done() const noexcept;
|
||||||
|
|
||||||
|
bool Running() const noexcept;
|
||||||
|
|
||||||
[[nodiscard]] const std::string& GetType() const { return m_Type; };
|
[[nodiscard]] const std::string& GetType() const { return m_Type; };
|
||||||
[[nodiscard]] const std::string& GetValueParameterName() const { return m_ValueParameterName; };
|
[[nodiscard]] const std::string& GetValueParameterName() const { return m_ValueParameterName; };
|
||||||
[[nodiscard]] const std::string& GetValueParameterString() const { return m_ValueParameterString; };
|
[[nodiscard]] const std::string& GetValueParameterString() const { return m_ValueParameterString; };
|
||||||
|
|||||||
@@ -9,6 +9,12 @@ PropertyBehavior::PropertyBehavior() {
|
|||||||
m_LastEditedState = BehaviorState::HOME_STATE;
|
m_LastEditedState = BehaviorState::HOME_STATE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PropertyBehavior::Update(float deltaTime, const ModelComponent& modelComponent) {
|
||||||
|
for (auto& [stateId, state] : m_States) {
|
||||||
|
state.Update(deltaTime, modelComponent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
void PropertyBehavior::HandleMsg(AddStripMessage& msg) {
|
void PropertyBehavior::HandleMsg(AddStripMessage& msg) {
|
||||||
m_States[msg.GetActionContext().GetStateId()].HandleMsg(msg);
|
m_States[msg.GetActionContext().GetStateId()].HandleMsg(msg);
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ namespace tinyxml2 {
|
|||||||
enum class BehaviorState : uint32_t;
|
enum class BehaviorState : uint32_t;
|
||||||
|
|
||||||
class AMFArrayValue;
|
class AMFArrayValue;
|
||||||
|
class ModelComponent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents the Entity of a Property Behavior and holds data associated with the behavior
|
* Represents the Entity of a Property Behavior and holds data associated with the behavior
|
||||||
@@ -18,6 +19,8 @@ class PropertyBehavior {
|
|||||||
public:
|
public:
|
||||||
PropertyBehavior();
|
PropertyBehavior();
|
||||||
|
|
||||||
|
void Update(float deltaTime, const ModelComponent& modelComponent);
|
||||||
|
|
||||||
template <typename Msg>
|
template <typename Msg>
|
||||||
void HandleMsg(Msg& msg);
|
void HandleMsg(Msg& msg);
|
||||||
|
|
||||||
|
|||||||
@@ -4,13 +4,19 @@
|
|||||||
#include "ControlBehaviorMsgs.h"
|
#include "ControlBehaviorMsgs.h"
|
||||||
#include "tinyxml2.h"
|
#include "tinyxml2.h"
|
||||||
|
|
||||||
|
void State::Update(float deltaTime, const ModelComponent& modelComponent) {
|
||||||
|
for (auto& strip : m_Strips) {
|
||||||
|
strip.Update(deltaTime, modelComponent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
void State::HandleMsg(AddStripMessage& msg) {
|
void State::HandleMsg(AddStripMessage& msg) {
|
||||||
if (m_Strips.size() <= msg.GetActionContext().GetStripId()) {
|
if (m_Strips.size() <= msg.GetActionContext().GetStripId()) {
|
||||||
m_Strips.resize(msg.GetActionContext().GetStripId() + 1);
|
m_Strips.resize(msg.GetActionContext().GetStripId() + 1);
|
||||||
}
|
}
|
||||||
m_Strips.at(msg.GetActionContext().GetStripId()).HandleMsg(msg);
|
m_Strips.at(msg.GetActionContext().GetStripId()).HandleMsg(msg);
|
||||||
};
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
void State::HandleMsg(AddActionMessage& msg) {
|
void State::HandleMsg(AddActionMessage& msg) {
|
||||||
@@ -19,7 +25,7 @@ void State::HandleMsg(AddActionMessage& msg) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_Strips.at(msg.GetActionContext().GetStripId()).HandleMsg(msg);
|
m_Strips.at(msg.GetActionContext().GetStripId()).HandleMsg(msg);
|
||||||
};
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
void State::HandleMsg(UpdateStripUiMessage& msg) {
|
void State::HandleMsg(UpdateStripUiMessage& msg) {
|
||||||
@@ -28,7 +34,7 @@ void State::HandleMsg(UpdateStripUiMessage& msg) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_Strips.at(msg.GetActionContext().GetStripId()).HandleMsg(msg);
|
m_Strips.at(msg.GetActionContext().GetStripId()).HandleMsg(msg);
|
||||||
};
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
void State::HandleMsg(RemoveActionsMessage& msg) {
|
void State::HandleMsg(RemoveActionsMessage& msg) {
|
||||||
@@ -37,7 +43,7 @@ void State::HandleMsg(RemoveActionsMessage& msg) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_Strips.at(msg.GetActionContext().GetStripId()).HandleMsg(msg);
|
m_Strips.at(msg.GetActionContext().GetStripId()).HandleMsg(msg);
|
||||||
};
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
void State::HandleMsg(RearrangeStripMessage& msg) {
|
void State::HandleMsg(RearrangeStripMessage& msg) {
|
||||||
@@ -46,7 +52,7 @@ void State::HandleMsg(RearrangeStripMessage& msg) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_Strips.at(msg.GetActionContext().GetStripId()).HandleMsg(msg);
|
m_Strips.at(msg.GetActionContext().GetStripId()).HandleMsg(msg);
|
||||||
};
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
void State::HandleMsg(UpdateActionMessage& msg) {
|
void State::HandleMsg(UpdateActionMessage& msg) {
|
||||||
@@ -55,7 +61,7 @@ void State::HandleMsg(UpdateActionMessage& msg) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_Strips.at(msg.GetActionContext().GetStripId()).HandleMsg(msg);
|
m_Strips.at(msg.GetActionContext().GetStripId()).HandleMsg(msg);
|
||||||
};
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
void State::HandleMsg(RemoveStripMessage& msg) {
|
void State::HandleMsg(RemoveStripMessage& msg) {
|
||||||
@@ -64,7 +70,7 @@ void State::HandleMsg(RemoveStripMessage& msg) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_Strips.at(msg.GetActionContext().GetStripId()).HandleMsg(msg);
|
m_Strips.at(msg.GetActionContext().GetStripId()).HandleMsg(msg);
|
||||||
};
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
void State::HandleMsg(SplitStripMessage& msg) {
|
void State::HandleMsg(SplitStripMessage& msg) {
|
||||||
@@ -81,7 +87,7 @@ void State::HandleMsg(SplitStripMessage& msg) {
|
|||||||
|
|
||||||
m_Strips.at(msg.GetDestinationActionContext().GetStripId()).HandleMsg(msg);
|
m_Strips.at(msg.GetDestinationActionContext().GetStripId()).HandleMsg(msg);
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
void State::HandleMsg(MergeStripsMessage& msg) {
|
void State::HandleMsg(MergeStripsMessage& msg) {
|
||||||
@@ -98,7 +104,7 @@ void State::HandleMsg(MergeStripsMessage& msg) {
|
|||||||
|
|
||||||
m_Strips.at(msg.GetDestinationActionContext().GetStripId()).HandleMsg(msg);
|
m_Strips.at(msg.GetDestinationActionContext().GetStripId()).HandleMsg(msg);
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
void State::HandleMsg(MigrateActionsMessage& msg) {
|
void State::HandleMsg(MigrateActionsMessage& msg) {
|
||||||
@@ -115,7 +121,7 @@ void State::HandleMsg(MigrateActionsMessage& msg) {
|
|||||||
|
|
||||||
m_Strips.at(msg.GetDestinationActionContext().GetStripId()).HandleMsg(msg);
|
m_Strips.at(msg.GetDestinationActionContext().GetStripId()).HandleMsg(msg);
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
bool State::IsEmpty() const {
|
bool State::IsEmpty() const {
|
||||||
for (const auto& strip : m_Strips) {
|
for (const auto& strip : m_Strips) {
|
||||||
|
|||||||
@@ -8,9 +8,12 @@ namespace tinyxml2 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class AMFArrayValue;
|
class AMFArrayValue;
|
||||||
|
class ModelComponent;
|
||||||
|
|
||||||
class State {
|
class State {
|
||||||
public:
|
public:
|
||||||
|
void Update(float deltaTime, const ModelComponent& modelComponent);
|
||||||
|
|
||||||
template <typename Msg>
|
template <typename Msg>
|
||||||
void HandleMsg(Msg& msg);
|
void HandleMsg(Msg& msg);
|
||||||
|
|
||||||
|
|||||||
@@ -4,45 +4,54 @@
|
|||||||
#include "ControlBehaviorMsgs.h"
|
#include "ControlBehaviorMsgs.h"
|
||||||
#include "tinyxml2.h"
|
#include "tinyxml2.h"
|
||||||
|
|
||||||
|
void Strip::Update(float deltaTime, const ModelComponent& modelComponent) {
|
||||||
|
if (m_Actions.empty() || m_ActionIndex >= m_Actions.size()) return;
|
||||||
|
|
||||||
|
auto& action = m_Actions[m_ActionIndex];
|
||||||
|
action.Update(deltaTime, modelComponent);
|
||||||
|
LOG("Running action %s", action.GetType().c_str());
|
||||||
|
if (action.Done()) m_ActionIndex++;
|
||||||
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
void Strip::HandleMsg(AddStripMessage& msg) {
|
void Strip::HandleMsg(AddStripMessage& msg) {
|
||||||
m_Actions = msg.GetActionsToAdd();
|
m_Actions = msg.GetActionsToAdd();
|
||||||
m_Position = msg.GetPosition();
|
m_Position = msg.GetPosition();
|
||||||
};
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
void Strip::HandleMsg(AddActionMessage& msg) {
|
void Strip::HandleMsg(AddActionMessage& msg) {
|
||||||
if (msg.GetActionIndex() == -1) return;
|
if (msg.GetActionIndex() == -1) return;
|
||||||
m_Actions.insert(m_Actions.begin() + msg.GetActionIndex(), msg.GetAction());
|
auto newAction = m_Actions.insert(m_Actions.begin() + msg.GetActionIndex(), msg.GetAction());
|
||||||
};
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
void Strip::HandleMsg(UpdateStripUiMessage& msg) {
|
void Strip::HandleMsg(UpdateStripUiMessage& msg) {
|
||||||
m_Position = msg.GetPosition();
|
m_Position = msg.GetPosition();
|
||||||
};
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
void Strip::HandleMsg(RemoveStripMessage& msg) {
|
void Strip::HandleMsg(RemoveStripMessage& msg) {
|
||||||
m_Actions.clear();
|
m_Actions.clear();
|
||||||
};
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
void Strip::HandleMsg(RemoveActionsMessage& msg) {
|
void Strip::HandleMsg(RemoveActionsMessage& msg) {
|
||||||
if (msg.GetActionIndex() >= m_Actions.size()) return;
|
if (msg.GetActionIndex() >= m_Actions.size()) return;
|
||||||
m_Actions.erase(m_Actions.begin() + msg.GetActionIndex(), m_Actions.end());
|
m_Actions.erase(m_Actions.begin() + msg.GetActionIndex(), m_Actions.end());
|
||||||
};
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
void Strip::HandleMsg(UpdateActionMessage& msg) {
|
void Strip::HandleMsg(UpdateActionMessage& msg) {
|
||||||
if (msg.GetActionIndex() >= m_Actions.size()) return;
|
if (msg.GetActionIndex() >= m_Actions.size()) return;
|
||||||
m_Actions.at(msg.GetActionIndex()) = msg.GetAction();
|
m_Actions.at(msg.GetActionIndex()) = msg.GetAction();
|
||||||
};
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
void Strip::HandleMsg(RearrangeStripMessage& msg) {
|
void Strip::HandleMsg(RearrangeStripMessage& msg) {
|
||||||
if (msg.GetDstActionIndex() >= m_Actions.size() || msg.GetSrcActionIndex() >= m_Actions.size() || msg.GetSrcActionIndex() <= msg.GetDstActionIndex()) return;
|
if (msg.GetDstActionIndex() >= m_Actions.size() || msg.GetSrcActionIndex() >= m_Actions.size() || msg.GetSrcActionIndex() <= msg.GetDstActionIndex()) return;
|
||||||
std::rotate(m_Actions.begin() + msg.GetDstActionIndex(), m_Actions.begin() + msg.GetSrcActionIndex(), m_Actions.end());
|
std::rotate(m_Actions.begin() + msg.GetDstActionIndex(), m_Actions.begin() + msg.GetSrcActionIndex(), m_Actions.end());
|
||||||
};
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
void Strip::HandleMsg(SplitStripMessage& msg) {
|
void Strip::HandleMsg(SplitStripMessage& msg) {
|
||||||
@@ -54,7 +63,7 @@ void Strip::HandleMsg(SplitStripMessage& msg) {
|
|||||||
m_Actions = msg.GetTransferredActions();
|
m_Actions = msg.GetTransferredActions();
|
||||||
m_Position = msg.GetPosition();
|
m_Position = msg.GetPosition();
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
void Strip::HandleMsg(MergeStripsMessage& msg) {
|
void Strip::HandleMsg(MergeStripsMessage& msg) {
|
||||||
@@ -64,7 +73,7 @@ void Strip::HandleMsg(MergeStripsMessage& msg) {
|
|||||||
} else {
|
} else {
|
||||||
m_Actions.insert(m_Actions.begin() + msg.GetDstActionIndex(), msg.GetMigratedActions().begin(), msg.GetMigratedActions().end());
|
m_Actions.insert(m_Actions.begin() + msg.GetDstActionIndex(), msg.GetMigratedActions().begin(), msg.GetMigratedActions().end());
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
void Strip::HandleMsg(MigrateActionsMessage& msg) {
|
void Strip::HandleMsg(MigrateActionsMessage& msg) {
|
||||||
@@ -75,7 +84,7 @@ void Strip::HandleMsg(MigrateActionsMessage& msg) {
|
|||||||
} else {
|
} else {
|
||||||
m_Actions.insert(m_Actions.begin() + msg.GetDstActionIndex(), msg.GetMigratedActions().begin(), msg.GetMigratedActions().end());
|
m_Actions.insert(m_Actions.begin() + msg.GetDstActionIndex(), msg.GetMigratedActions().begin(), msg.GetMigratedActions().end());
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
void Strip::SendBehaviorBlocksToClient(AMFArrayValue& args) const {
|
void Strip::SendBehaviorBlocksToClient(AMFArrayValue& args) const {
|
||||||
m_Position.SendBehaviorBlocksToClient(args);
|
m_Position.SendBehaviorBlocksToClient(args);
|
||||||
|
|||||||
@@ -11,9 +11,12 @@ namespace tinyxml2 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class AMFArrayValue;
|
class AMFArrayValue;
|
||||||
|
class ModelComponent;
|
||||||
|
|
||||||
class Strip {
|
class Strip {
|
||||||
public:
|
public:
|
||||||
|
void Update(float deltaTime, const ModelComponent& modelComponent);
|
||||||
|
|
||||||
template <typename Msg>
|
template <typename Msg>
|
||||||
void HandleMsg(Msg& msg);
|
void HandleMsg(Msg& msg);
|
||||||
|
|
||||||
@@ -23,6 +26,8 @@ public:
|
|||||||
void Serialize(tinyxml2::XMLElement& strip) const;
|
void Serialize(tinyxml2::XMLElement& strip) const;
|
||||||
void Deserialize(const tinyxml2::XMLElement& strip);
|
void Deserialize(const tinyxml2::XMLElement& strip);
|
||||||
private:
|
private:
|
||||||
|
uint32_t m_ActionIndex{ 0 };
|
||||||
|
|
||||||
std::vector<Action> m_Actions;
|
std::vector<Action> m_Actions;
|
||||||
StripUiPosition m_Position;
|
StripUiPosition m_Position;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user