mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2024-11-28 00:17:23 +00:00
Update to new API
This commit is contained in:
parent
a91cf3adc7
commit
7b7c0622b3
@ -82,6 +82,7 @@
|
|||||||
#include "CollectibleComponent.h"
|
#include "CollectibleComponent.h"
|
||||||
#include "ItemComponent.h"
|
#include "ItemComponent.h"
|
||||||
#include "GhostComponent.h"
|
#include "GhostComponent.h"
|
||||||
|
#include "Recorder.h"
|
||||||
|
|
||||||
// Table includes
|
// Table includes
|
||||||
#include "CDComponentsRegistryTable.h"
|
#include "CDComponentsRegistryTable.h"
|
||||||
@ -2142,4 +2143,18 @@ void Entity::ProcessPositionUpdate(PositionUpdate& update) {
|
|||||||
Game::entityManager->QueueGhostUpdate(GetObjectID());
|
Game::entityManager->QueueGhostUpdate(GetObjectID());
|
||||||
|
|
||||||
if (updateChar) Game::entityManager->SerializeEntity(this);
|
if (updateChar) Game::entityManager->SerializeEntity(this);
|
||||||
|
|
||||||
|
auto* recorder = Cinema::Recording::Recorder::GetRecorder(GetObjectID());
|
||||||
|
|
||||||
|
if (recorder != nullptr) {
|
||||||
|
recorder->AddRecord(new Cinema::Recording::MovementRecord(
|
||||||
|
update.position,
|
||||||
|
update.rotation,
|
||||||
|
update.velocity,
|
||||||
|
update.angularVelocity,
|
||||||
|
update.onGround,
|
||||||
|
update.velocity != NiPoint3::ZERO,
|
||||||
|
update.angularVelocity != NiPoint3::ZERO
|
||||||
|
));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,11 @@
|
|||||||
set(DGAME_DCINEMA_SOURCES "Recorder.cpp"
|
set(DGAME_DCINEMA_SOURCES "Recorder.cpp"
|
||||||
"Prefab.cpp"
|
"Prefab.cpp"
|
||||||
"Scene.cpp"
|
"Scene.cpp"
|
||||||
"Play.cpp"
|
"Play.cpp")
|
||||||
PARENT_SCOPE)
|
|
||||||
|
add_library(dCinema STATIC ${DGAME_DCINEMA_SOURCES})
|
||||||
|
target_precompile_headers(dCinema REUSE_FROM dGameBase)
|
||||||
|
target_link_libraries(dCinema
|
||||||
|
PUBLIC dPhysics dDatabase
|
||||||
|
INTERFACE dUtilities dCommon dBehaviors dChatFilter dMission dInventory dComponents
|
||||||
|
)
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
#include "tinyxml2.h"
|
#include "tinyxml2.h"
|
||||||
|
|
||||||
#include "../../dWorldServer/ObjectIDManager.h"
|
#include "ObjectIDManager.h"
|
||||||
#include "EntityManager.h"
|
#include "EntityManager.h"
|
||||||
#include "EntityInfo.h"
|
#include "EntityInfo.h"
|
||||||
#include "RenderComponent.h"
|
#include "RenderComponent.h"
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#include "ControllablePhysicsComponent.h"
|
#include "ControllablePhysicsComponent.h"
|
||||||
#include "GameMessages.h"
|
#include "GameMessages.h"
|
||||||
#include "InventoryComponent.h"
|
#include "InventoryComponent.h"
|
||||||
#include "../dWorldServer/ObjectIDManager.h"
|
#include "ObjectIDManager.h"
|
||||||
#include "ChatPackets.h"
|
#include "ChatPackets.h"
|
||||||
#include "EntityManager.h"
|
#include "EntityManager.h"
|
||||||
#include "EntityInfo.h"
|
#include "EntityInfo.h"
|
||||||
@ -679,7 +679,7 @@ EquipRecord::EquipRecord(LOT item) {
|
|||||||
void EquipRecord::Act(Entity* actor) {
|
void EquipRecord::Act(Entity* actor) {
|
||||||
auto* inventoryComponent = actor->GetComponent<InventoryComponent>();
|
auto* inventoryComponent = actor->GetComponent<InventoryComponent>();
|
||||||
|
|
||||||
const LWOOBJID id = ObjectIDManager::Instance()->GenerateObjectID();
|
const LWOOBJID id = ObjectIDManager::GenerateObjectID();
|
||||||
|
|
||||||
const auto& info = Inventory::FindItemComponent(item);
|
const auto& info = Inventory::FindItemComponent(item);
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
#include "EntityInfo.h"
|
#include "EntityInfo.h"
|
||||||
#include "MissionComponent.h"
|
#include "MissionComponent.h"
|
||||||
#include "dConfig.h"
|
#include "dConfig.h"
|
||||||
|
#include "PlayerManager.h"
|
||||||
|
|
||||||
using namespace Cinema;
|
using namespace Cinema;
|
||||||
|
|
||||||
@ -153,7 +154,7 @@ void Cinema::Scene::CheckForShowings() {
|
|||||||
|
|
||||||
// I don't care
|
// I don't care
|
||||||
Game::entityManager->GetZoneControlEntity()->AddCallbackTimer(1.0f, [this]() {
|
Game::entityManager->GetZoneControlEntity()->AddCallbackTimer(1.0f, [this]() {
|
||||||
for (auto* player : Player::GetAllPlayers()) {
|
for (auto* player : PlayerManager::GetAllPlayers()) {
|
||||||
if (m_Audience.find(player->GetObjectID()) != m_Audience.end()) {
|
if (m_Audience.find(player->GetObjectID()) != m_Audience.end()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ set(DGAME_DUTILITIES_SOURCES "BrickDatabase.cpp"
|
|||||||
"Preconditions.cpp"
|
"Preconditions.cpp"
|
||||||
"SlashCommandHandler.cpp"
|
"SlashCommandHandler.cpp"
|
||||||
"ServerPreconditions.cpp"
|
"ServerPreconditions.cpp"
|
||||||
"VanityUtilities.cpp" PARENT_SCOPE)
|
"VanityUtilities.cpp")
|
||||||
|
|
||||||
add_library(dUtilities STATIC ${DGAME_DUTILITIES_SOURCES})
|
add_library(dUtilities STATIC ${DGAME_DUTILITIES_SOURCES})
|
||||||
target_precompile_headers(dUtilities REUSE_FROM dGameBase)
|
target_precompile_headers(dUtilities REUSE_FROM dGameBase)
|
||||||
|
@ -5,25 +5,6 @@
|
|||||||
|
|
||||||
#include "ClientPackets.h"
|
#include "ClientPackets.h"
|
||||||
#include "dCommonVars.h"
|
#include "dCommonVars.h"
|
||||||
#include "BitStream.h"
|
|
||||||
#include "dChatFilter.h"
|
|
||||||
#include "WorldPackets.h"
|
|
||||||
#include "ChatPackets.h"
|
|
||||||
#include "dServer.h"
|
|
||||||
#include "GameMessages.h"
|
|
||||||
#include "dZoneManager.h"
|
|
||||||
#include "Player.h"
|
|
||||||
#include "Zone.h"
|
|
||||||
#include "PossessorComponent.h"
|
|
||||||
#include "PossessableComponent.h"
|
|
||||||
#include "VehiclePhysicsComponent.h"
|
|
||||||
#include "dConfig.h"
|
|
||||||
#include "CharacterComponent.h"
|
|
||||||
#include "Database.h"
|
|
||||||
#include "eGameMasterLevel.h"
|
|
||||||
#include "eReplicaComponentType.h"
|
|
||||||
#include "CheatDetection.h"
|
|
||||||
#include "Recorder.h"
|
|
||||||
#include "PositionUpdate.h"
|
#include "PositionUpdate.h"
|
||||||
|
|
||||||
ChatMessage ClientPackets::HandleChatMessage(Packet* packet) {
|
ChatMessage ClientPackets::HandleChatMessage(Packet* packet) {
|
||||||
@ -42,16 +23,6 @@ ChatMessage ClientPackets::HandleChatMessage(Packet* packet) {
|
|||||||
message.message.push_back(character);
|
message.message.push_back(character);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string sMessage = GeneralUtils::UTF16ToWTF8(message);
|
|
||||||
LOG("%s: %s", playerName.c_str(), sMessage.c_str());
|
|
||||||
ChatPackets::SendChatMessage(sysAddr, chatChannel, playerName, user->GetLoggedInChar(), isMythran, message);
|
|
||||||
|
|
||||||
auto* recorder = Cinema::Recording::Recorder::GetRecorder(user->GetLoggedInChar());
|
|
||||||
|
|
||||||
if (recorder != nullptr) {
|
|
||||||
recorder->AddRecord(new Cinema::Recording::SpeakRecord(sMessage));
|
|
||||||
}
|
|
||||||
|
|
||||||
return message;
|
return message;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -110,127 +81,6 @@ PositionUpdate ClientPackets::HandleClientPositionUpdate(Packet* packet) {
|
|||||||
inStream.Read(update.remoteInputInfo.m_IsModified);
|
inStream.Read(update.remoteInputInfo.m_IsModified);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool updateChar = true;
|
|
||||||
|
|
||||||
if (possessorComponent != nullptr) {
|
|
||||||
auto* possassableEntity = Game::entityManager->GetEntity(possessorComponent->GetPossessable());
|
|
||||||
|
|
||||||
if (possassableEntity != nullptr) {
|
|
||||||
auto* possessableComponent = possassableEntity->GetComponent<PossessableComponent>();
|
|
||||||
if (possessableComponent) {
|
|
||||||
// While possessing something, only update char if we are attached to the thing we are possessing
|
|
||||||
if (possessableComponent->GetPossessionType() != ePossessionType::ATTACHED_VISIBLE) updateChar = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
auto* vehiclePhysicsComponent = possassableEntity->GetComponent<VehiclePhysicsComponent>();
|
|
||||||
if (vehiclePhysicsComponent != nullptr) {
|
|
||||||
vehiclePhysicsComponent->SetPosition(position);
|
|
||||||
vehiclePhysicsComponent->SetRotation(rotation);
|
|
||||||
vehiclePhysicsComponent->SetIsOnGround(onGround);
|
|
||||||
vehiclePhysicsComponent->SetIsOnRail(onRail);
|
|
||||||
vehiclePhysicsComponent->SetVelocity(velocity);
|
|
||||||
vehiclePhysicsComponent->SetDirtyVelocity(velocityFlag);
|
|
||||||
vehiclePhysicsComponent->SetAngularVelocity(angVelocity);
|
|
||||||
vehiclePhysicsComponent->SetDirtyAngularVelocity(angVelocityFlag);
|
|
||||||
vehiclePhysicsComponent->SetRemoteInputInfo(remoteInput);
|
|
||||||
} else {
|
|
||||||
// Need to get the mount's controllable physics
|
|
||||||
auto* controllablePhysicsComponent = possassableEntity->GetComponent<ControllablePhysicsComponent>();
|
|
||||||
if (!controllablePhysicsComponent) return;
|
|
||||||
controllablePhysicsComponent->SetPosition(position);
|
|
||||||
controllablePhysicsComponent->SetRotation(rotation);
|
|
||||||
controllablePhysicsComponent->SetIsOnGround(onGround);
|
|
||||||
controllablePhysicsComponent->SetIsOnRail(onRail);
|
|
||||||
controllablePhysicsComponent->SetVelocity(velocity);
|
|
||||||
controllablePhysicsComponent->SetDirtyVelocity(velocityFlag);
|
|
||||||
controllablePhysicsComponent->SetAngularVelocity(angVelocity);
|
|
||||||
controllablePhysicsComponent->SetDirtyAngularVelocity(angVelocityFlag);
|
|
||||||
}
|
|
||||||
Game::entityManager->SerializeEntity(possassableEntity);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!updateChar) {
|
|
||||||
velocity = NiPoint3::ZERO;
|
|
||||||
angVelocity = NiPoint3::ZERO;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Handle statistics
|
|
||||||
auto* characterComponent = entity->GetComponent<CharacterComponent>();
|
|
||||||
if (characterComponent != nullptr) {
|
|
||||||
characterComponent->TrackPositionUpdate(position);
|
|
||||||
}
|
|
||||||
|
|
||||||
comp->SetPosition(position);
|
|
||||||
comp->SetRotation(rotation);
|
|
||||||
comp->SetIsOnGround(onGround);
|
|
||||||
comp->SetIsOnRail(onRail);
|
|
||||||
comp->SetVelocity(velocity);
|
|
||||||
comp->SetDirtyVelocity(velocityFlag);
|
|
||||||
comp->SetAngularVelocity(angVelocity);
|
|
||||||
comp->SetDirtyAngularVelocity(angVelocityFlag);
|
|
||||||
|
|
||||||
auto* recorder = Cinema::Recording::Recorder::GetRecorder(entity->GetObjectID());
|
|
||||||
|
|
||||||
if (recorder != nullptr) {
|
|
||||||
recorder->AddRecord(new Cinema::Recording::MovementRecord(
|
|
||||||
position,
|
|
||||||
rotation,
|
|
||||||
velocity,
|
|
||||||
angVelocity,
|
|
||||||
onGround,
|
|
||||||
velocityFlag,
|
|
||||||
angVelocityFlag
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
auto* player = static_cast<Player*>(entity);
|
|
||||||
player->SetGhostReferencePoint(position);
|
|
||||||
Game::entityManager->QueueGhostUpdate(player->GetObjectID());
|
|
||||||
|
|
||||||
if (updateChar) Game::entityManager->SerializeEntity(entity);
|
|
||||||
|
|
||||||
//TODO: add moving platform stuffs
|
|
||||||
/*bool movingPlatformFlag;
|
|
||||||
inStream.Read(movingPlatformFlag);
|
|
||||||
if (movingPlatformFlag) {
|
|
||||||
LWOOBJID objectID;
|
|
||||||
NiPoint3 niData2;
|
|
||||||
|
|
||||||
inStream.Read(objectID);
|
|
||||||
inStream.Read(niData2.x);
|
|
||||||
inStream.Read(niData2.y);
|
|
||||||
inStream.Read(niData2.z);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool niData3Flag;
|
|
||||||
inStream.Read(niData3Flag);
|
|
||||||
if (niData3Flag) {
|
|
||||||
NiPoint3 niData3;
|
|
||||||
inStream.Read(niData3.x);
|
|
||||||
inStream.Read(niData3.y);
|
|
||||||
inStream.Read(niData3.z);
|
|
||||||
|
|
||||||
controllablePhysics->GetLocationData()->GetMovingPlatformData()->SetData3(niData3);
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
for (int i = 0; i < Game::server->GetReplicaManager()->GetParticipantCount(); ++i)
|
|
||||||
{
|
|
||||||
const auto& player = Game::server->GetReplicaManager()->GetParticipantAtIndex(i);
|
|
||||||
|
|
||||||
if (entity->GetSystemAddress() == player)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
Game::entityManager->SerializeEntity(entity, player);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
return update;
|
return update;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1309,6 +1309,12 @@ void HandlePacket(Packet* packet) {
|
|||||||
std::string sMessage = GeneralUtils::UTF16ToWTF8(chatMessage.message);
|
std::string sMessage = GeneralUtils::UTF16ToWTF8(chatMessage.message);
|
||||||
LOG("%s: %s", playerName.c_str(), sMessage.c_str());
|
LOG("%s: %s", playerName.c_str(), sMessage.c_str());
|
||||||
ChatPackets::SendChatMessage(packet->systemAddress, chatMessage.chatChannel, playerName, user->GetLoggedInChar(), isMythran, chatMessage.message);
|
ChatPackets::SendChatMessage(packet->systemAddress, chatMessage.chatChannel, playerName, user->GetLoggedInChar(), isMythran, chatMessage.message);
|
||||||
|
|
||||||
|
auto* recorder = Cinema::Recording::Recorder::GetRecorder(user->GetLoggedInChar());
|
||||||
|
|
||||||
|
if (recorder != nullptr) {
|
||||||
|
recorder->AddRecord(new Cinema::Recording::SpeakRecord(sMessage));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user