mirror of
https://github.com/DarkflameUniverse/DarkflameServer
synced 2024-08-30 18:43:58 +00:00
8cdb388915
* Implement Precompiled Headers * First volume of optimizations * Scripts A-B Gonna be doing this in alphabetical order now. * C Scripts and remove unneeded includes from base cppscripts header Remove the MissionComponent and Loot includes from all base scripts and place their needed includes in the respective scripts. * D scripts * F scripts * F scripts 2 Finish up removing extraneous includes from scripts that start with the letter F * G scripts Removing extraneous includes from scripts that start with the letter G * I scripts Removing extraneous includes from scripts that start with the letter I * M-Z scripts Removing extraneous includes from scripts that start with the letter M-Z * Revert "Implement Precompiled Headers" This reverts commitd79d8d4991
. * Revert "Revert "Implement Precompiled Headers"" This reverts commit0597faf308
. * Add back in PCH Add back in PCH * Fix CMake Whitespace Remove duplicate file glob Remove newline
44 lines
1.6 KiB
C++
44 lines
1.6 KiB
C++
#include "BaseEnemyMech.h"
|
|
#include "Entity.h"
|
|
#include "ControllablePhysicsComponent.h"
|
|
#include "EntityManager.h"
|
|
#include "dpWorld.h"
|
|
#include "GeneralUtils.h"
|
|
#include "DestroyableComponent.h"
|
|
|
|
void BaseEnemyMech::OnStartup(Entity* self) {
|
|
auto* destroyableComponent = self->GetComponent<DestroyableComponent>();
|
|
if (destroyableComponent != nullptr) {
|
|
destroyableComponent->SetFaction(4);
|
|
}
|
|
}
|
|
|
|
void BaseEnemyMech::OnDie(Entity* self, Entity* killer) {
|
|
ControllablePhysicsComponent* controlPhys = static_cast<ControllablePhysicsComponent*>(self->GetComponent(COMPONENT_TYPE_CONTROLLABLE_PHYSICS));
|
|
if (!controlPhys) return;
|
|
|
|
NiPoint3 newLoc = {controlPhys->GetPosition().x, dpWorld::Instance().GetHeightAtPoint(controlPhys->GetPosition()), controlPhys->GetPosition().z };
|
|
|
|
EntityInfo info = EntityInfo();
|
|
std::vector<LDFBaseData*> cfg;
|
|
std::u16string activatorPosStr;
|
|
activatorPosStr += (GeneralUtils::to_u16string(controlPhys->GetPosition().x));
|
|
activatorPosStr.push_back(0x1f);
|
|
activatorPosStr += (GeneralUtils::to_u16string(controlPhys->GetPosition().y));
|
|
activatorPosStr.push_back(0x1f);
|
|
activatorPosStr += (GeneralUtils::to_u16string(controlPhys->GetPosition().z));
|
|
|
|
LDFBaseData* activatorPos = new LDFData<std::u16string>(u"rebuild_activators", activatorPosStr);
|
|
cfg.push_back(activatorPos);
|
|
info.lot = qbTurretLOT;
|
|
info.pos = newLoc;
|
|
info.rot = controlPhys->GetRotation();
|
|
info.spawnerID = self->GetObjectID();
|
|
info.settings = cfg;
|
|
|
|
Entity* turret = EntityManager::Instance()->CreateEntity(info, nullptr);
|
|
if (turret) {
|
|
EntityManager::Instance()->ConstructEntity(turret);
|
|
}
|
|
}
|