Cockatrice 2026-06-01-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
10#include "../game_scene.h"
11#include "player_logic.h"
12
13#include <QGraphicsObject>
14
15class HandZone;
16class PileZone;
17class PlayerTarget;
18class StackZone;
19class TableZone;
20class ZoneViewZone;
21
22class PlayerGraphicsItem : public QGraphicsObject
23{
24 Q_OBJECT
25
26public:
27 enum
28 {
30 };
31 int type() const override
32 {
33 return Type;
34 }
35
36 static constexpr int counterAreaWidth = 55;
37
39 void initializeZones();
40
41 [[nodiscard]] QRectF boundingRect() const override;
42 qreal getMinimumWidth() const;
43 void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
44 void processSceneSizeChange(int newPlayerWidth);
45
46 void setMirrored(bool _mirrored);
47
48 bool getMirrored() const
49 {
50 return mirrored;
51 }
52
54 {
55 return static_cast<GameScene *>(scene());
56 }
57
59 {
60 return player;
61 }
62
64 {
65 return playerArea;
66 }
67
69 {
70 return playerTarget;
71 }
72
73 [[nodiscard]] PileZone *getDeckZoneGraphicsItem() const
74 {
76 }
77
79 {
81 }
82
84 {
86 }
87 [[nodiscard]] PileZone *getRfgZoneGraphicsItem() const
88 {
90 }
91 [[nodiscard]] TableZone *getTableZoneGraphicsItem() const
92 {
94 }
95 [[nodiscard]] StackZone *getStackZoneGraphicsItem() const
96 {
98 }
99 [[nodiscard]] HandZone *getHandZoneGraphicsItem() const
100 {
102 }
103
104public slots:
105 void onPlayerActiveChanged(bool _active);
106 void onCounterAdded(CounterState *state);
107 void onCounterRemoved(int counterId);
108 void rearrangeCounters();
109 void retranslateUi();
110
111signals:
114
115private:
119 QMap<int, AbstractCounter *> counterWidgets;
127 QRectF bRect;
129 bool handVisible = false;
130
131private slots:
132 void updateBoundingRect();
133 void rearrangeZones();
134};
135
136#endif // COCKATRICE_PLAYER_GRAPHICS_ITEM_H
Definition counter_state.h:10
Manages the game board display including players, zones, cards, and animations.
Definition game_scene.h:40
Definition hand_zone.h:14
Definition pile_zone.h:18
Definition player_area.h:17
PileZone * deckZoneGraphicsItem
Definition player_graphics_item.h:120
TableZone * getTableZoneGraphicsItem() const
Definition player_graphics_item.h:91
HandZone * handZoneGraphicsItem
Definition player_graphics_item.h:126
@ Type
Definition player_graphics_item.h:29
PileZone * getDeckZoneGraphicsItem() const
Definition player_graphics_item.h:73
TableZone * tableZoneGraphicsItem
Definition player_graphics_item.h:124
void onCounterRemoved(int counterId)
Definition player_graphics_item.cpp:173
PlayerTarget * getPlayerTarget() const
Definition player_graphics_item.h:68
PlayerLogic * player
Definition player_graphics_item.h:116
void initializeZones()
Definition player_graphics_item.cpp:73
void processSceneSizeChange(int newPlayerWidth)
Definition player_graphics_item.cpp:131
void onCounterAdded(CounterState *state)
Definition player_graphics_item.cpp:152
PileZone * getSideboardZoneGraphicsItem() const
Definition player_graphics_item.h:78
PlayerGraphicsItem(PlayerLogic *player)
Definition player_graphics_item.cpp:12
PileZone * getGraveyardZoneGraphicsItem() const
Definition player_graphics_item.h:83
StackZone * getStackZoneGraphicsItem() const
Definition player_graphics_item.h:95
void retranslateUi()
Definition player_graphics_item.cpp:58
void onPlayerActiveChanged(bool _active)
Definition player_graphics_item.cpp:68
GameScene * getGameScene() const
Definition player_graphics_item.h:53
static constexpr int counterAreaWidth
Definition player_graphics_item.h:36
QMap< int, AbstractCounter * > counterWidgets
Definition player_graphics_item.h:119
PileZone * graveyardZoneGraphicsItem
Definition player_graphics_item.h:122
PlayerLogic * getPlayer() const
Definition player_graphics_item.h:58
int type() const override
Definition player_graphics_item.h:31
PlayerArea * getPlayerArea() const
Definition player_graphics_item.h:63
StackZone * stackZoneGraphicsItem
Definition player_graphics_item.h:125
void rearrangeCounters()
Definition player_graphics_item.cpp:186
QRectF boundingRect() const override
Definition player_graphics_item.cpp:110
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override
Definition player_graphics_item.cpp:125
void setMirrored(bool _mirrored)
Definition player_graphics_item.cpp:144
PileZone * sideboardGraphicsItem
Definition player_graphics_item.h:121
qreal getMinimumWidth() const
Definition player_graphics_item.cpp:115
void updateBoundingRect()
Definition player_graphics_item.cpp:250
bool handVisible
Definition player_graphics_item.h:129
HandZone * getHandZoneGraphicsItem() const
Definition player_graphics_item.h:99
void rearrangeZones()
Definition player_graphics_item.cpp:200
bool getMirrored() const
Definition player_graphics_item.h:48
PileZone * getRfgZoneGraphicsItem() const
Definition player_graphics_item.h:87
PlayerArea * playerArea
Definition player_graphics_item.h:117
PileZone * rfgZoneGraphicsItem
Definition player_graphics_item.h:123
PlayerTarget * playerTarget
Definition player_graphics_item.h:118
bool mirrored
Definition player_graphics_item.h:128
QRectF bRect
Definition player_graphics_item.h:127
Definition player_logic.h:65
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