1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-29 15:47:46 +00:00
sapphire/src/servers/sapphire_zone/Zone/HousingMgr.h

45 lines
1.2 KiB
C
Raw Normal View History

2018-11-10 19:00:13 +01:00
#ifndef SAPPHIRE_HOUSINGMGR_H
#define SAPPHIRE_HOUSINGMGR_H
#include "Forwards.h"
#include "HousingZone.h"
#include <set>
#include <unordered_map>
namespace Core
{
namespace Data
{
using HousingZonePtr = std::shared_ptr< HousingZone >;
}
class HousingMgr
{
public:
HousingMgr();
virtual ~HousingMgr();
bool init();
uint32_t toLandSetId( uint16_t territoryTypeId, uint8_t wardId ) const;
2018-11-10 19:00:13 +01:00
uint16_t getNexLandId();
void insertHousingZone( Core::Data::HousingZonePtr hZone );
Core::Data::HousingZonePtr getHousingZone( uint16_t id );
2018-11-11 14:27:39 +01:00
Core::Data::HousingZonePtr getHousingZoneByLandSetId( uint32_t id );
2018-11-10 19:00:13 +01:00
Core::LandPtr getLandByOwnerId( uint32_t id );
void sendLandSignOwned( Entity::Player& player, uint8_t wardId, uint8_t plotId, uint16_t territoryTypeId );
void sendLandSignFree( Entity::Player& player, uint8_t wardId, uint8_t plotId, uint16_t territoryTypeId );
LandPurchaseResult purchseLand( Entity::Player& player, uint8_t plot, uint8_t state );
2018-11-10 19:00:13 +01:00
private:
using HousingZonePtrMap = std::unordered_map< uint16_t, Core::Data::HousingZonePtr >;
uint16_t m_lastLandId;
HousingZonePtrMap m_housingZonePtrMap;
};
}
#endif // SAPPHIRE_HOUSINGMGR_H