mirror of
				https://github.com/DarkflameUniverse/DarkflameServer.git
				synced 2025-10-30 20:22:04 +00:00 
			
		
		
		
	add running flag
This commit is contained in:
		| @@ -15,6 +15,7 @@ ModelComponent::ModelComponent(Entity* parent) : Component(parent) { | ||||
| 	m_OriginalRotation = m_Parent->GetDefaultRotation(); | ||||
|  | ||||
| 	m_userModelID = m_Parent->GetVarAs<LWOOBJID>(u"userModelID"); | ||||
| 	m_Running = false; | ||||
| } | ||||
|  | ||||
| void ModelComponent::LoadBehaviors() { | ||||
| @@ -67,6 +68,7 @@ void ModelComponent::Serialize(RakNet::BitStream& outBitStream, bool bIsInitialU | ||||
| } | ||||
|  | ||||
| void ModelComponent::Update(float deltaTime) { | ||||
| 	if (!m_Running) return; | ||||
| 	for (auto& behavior : m_Behaviors) behavior.Update(deltaTime); | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -116,7 +116,11 @@ public: | ||||
|  | ||||
| 	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: | ||||
| 	bool m_Running; | ||||
| 	/** | ||||
| 	 * The behaviors of the model | ||||
| 	 * 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 | ||||
| 	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() { | ||||
| @@ -265,6 +274,14 @@ void PropertyManagementComponent::OnFinishBuilding() { | ||||
| 	UpdateApprovedStatus(false); | ||||
|  | ||||
| 	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) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 David Markowitz
					David Markowitz