Cockatrice 2025-11-30-Development-2.11.0-beta.38
A cross-platform virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
card_zone_logic.h
Go to the documentation of this file.
1
6
7#ifndef COCKATRICE_CARD_ZONE_LOGIC_H
8#define COCKATRICE_CARD_ZONE_LOGIC_H
9
12
13#include <QLoggingCategory>
14#include <QObject>
15
16inline Q_LOGGING_CATEGORY(CardZoneLogicLog, "card_zone_logic");
17
18class Player;
19class ZoneViewZone;
20class QMenu;
21class QAction;
22class QPainter;
23class CardDragItem;
24
25class CardZoneLogic : public QObject
26{
27 Q_OBJECT
28
29signals:
30 void cardAdded(CardItem *addedCard);
34 void setGraphicsVisibility(bool visible);
36
37public:
38 explicit CardZoneLogic(Player *_player,
39 const QString &_name,
40 bool _hasCardAttr,
41 bool _isShufflable,
42 bool _contentsKnown,
43 QObject *parent = nullptr);
44
45 void addCard(CardItem *card, bool reorganize, int x, int y = -1);
46 // getCard() finds a card by id.
47 CardItem *getCard(int cardId);
48 void removeCard(CardItem *card);
49 // takeCard() finds a card by position and removes it from the zone and from all of its views.
50 virtual CardItem *takeCard(int position, int cardId, bool canResize = true);
51
52 void rawInsertCard(CardItem *card, int index)
53 {
54 cards.insert(index, card);
55 }
56
57 [[nodiscard]] const CardList &getCards() const
58 {
59 return cards;
60 }
61
62 void sortCards(const QList<CardList::SortOption> &options)
63 {
64 cards.sortBy(options);
65 }
66 [[nodiscard]] QString getName() const
67 {
68 return name;
69 }
70 [[nodiscard]] QString getTranslatedName(bool theirOwn, GrammaticalCase gc) const;
71 [[nodiscard]] Player *getPlayer() const
72 {
73 return player;
74 }
75 [[nodiscard]] bool contentsKnown() const
76 {
77 return cards.getContentsKnown();
78 }
79 QList<ZoneViewZone *> &getViews()
80 {
81 return views;
82 }
83 void setAlwaysRevealTopCard(bool _alwaysRevealTopCard)
84 {
85 alwaysRevealTopCard = _alwaysRevealTopCard;
86 }
87 [[nodiscard]] bool getAlwaysRevealTopCard() const
88 {
90 }
91 [[nodiscard]] bool getHasCardAttr() const
92 {
93 return hasCardAttr;
94 }
95 [[nodiscard]] bool getIsShufflable() const
96 {
97 return isShufflable;
98 }
99 void clearContents();
100
101public slots:
102 void moveAllToZone();
103
104private slots:
105 void refreshCardInfos();
106
107protected:
109 QString name;
111 QList<ZoneViewZone *> views;
115
116 virtual void addCardImpl(CardItem *card, int x, int y) = 0;
117};
118
119#endif // COCKATRICE_CARD_ZONE_LOGIC_H
TODO: Document this.
Q_LOGGING_CATEGORY(CardZoneLogicLog, "card_zone_logic")
Definition card_drag_item.h:15
Definition card_item.h:29
Definition card_list.h:18
const CardList & getCards() const
Definition card_zone_logic.h:57
void setAlwaysRevealTopCard(bool _alwaysRevealTopCard)
Definition card_zone_logic.h:83
void refreshCardInfos()
Definition card_zone_logic.cpp:120
void moveAllToZone()
Definition card_zone_logic.cpp:127
bool contentsKnown() const
Definition card_zone_logic.h:75
void reorganizeCards()
QString getName() const
Definition card_zone_logic.h:66
void rawInsertCard(CardItem *card, int index)
Definition card_zone_logic.h:52
void cardCountChanged()
bool getIsShufflable() const
Definition card_zone_logic.h:95
QList< ZoneViewZone * > & getViews()
Definition card_zone_logic.h:79
bool getHasCardAttr() const
Definition card_zone_logic.h:91
void updateGraphics()
CardItem * getCard(int cardId)
Definition card_zone_logic.cpp:90
bool getAlwaysRevealTopCard() const
Definition card_zone_logic.h:87
void retranslateUi()
virtual void addCardImpl(CardItem *card, int x, int y)=0
void addCard(CardItem *card, bool reorganize, int x, int y=-1)
Definition card_zone_logic.cpp:37
QString name
Definition card_zone_logic.h:109
QList< ZoneViewZone * > views
Definition card_zone_logic.h:111
void clearContents()
Definition card_zone_logic.cpp:148
bool hasCardAttr
Definition card_zone_logic.h:112
void cardAdded(CardItem *addedCard)
virtual CardItem * takeCard(int position, int cardId, bool canResize=true)
Definition card_zone_logic.cpp:61
CardList cards
Definition card_zone_logic.h:110
CardZoneLogic(Player *_player, const QString &_name, bool _hasCardAttr, bool _isShufflable, bool _contentsKnown, QObject *parent=nullptr)
Definition card_zone_logic.cpp:22
QString getTranslatedName(bool theirOwn, GrammaticalCase gc) const
Definition card_zone_logic.cpp:172
void sortCards(const QList< CardList::SortOption > &options)
Definition card_zone_logic.h:62
bool alwaysRevealTopCard
Definition card_zone_logic.h:114
void removeCard(CardItem *card)
Definition card_zone_logic.cpp:106
Player * getPlayer() const
Definition card_zone_logic.h:71
void setGraphicsVisibility(bool visible)
Player * player
Definition card_zone_logic.h:108
bool isShufflable
Definition card_zone_logic.h:113
Definition player.h:65
Definition view_zone.h:35
GrammaticalCase
Definition translation.h:5