refactor: remove unnecessary classes
This commit is contained in:
@@ -7,7 +7,6 @@
|
||||
#include "../../../Events/HeroCreatedEvent.h"
|
||||
#include "../../../Events/HeroDeletedEvent.h"
|
||||
#include "../GameStructs/NetworkHandlerWrapper.h"
|
||||
#include "../../../Services/EntityFinder.h"
|
||||
|
||||
using namespace L2Bot::Domain;
|
||||
|
||||
@@ -16,39 +15,28 @@ namespace Interlude
|
||||
class HeroRepository : public Repositories::EntityRepositoryInterface
|
||||
{
|
||||
public:
|
||||
const std::vector<std::shared_ptr<DTO::EntityState>> GetEntities() override
|
||||
const std::unordered_map<std::uint32_t, std::shared_ptr<Entities::EntityInterface>> GetEntities() override
|
||||
{
|
||||
std::unique_lock<std::shared_timed_mutex>(m_Mutex);
|
||||
|
||||
auto hero = m_NetworkHandler.GetHero();
|
||||
const auto hero = m_NetworkHandler.GetHero();
|
||||
|
||||
if (hero != nullptr && m_PrevHero == nullptr)
|
||||
{
|
||||
EventDispatcher::GetInstance().Dispatch(HeroCreatedEvent{});
|
||||
std::unordered_map<std::uint32_t, std::shared_ptr<Entities::EntityInterface>> result;
|
||||
if (hero) {
|
||||
if (!m_Hero) {
|
||||
m_Hero = m_Factory.Create(hero);
|
||||
EventDispatcher::GetInstance().Dispatch(HeroCreatedEvent{});
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Factory.Update(m_Hero, hero);
|
||||
}
|
||||
result[hero->objectId] = m_Hero;
|
||||
}
|
||||
if (hero == nullptr && m_PrevHero != nullptr)
|
||||
{
|
||||
else {
|
||||
m_Hero = nullptr;
|
||||
EventDispatcher::GetInstance().Dispatch(HeroDeletedEvent{});
|
||||
}
|
||||
m_PrevHero = hero;
|
||||
|
||||
std::map<uint32_t, User*> items;
|
||||
|
||||
if (hero)
|
||||
{
|
||||
items.emplace(hero->objectId, hero);
|
||||
}
|
||||
|
||||
const auto objects = m_EntityFinder.FindEntities<User*>(items, [this](User* item) {
|
||||
return m_Factory.Create(item);
|
||||
});
|
||||
|
||||
auto result = std::vector<std::shared_ptr<DTO::EntityState>>();
|
||||
|
||||
for (const auto kvp : objects)
|
||||
{
|
||||
result.push_back(kvp.second);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
@@ -56,13 +44,12 @@ namespace Interlude
|
||||
void Reset() override
|
||||
{
|
||||
std::shared_lock<std::shared_timed_mutex>(m_Mutex);
|
||||
m_EntityFinder.Reset();
|
||||
m_Hero = nullptr;
|
||||
}
|
||||
|
||||
HeroRepository(const NetworkHandlerWrapper& networkHandler, const HeroFactory& factory, EntityFinder& finder) :
|
||||
HeroRepository(const NetworkHandlerWrapper& networkHandler, const HeroFactory& factory) :
|
||||
m_NetworkHandler(networkHandler),
|
||||
m_Factory(factory),
|
||||
m_EntityFinder(finder)
|
||||
m_Factory(factory)
|
||||
{
|
||||
|
||||
}
|
||||
@@ -73,8 +60,6 @@ namespace Interlude
|
||||
private:
|
||||
const HeroFactory& m_Factory;
|
||||
const NetworkHandlerWrapper& m_NetworkHandler;
|
||||
User* m_PrevHero = nullptr;
|
||||
EntityFinder& m_EntityFinder;
|
||||
std::shared_timed_mutex m_Mutex;
|
||||
std::shared_ptr<Entities::Hero> m_Hero;
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user