Cockatrice 2026-06-27-Development-3.1.0-beta.3
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
player_graphics_item.h
Go to the documentation of this file.
1
6
7#ifndef COCKATRICE_PLAYER_GRAPHICS_ITEM_H
8#define COCKATRICE_PLAYER_GRAPHICS_ITEM_H
11#include "../game_scene.h"
12
13#include <QGraphicsObject>
14
15class HandZone;
16class PileZone;
17class PlayerDialogs;
18class PlayerMenu;
19class PlayerTarget;
20class StackZone;
21class TableZone;
22class ZoneViewZone;
23
24class PlayerGraphicsItem : public QGraphicsObject
25{
26 Q_OBJECT
27
28public:
29 enum
30 {
32 };
33 int type() const override
34 {
35 return Type;
36 }
37
38 static constexpr int counterAreaWidth = 55;
39
41 void initializeZones();
42
43 [[nodiscard]] QRectF boundingRect() const override;
44 qreal getMinimumWidth() const;
45 void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
46 void processSceneSizeChange(int newPlayerWidth);
47
48 void setMirrored(bool _mirrored);
49
50 bool getMirrored() const
51 {
52 return mirrored;
53 }
54
56 {
57 return static_cast<GameScene *>(scene());
58 }
59
61 {
62 return player;
63 }
64
65 [[nodiscard]] PlayerMenu *getPlayerMenu() const
66 {
67 return playerMenu;
68 }
69
71 {
72 return playerArea;
73 }
74
76 {
77 return playerTarget;
78 }
79
80 CardZone *getZoneGraphicsItem(const QString &name) const
81 {
82 return zoneGraphicsItems.value(name, nullptr);
83 }
84
85 [[nodiscard]] PileZone *getDeckZoneGraphicsItem() const
86 {
88 }
89
91 {
93 }
94
96 {
98 }
99 [[nodiscard]] PileZone *getRfgZoneGraphicsItem() const
100 {
101 return rfgZoneGraphicsItem;
102 }
103 [[nodiscard]] TableZone *getTableZoneGraphicsItem() const
104 {
106 }
107 [[nodiscard]] StackZone *getStackZoneGraphicsItem() const
108 {
110 }
111 [[nodiscard]] HandZone *getHandZoneGraphicsItem() const
112 {
114 }
115
116public slots:
117 void onPlayerActiveChanged(bool _active);
118 void onCustomZoneAdded(QString customZoneName);
119 void onCounterAdded(CounterState *state);
120 void onCounterRemoved(int counterId);
121 void rearrangeCounters();
122 void retranslateUi();
123
124signals:
127 void mirroredChanged(bool isMirrored);
128 void cardInfoRequested(const CardRef &cardRef);
129
130private:
136 QMap<int, AbstractCounter *> counterWidgets;
137 QMap<QString, CardZone *> zoneGraphicsItems;
145 QRectF bRect;
147 bool handVisible = false;
148
149private slots:
150 void updateBoundingRect();
151 void rearrangeZones();
152};
153
154#endif // COCKATRICE_PLAYER_GRAPHICS_ITEM_H
Definition card_zone.h:26
Definition counter_state.h:10
Manages the game board display including players, zones, cards, and animations.
Definition game_scene.h:41
Definition hand_zone.h:14
Definition pile_zone.h:18
Definition player_area.h:17
Definition player_dialogs.h:11
PileZone * deckZoneGraphicsItem
Definition player_graphics_item.h:138
TableZone * getTableZoneGraphicsItem() const
Definition player_graphics_item.h:103
HandZone * handZoneGraphicsItem
Definition player_graphics_item.h:144
PileZone * getDeckZoneGraphicsItem() const
Definition player_graphics_item.h:85
PlayerMenu * getPlayerMenu() const
Definition player_graphics_item.h:65
TableZone * tableZoneGraphicsItem
Definition player_graphics_item.h:142
void onCounterRemoved(int counterId)
Definition player_graphics_item.cpp:206
PlayerTarget * getPlayerTarget() const
Definition player_graphics_item.h:75
CardZone * getZoneGraphicsItem(const QString &name) const
Definition player_graphics_item.h:80
PlayerLogic * player
Definition player_graphics_item.h:131
void initializeZones()
Definition player_graphics_item.cpp:90
void processSceneSizeChange(int newPlayerWidth)
Definition player_graphics_item.cpp:163
void onCounterAdded(CounterState *state)
Definition player_graphics_item.cpp:185
PileZone * getSideboardZoneGraphicsItem() const
Definition player_graphics_item.h:90
PlayerGraphicsItem(PlayerLogic *player)
Definition player_graphics_item.cpp:17
PileZone * getGraveyardZoneGraphicsItem() const
Definition player_graphics_item.h:95
StackZone * getStackZoneGraphicsItem() const
Definition player_graphics_item.h:107
void retranslateUi()
Definition player_graphics_item.cpp:75
void onPlayerActiveChanged(bool _active)
Definition player_graphics_item.cpp:85
GameScene * getGameScene() const
Definition player_graphics_item.h:55
static constexpr int counterAreaWidth
Definition player_graphics_item.h:38
void onCustomZoneAdded(QString customZoneName)
Definition player_graphics_item.cpp:137
QMap< int, AbstractCounter * > counterWidgets
Definition player_graphics_item.h:136
PileZone * graveyardZoneGraphicsItem
Definition player_graphics_item.h:140
PlayerDialogs * playerDialogs
Definition player_graphics_item.h:133
int type() const override
Definition player_graphics_item.h:33
PlayerMenu * playerMenu
Definition player_graphics_item.h:132
PlayerArea * getPlayerArea() const
Definition player_graphics_item.h:70
StackZone * stackZoneGraphicsItem
Definition player_graphics_item.h:143
QMap< QString, CardZone * > zoneGraphicsItems
Definition player_graphics_item.h:137
@ Type
Definition player_graphics_item.h:31
void rearrangeCounters()
Definition player_graphics_item.cpp:219
void cardInfoRequested(const CardRef &cardRef)
QRectF boundingRect() const override
Definition player_graphics_item.cpp:142
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override
Definition player_graphics_item.cpp:157
void setMirrored(bool _mirrored)
Definition player_graphics_item.cpp:176
PileZone * sideboardGraphicsItem
Definition player_graphics_item.h:139
qreal getMinimumWidth() const
Definition player_graphics_item.cpp:147
void updateBoundingRect()
Definition player_graphics_item.cpp:283
bool handVisible
Definition player_graphics_item.h:147
HandZone * getHandZoneGraphicsItem() const
Definition player_graphics_item.h:111
void rearrangeZones()
Definition player_graphics_item.cpp:233
bool getMirrored() const
Definition player_graphics_item.h:50
void mirroredChanged(bool isMirrored)
PileZone * getRfgZoneGraphicsItem() const
Definition player_graphics_item.h:99
PlayerArea * playerArea
Definition player_graphics_item.h:134
PileZone * rfgZoneGraphicsItem
Definition player_graphics_item.h:141
PlayerTarget * playerTarget
Definition player_graphics_item.h:135
PlayerLogic * getLogic() const
Definition player_graphics_item.h:60
bool mirrored
Definition player_graphics_item.h:146
QRectF bRect
Definition player_graphics_item.h:145
Definition player_logic.h:64
Definition player_menu.h:28
Definition player_target.h:28
Definition stack_zone.h:14
TableZone is the grid based rect where CardItems may be placed.
Definition table_zone.h:21
Definition view_zone.h:35
@ typeOther
Definition graphics_item_type.h:19
Definition card_ref.h:14