Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/game/StarArmorWearer.hpp
diff options
context:
space:
mode:
authorKae <80987908+Novaenia@users.noreply.github.com>2023-06-20 14:33:09 +1000
committerKae <80987908+Novaenia@users.noreply.github.com>2023-06-20 14:33:09 +1000
commit6352e8e3196f78388b6c771073f9e03eaa612673 (patch)
treee23772f79a7fbc41bc9108951e9e136857484bf4 /source/game/StarArmorWearer.hpp
parent6741a057e5639280d85d0f88ba26f000baa58f61 (diff)
everything everywhere
all at once
Diffstat (limited to 'source/game/StarArmorWearer.hpp')
-rw-r--r--source/game/StarArmorWearer.hpp89
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