66 lines
1.2 KiB
C++
66 lines
1.2 KiB
C++
#pragma once
|
|
#include <QObject>
|
|
#include <vector>
|
|
#include <QRandomGenerator>
|
|
#include <QSettings>
|
|
#include <QJsonObject>
|
|
#include <memory>
|
|
|
|
class Actor;
|
|
|
|
class ItemData
|
|
{
|
|
protected:
|
|
QString name_;
|
|
int8_t value_;
|
|
uint32_t itemId_;
|
|
|
|
public:
|
|
|
|
ItemData(uint32_t itemIdIn = QRandomGenerator::global()->generate(), QString name = "Item", int8_t value = 0);
|
|
|
|
inline bool operator==(const ItemData& in) const
|
|
{
|
|
return itemId_==in.itemId_;
|
|
}
|
|
inline bool operator!=(const ItemData& in) const
|
|
{
|
|
return itemId_!=in.itemId_;
|
|
}
|
|
|
|
uint32_t id() const;
|
|
|
|
void setName(QString name);
|
|
int8_t getValue() const;
|
|
virtual QString getName() const;
|
|
};
|
|
|
|
|
|
class Item: public QObject, public ItemData
|
|
{
|
|
Q_OBJECT
|
|
private:
|
|
|
|
signals:
|
|
|
|
void valueChanged(int8_t value);
|
|
void functionChanged(uint8_t function, bool on);
|
|
|
|
public slots:
|
|
|
|
virtual void setValue(int8_t value);
|
|
virtual void setFunction(uint8_t funciton, bool value);
|
|
|
|
public:
|
|
|
|
Item(uint32_t itemIdIn = QRandomGenerator::global()->generate(), QString name = "Item", int8_t value = 0,
|
|
QObject *parent = nullptr);
|
|
Item(const ItemData& itemData, QObject *parent = nullptr);
|
|
|
|
virtual ~Item();
|
|
|
|
void informValue(int8_t value);
|
|
|
|
};
|
|
|