1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-05-03 01:07:47 +00:00
sapphire/src/world/Territory/House.h

60 lines
1.5 KiB
C++

#ifndef SAPPHIRE_HOUSE_H
#define SAPPHIRE_HOUSE_H
#include "Forwards.h"
#include <Common.h>
#include <set>
#include <unordered_map>
namespace Sapphire
{
class House
{
public:
House( uint32_t houseId, uint32_t landSetId, Common::LandIdent ident, const std::string& estateName,
const std::string& estateComment );
virtual ~House();
using HousePart = std::pair< uint32_t, uint16_t >;
using HouseModelsArray = std::array< HousePart, 8 >;
//gerneral
uint32_t getLandSetId() const;
Common::LandIdent getLandIdent() const;
uint32_t getHouseId() const;
const std::string& getHouseName() const;
void setHouseName( const std::string& name );
const std::string& getHouseGreeting() const;
void setHouseGreeting( const std::string& greeting );
//functions
void setExteriorModel( Common::HousePartSlot slot, uint32_t modelId, uint16_t stain );
HousePart getExteriorModel( Common::HousePartSlot slot );
void setInteriorModel( Common::HousingInteriorSlot slot, uint32_t modelId );
uint32_t getInteriorModel( Common::HousingInteriorSlot slot );
HouseModelsArray const& getHouseModels() const;
void updateHouseDb();
private:
uint32_t m_landSetId;
Common::LandIdent m_landIdent;
uint32_t m_houseId;
uint64_t m_buildTime;
HouseModelsArray m_exteriorModelCache;
uint32_t m_interiorModelCache[10];
std::string m_estateComment;
std::string m_estateName;
};
}
#endif // SAPPHIRE_HOUSE_H