mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2025-10-11 09:58:05 +00:00

* feat: convert character ids to 64 bits remove all usages of the PERSISTENT bit with regards to storing of playerIDs on the server. the bit does not exist and was a phantom in the first place. Tested that a full playthrough of ag, ns and gf was still doable. slash commands work, ugc works, friends works, ignore list works, properties work and have names, teaming works. migrating an old mysql database works . need to test an old sqlite database * fix sqlite migration * remove nd specific column migration
51 lines
1.8 KiB
C++
51 lines
1.8 KiB
C++
#ifndef __IPROPERTIESCONTENTS__H__
|
|
#define __IPROPERTIESCONTENTS__H__
|
|
|
|
#include <array>
|
|
#include <cstdint>
|
|
#include <string_view>
|
|
|
|
class IPropertyContents {
|
|
public:
|
|
struct Model {
|
|
inline bool operator==(const LWOOBJID& other) const noexcept {
|
|
return id == other;
|
|
}
|
|
|
|
NiPoint3 position;
|
|
NiQuaternion rotation = QuatUtils::IDENTITY;
|
|
LWOOBJID id{};
|
|
LOT lot{};
|
|
uint32_t ugcId{};
|
|
std::array<LWOOBJID, 5> behaviors{};
|
|
};
|
|
|
|
// Inserts a new UGC model into the database.
|
|
virtual void InsertNewUgcModel(
|
|
std::stringstream& sd0Data,
|
|
const uint32_t blueprintId,
|
|
const uint32_t accountId,
|
|
const LWOOBJID characterId) = 0;
|
|
|
|
// Get the property models for the given property id.
|
|
virtual std::vector<IPropertyContents::Model> GetPropertyModels(const LWOOBJID& propertyId) = 0;
|
|
|
|
// Insert a new property model into the database.
|
|
virtual void InsertNewPropertyModel(const LWOOBJID& propertyId, const IPropertyContents::Model& model, const std::string_view name) = 0;
|
|
|
|
// Update the model position and rotation for the given property id.
|
|
virtual void UpdateModel(const LWOOBJID& modelID, const NiPoint3& position, const NiQuaternion& rotation, const std::array<std::pair<LWOOBJID, std::string>, 5>& behaviors) = 0;
|
|
virtual void UpdateModel(const LWOOBJID& modelID, const NiPoint3& position, const NiQuaternion& rotation, const std::array<LWOOBJID, 5> behaviorIDs) {
|
|
std::array<std::pair<LWOOBJID, std::string>, 5> behaviors;
|
|
for (int32_t i = 0; i < behaviors.size(); i++) behaviors[i].first = behaviorIDs[i];
|
|
UpdateModel(modelID, position, rotation, behaviors);
|
|
}
|
|
|
|
// Remove the model for the given property id.
|
|
virtual void RemoveModel(const LWOOBJID& modelId) = 0;
|
|
|
|
// Gets a model by ID
|
|
virtual Model GetModel(const LWOOBJID modelID) = 0;
|
|
};
|
|
#endif //!__IPROPERTIESCONTENTS__H__
|