Cockatrice 2026-09-01-Development-3.1.0-beta.10
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
abstract_card_item.h
Go to the documentation of this file.
1
6
7#ifndef ABSTRACTCARDITEM_H
8#define ABSTRACTCARDITEM_H
9
10#include "../animated_item.h"
11#include "../card_dimensions.h"
12#include "arrow_target.h"
13#include "graphics_item_type.h"
14
17
18class PlayerLogic;
19
21{
22 Q_OBJECT
23protected:
25 int id;
27 bool tapped;
30 QString color;
31 QColor bgColor;
32
33private:
36private slots:
37 void pixmapUpdated();
38
39public slots:
40 void refreshCardInfo();
41
42signals:
44 void showCardInfoPopup(const QPoint &pos, const CardRef &cardRef);
45 void deleteCardInfoPopup(QString cardName);
47 void cardShiftClicked(QString cardName);
48 void rightClicked(AbstractCardItem *card, QPoint screenPos);
52 void selectionChanged(AbstractCardItem *card, bool selected);
53
54public:
55 enum
56 {
58 };
59 int type() const override
60 {
61 return Type;
62 }
63 explicit AbstractCardItem(QGraphicsItem *parent = nullptr,
64 const CardRef &cardRef = {},
65 PlayerLogic *_owner = nullptr,
66 int _id = -1);
67 ~AbstractCardItem() override;
68 QRectF boundingRect() const override;
69 QPainterPath shape() const override;
70 QSizeF getTranslatedSize(QPainter *painter) const;
71 void paintPicture(QPainter *painter, const QSizeF &translatedSize, int angle);
72 void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
74 {
75 return exactCard;
76 }
77 const CardInfo &getCardInfo() const;
78 int getId() const
79 {
80 return id;
81 }
82 void setId(int _id)
83 {
84 id = _id;
85 }
86 QString getName() const
87 {
88 return cardRef.name;
89 }
90 QString getProviderId() const
91 {
92 return cardRef.providerId;
93 }
94 void setCardRef(const CardRef &_cardRef);
96 {
97 return cardRef;
98 }
99 qreal getRealZValue() const
100 {
101 return realZValue;
102 }
103 void setRealZValue(qreal _zValue);
104 void setHovered(bool _hovered);
105 bool getIsHovered() const
106 {
107 return isHovered;
108 }
109 QString getColor() const
110 {
111 return color;
112 }
113 void setColor(const QString &_color);
114 bool getTapped() const
115 {
116 return tapped;
117 }
118 void setTapped(bool _tapped, bool canAnimate = false);
119 bool getFaceDown() const
120 {
121 return facedown;
122 }
123 void setFaceDown(bool _facedown);
124 void processHoverEvent();
126 {
127 emit deleteCardInfoPopup(cardRef.name);
128 }
129
131 bool animationEvent() override;
132
133protected:
134 void transformPainter(QPainter *painter, const QSizeF &translatedSize, int angle);
135 void mousePressEvent(QGraphicsSceneMouseEvent *event) override;
136 void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override;
137 QVariant itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value) override;
138 void cacheBgColor();
139};
140
141#endif
Interface for scene items driven by GameScene's shared animation timer.
Canonical card dimension constants for layout and Z-value calculations.
qreal realZValue
Definition abstract_card_item.h:35
~AbstractCardItem() override
Definition abstract_card_item.cpp:40
void playSelectedFaceDown(AbstractCardItem *card)
void setFaceDown(bool _facedown)
Definition abstract_card_item.cpp:313
QVariant itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value) override
Definition abstract_card_item.cpp:352
bool tapped
Definition abstract_card_item.h:27
CardRef cardRef
Definition abstract_card_item.h:26
qreal getRealZValue() const
Definition abstract_card_item.h:99
void setId(int _id)
Definition abstract_card_item.h:82
int type() const override
Definition abstract_card_item.h:59
QPainterPath shape() const override
Definition abstract_card_item.cpp:50
void refreshCardInfo()
Definition abstract_card_item.cpp:65
void deleteCardInfoPopup(QString cardName)
void setTapped(bool _tapped, bool canAnimate=false)
Definition abstract_card_item.cpp:289
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override
Definition abstract_card_item.cpp:337
void cardShiftClicked(QString cardName)
QSizeF getTranslatedSize(QPainter *painter) const
Definition abstract_card_item.cpp:102
QRectF boundingRect() const override
Definition abstract_card_item.cpp:45
bool getFaceDown() const
Definition abstract_card_item.h:119
void mousePressEvent(QGraphicsSceneMouseEvent *event) override
Definition abstract_card_item.cpp:319
int id
Definition abstract_card_item.h:25
void transformPainter(QPainter *painter, const QSizeF &translatedSize, int angle)
Definition abstract_card_item.cpp:108
void pixmapUpdated()
Definition abstract_card_item.cpp:59
AbstractCardItem(QGraphicsItem *parent=nullptr, const CardRef &cardRef={}, PlayerLogic *_owner=nullptr, int _id=-1)
Definition abstract_card_item.cpp:19
void hovered(AbstractCardItem *card)
void setRealZValue(qreal _zValue)
Definition abstract_card_item.cpp:91
void deleteCardInfoPopup()
Definition abstract_card_item.h:125
bool animationEvent() override
Default: no per-tick animation. Subclasses override to animate.
Definition abstract_card_item.cpp:308
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override
Definition abstract_card_item.cpp:185
void playSelected(AbstractCardItem *card)
void cacheBgColor()
Definition abstract_card_item.cpp:255
void sigPixmapUpdated()
void paintPicture(QPainter *painter, const QSizeF &translatedSize, int angle)
Definition abstract_card_item.cpp:127
QString getColor() const
Definition abstract_card_item.h:109
CardRef getCardRef() const
Definition abstract_card_item.h:95
bool facedown
Definition abstract_card_item.h:28
bool getIsHovered() const
Definition abstract_card_item.h:105
void rightClicked(AbstractCardItem *card, QPoint screenPos)
void setColor(const QString &_color)
Definition abstract_card_item.cpp:248
QString getName() const
Definition abstract_card_item.h:86
ExactCard getCard() const
Definition abstract_card_item.h:73
@ Type
Definition abstract_card_item.h:57
QString getProviderId() const
Definition abstract_card_item.h:90
void showCardInfoPopup(const QPoint &pos, const CardRef &cardRef)
void hideSelected(AbstractCardItem *card)
QString color
Definition abstract_card_item.h:30
void processHoverEvent()
Definition abstract_card_item.cpp:347
QColor bgColor
Definition abstract_card_item.h:31
bool getTapped() const
Definition abstract_card_item.h:114
void setCardRef(const CardRef &_cardRef)
Definition abstract_card_item.cpp:210
bool isHovered
Definition abstract_card_item.h:34
const CardInfo & getCardInfo() const
Definition abstract_card_item.cpp:86
ExactCard exactCard
Definition abstract_card_item.h:24
void setHovered(bool _hovered)
Definition abstract_card_item.cpp:225
void selectionChanged(AbstractCardItem *card, bool selected)
int getId() const
Definition abstract_card_item.h:78
int tapAngle
Definition abstract_card_item.h:29
ArrowTarget(PlayerLogic *_owner, QGraphicsItem *parent=nullptr)
Definition arrow_target.cpp:6
Represents a card and its associated metadata, properties, and relationships.
Definition card_info.h:51
Represents a specific card instance, defined by its CardInfo and a particular printing.
Definition exact_card.h:19
Definition animated_item.h:15
Definition player_logic.h:65
@ typeCard
Definition graphics_item_type.h:14
Definition card_ref.h:14