mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2025-10-18 21:38:08 +00:00
add resetting
This commit is contained in:
@@ -20,6 +20,17 @@ ModelComponent::ModelComponent(Entity* parent) : Component(parent) {
|
||||
|
||||
m_userModelID = m_Parent->GetVarAs<LWOOBJID>(u"userModelID");
|
||||
RegisterMsg(MessageType::Game::REQUEST_USE, this, &ModelComponent::OnRequestUse);
|
||||
RegisterMsg(MessageType::Game::RESET_MODEL_TO_DEFAULTS, this, &ModelComponent::OnResetModelToDefaults);
|
||||
}
|
||||
|
||||
bool ModelComponent::OnResetModelToDefaults(GameMessages::GameMsg& msg) {
|
||||
auto& reset = static_cast<GameMessages::ResetModelToDefaults&>(msg);
|
||||
for (auto& behavior : m_Behaviors) behavior.HandleMsg(reset);
|
||||
GameMessages::UnSmash unsmash;
|
||||
unsmash.target = GetParent()->GetObjectID();
|
||||
unsmash.duration = 0.0f;
|
||||
unsmash.Send(UNASSIGNED_SYSTEM_ADDRESS);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ModelComponent::OnRequestUse(GameMessages::GameMsg& msg) {
|
||||
|
@@ -33,6 +33,7 @@ public:
|
||||
void Update(float deltaTime) override;
|
||||
|
||||
bool OnRequestUse(GameMessages::GameMsg& msg);
|
||||
bool OnResetModelToDefaults(GameMessages::GameMsg& msg);
|
||||
|
||||
void Serialize(RakNet::BitStream& outBitStream, bool bIsInitialUpdate) override;
|
||||
|
||||
|
@@ -262,6 +262,9 @@ void PropertyManagementComponent::OnStartBuilding() {
|
||||
auto* modelComponent = model->GetComponent<ModelComponent>();
|
||||
if (modelComponent) modelComponent->Pause();
|
||||
Game::entityManager->SerializeEntity(model);
|
||||
GameMessages::ResetModelToDefaults reset;
|
||||
reset.target = modelID;
|
||||
model->HandleMsg(reset);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -285,6 +288,9 @@ void PropertyManagementComponent::OnFinishBuilding() {
|
||||
auto* modelComponent = model->GetComponent<ModelComponent>();
|
||||
if (modelComponent) modelComponent->Resume();
|
||||
Game::entityManager->SerializeEntity(model);
|
||||
GameMessages::ResetModelToDefaults reset;
|
||||
reset.target = modelID;
|
||||
model->HandleMsg(reset);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user