Dependency inject into world content service

This commit is contained in:
Chris Miles 2025-06-27 14:29:26 -05:00
parent ffd76f3362
commit 9c450ac95b
2 changed files with 15 additions and 15 deletions

View File

@ -10,12 +10,6 @@
#include "../repositories/rule_values_repository.h" #include "../repositories/rule_values_repository.h"
#include "../zone_store.h" #include "../zone_store.h"
WorldContentService::WorldContentService()
{
SetCurrentExpansion(Expansion::EXPANSION_ALL);
}
int WorldContentService::GetCurrentExpansion() const int WorldContentService::GetCurrentExpansion() const
{ {
return current_expansion; return current_expansion;
@ -362,7 +356,6 @@ void WorldContentService::LoadTargetedRulesets(Database* db)
constexpr int8 EXPANSION_ZERO_VALUE = -2; constexpr int8 EXPANSION_ZERO_VALUE = -2;
auto rules = RuleValuesRepository::GetWhere(*db, "TRUE ORDER BY ruleset_id, rule_name"); auto rules = RuleValuesRepository::GetWhere(*db, "TRUE ORDER BY ruleset_id, rule_name");
auto inst = RuleManager::Instance();
auto sets = RuleSetsRepository::GetWhere(*db, "TRUE ORDER BY ruleset_id"); auto sets = RuleSetsRepository::GetWhere(*db, "TRUE ORDER BY ruleset_id");
for (auto& e : sets) { for (auto& e : sets) {
bool has_filters = bool has_filters =
@ -402,7 +395,7 @@ void WorldContentService::LoadTargetedRulesets(Database* db)
continue; continue;
} }
inst->SetRule(r.rule_name, r.rule_value); m_rule_manager->SetRule(r.rule_name, r.rule_value);
LogInfo( LogInfo(
"Loading targeted rule from ruleset [{}] ruleset_name [{}] rule_name [{}] rule_value [{}]", "Loading targeted rule from ruleset [{}] ruleset_name [{}] rule_name [{}] rule_value [{}]",

View File

@ -3,6 +3,7 @@
#include <string> #include <string>
#include <vector> #include <vector>
#include "../rulesys.h"
#include "../repositories/content_flags_repository.h" #include "../repositories/content_flags_repository.h"
#include "../repositories/zone_repository.h" #include "../repositories/zone_repository.h"
#include "../repositories/instance_list_repository.h" #include "../repositories/instance_list_repository.h"
@ -88,7 +89,18 @@ namespace Expansion {
class WorldContentService { class WorldContentService {
public: public:
WorldContentService(); // Constructor can initialize from singleton
WorldContentService()
: m_rule_manager(RuleManager::Instance())
{
SetCurrentExpansion(Expansion::EXPANSION_ALL);
}
static WorldContentService* Instance()
{
static WorldContentService instance;
return &instance;
}
std::string GetCurrentExpansionName(); std::string GetCurrentExpansionName();
int GetCurrentExpansion() const; int GetCurrentExpansion() const;
@ -181,12 +193,6 @@ public:
FindZoneResult FindZone(uint32 zone_id, uint32 instance_id); FindZoneResult FindZone(uint32 zone_id, uint32 instance_id);
bool IsInPublicStaticInstance(uint32 instance_id); bool IsInPublicStaticInstance(uint32 instance_id);
static WorldContentService* Instance()
{
static WorldContentService instance;
return &instance;
}
// targeted rulesets // targeted rulesets
void LoadTargetedRulesets(Database* db); void LoadTargetedRulesets(Database* db);
inline void SetZoneId(int zone_id) { m_zone_id = zone_id; } inline void SetZoneId(int zone_id) { m_zone_id = zone_id; }
@ -199,6 +205,7 @@ private:
// reference to database // reference to database
Database *m_database; Database *m_database;
Database *m_content_database; Database *m_content_database;
RuleManager* m_rule_manager;
int m_zone_id = 0; int m_zone_id = 0;
int m_instance_version = 0; int m_instance_version = 0;