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

summaryrefslogtreecommitdiff
path: root/source/frontend/StarInventory.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/frontend/StarInventory.hpp')
-rw-r--r--source/frontend/StarInventory.hpp67
1 files changed, 67 insertions, 0 deletions
diff --git a/source/frontend/StarInventory.hpp b/source/frontend/StarInventory.hpp
new file mode 100644
index 0000000..035045c
--- /dev/null
+++ b/source/frontend/StarInventory.hpp
@@ -0,0 +1,67 @@
+#ifndef STAR_INVENTORY_HPP
+#define STAR_INVENTORY_HPP
+
+#include "StarPane.hpp"
+#include "StarInventoryTypes.hpp"
+#include "StarItemDescriptor.hpp"
+#include "StarPlayerTech.hpp"
+#include "StarGameTimers.hpp"
+#include "StarContainerInteractor.hpp"
+
+namespace Star {
+
+STAR_CLASS(MainInterface);
+STAR_CLASS(UniverseClient);
+STAR_CLASS(Player);
+STAR_CLASS(Item);
+STAR_CLASS(ItemSlotWidget);
+STAR_CLASS(ItemGridWidget);
+STAR_CLASS(ImageWidget);
+STAR_CLASS(Widget);
+STAR_CLASS(InventoryPane);
+
+class InventoryPane : public Pane {
+public:
+ InventoryPane(MainInterface* parent, PlayerPtr player, ContainerInteractorPtr containerInteractor);
+
+ void displayed() override;
+ PanePtr createTooltip(Vec2I const& screenPosition) override;
+
+ bool giveContainerResult(ContainerResult result);
+
+ // update only item grids, to see if they have had their slots changed
+ // this is a little hacky and should probably be checked in the player inventory instead
+ void updateItems();
+ bool containsNewItems() const;
+
+protected:
+ virtual void update() override;
+ void selectTab(String const& selected);
+
+private:
+ MainInterface* m_parent;
+ PlayerPtr m_player;
+ ContainerInteractorPtr m_containerInteractor;
+
+ bool m_expectingSwap;
+ InventorySlot m_containerSource;
+
+ GameTimer m_trashBurn;
+ ItemSlotWidgetPtr m_trashSlot;
+
+ Map<String, ItemGridWidgetPtr> m_itemGrids;
+ Map<String, String> m_tabButtonData;
+
+ Map<String, WidgetPtr> m_newItemMarkers;
+ String m_selectedTab;
+
+ StringList m_pickUpSounds;
+ StringList m_putDownSounds;
+ Maybe<ItemDescriptor> m_currentSwapSlotItem;
+
+ List<ImageWidgetPtr> m_disabledTechOverlays;
+};
+
+}
+
+#endif