diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2023-06-20 14:33:09 +1000 |
---|---|---|
committer | Kae <80987908+Novaenia@users.noreply.github.com> | 2023-06-20 14:33:09 +1000 |
commit | 6352e8e3196f78388b6c771073f9e03eaa612673 (patch) | |
tree | e23772f79a7fbc41bc9108951e9e136857484bf4 /source/game/StarArmorWearer.hpp | |
parent | 6741a057e5639280d85d0f88ba26f000baa58f61 (diff) |
everything everywhere
all at once
Diffstat (limited to 'source/game/StarArmorWearer.hpp')
-rw-r--r-- | source/game/StarArmorWearer.hpp | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/source/game/StarArmorWearer.hpp b/source/game/StarArmorWearer.hpp new file mode 100644 index 0000000..4297d59 --- /dev/null +++ b/source/game/StarArmorWearer.hpp @@ -0,0 +1,89 @@ +#ifndef STAR_ARMOR_WEARER_HPP +#define STAR_ARMOR_WEARER_HPP + +#include "StarHumanoid.hpp" +#include "StarNetElementSystem.hpp" +#include "StarEffectEmitter.hpp" +#include "StarItemDescriptor.hpp" +#include "StarStatusTypes.hpp" +#include "StarLightSource.hpp" +#include "StarDamage.hpp" + +namespace Star { + +STAR_CLASS(ObjectItem); +STAR_CLASS(HeadArmor); +STAR_CLASS(ChestArmor); +STAR_CLASS(LegsArmor); +STAR_CLASS(BackArmor); +STAR_CLASS(ToolUserEntity); +STAR_CLASS(Item); +STAR_CLASS(World); + +STAR_CLASS(ArmorWearer); + +class ArmorWearer : public NetElementSyncGroup { +public: + ArmorWearer(); + + void setupHumanoidClothingDrawables(Humanoid& humanoid, bool forceNude) const; + void effects(EffectEmitter& effectEmitter); + List<PersistentStatusEffect> statusEffects() const; + + Json diskStore() const; + void diskLoad(Json const& diskStore); + + void setHeadItem(HeadArmorPtr headItem); + void setHeadCosmeticItem(HeadArmorPtr headCosmeticItem); + void setChestCosmeticItem(ChestArmorPtr chestCosmeticItem); + void setChestItem(ChestArmorPtr chestItem); + void setLegsItem(LegsArmorPtr legsItem); + void setLegsCosmeticItem(LegsArmorPtr legsCosmeticItem); + void setBackItem(BackArmorPtr backItem); + void setBackCosmeticItem(BackArmorPtr backCosmeticItem); + + HeadArmorPtr headItem() const; + HeadArmorPtr headCosmeticItem() const; + ChestArmorPtr chestItem() const; + ChestArmorPtr chestCosmeticItem() const; + LegsArmorPtr legsItem() const; + LegsArmorPtr legsCosmeticItem() const; + BackArmorPtr backItem() const; + BackArmorPtr backCosmeticItem() const; + + ItemDescriptor headItemDescriptor() const; + ItemDescriptor headCosmeticItemDescriptor() const; + ItemDescriptor chestItemDescriptor() const; + ItemDescriptor chestCosmeticItemDescriptor() const; + ItemDescriptor legsItemDescriptor() const; + ItemDescriptor legsCosmeticItemDescriptor() const; + ItemDescriptor backItemDescriptor() const; + ItemDescriptor backCosmeticItemDescriptor() const; + +private: + void netElementsNeedLoad(bool full) override; + void netElementsNeedStore() override; + + HeadArmorPtr m_headItem; + ChestArmorPtr m_chestItem; + LegsArmorPtr m_legsItem; + BackArmorPtr m_backItem; + + HeadArmorPtr m_headCosmeticItem; + ChestArmorPtr m_chestCosmeticItem; + LegsArmorPtr m_legsCosmeticItem; + BackArmorPtr m_backCosmeticItem; + + NetElementData<ItemDescriptor> m_headItemDataNetState; + NetElementData<ItemDescriptor> m_chestItemDataNetState; + NetElementData<ItemDescriptor> m_legsItemDataNetState; + NetElementData<ItemDescriptor> m_backItemDataNetState; + NetElementData<ItemDescriptor> m_headCosmeticItemDataNetState; + NetElementData<ItemDescriptor> m_chestCosmeticItemDataNetState; + NetElementData<ItemDescriptor> m_legsCosmeticItemDataNetState; + NetElementData<ItemDescriptor> m_backCosmeticItemDataNetState; +}; + +} + +#endif |