-
Notifications
You must be signed in to change notification settings - Fork 0
/
CEntity.cpp
87 lines (75 loc) · 2.1 KB
/
CEntity.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include "CEntity.h"
const QString CEntity::PROP_KEY_REF_NAME = "ref_name";
const QString CEntity::PROP_KEY_Z_INDEX = "z_index";
const QString CEntity::PROP_KEY_POSITION_X = "pos_x";
const QString CEntity::PROP_KEY_POSITION_Y = "pos_y";
//-----------------------------------------------------
CEntity::CEntity(long id) : mEntityId(id), mAngle(0), mPosition(0,0),
mZIndex(70)
{
}
//-----------------------------------------------------
CEntity::~CEntity()
{
}
//-----------------------------------------------------
void CEntity::addToScene(QGraphicsScene *scene)
{
Q_UNUSED(scene);
// Nothing to do here.
}
//-----------------------------------------------------
void CEntity::setAngle(float angle)
{
mAngle = angle;
}
//-----------------------------------------------------
void CEntity::setPosition(const Vector2D &pos)
{
mPosition = pos;
}
//-----------------------------------------------------
QVariantMap CEntity::getProperties()
{
QVariantMap map;
// General properties for all entities
map.insert(PROP_KEY_REF_NAME, mReferenceName);
map.insert(PROP_KEY_Z_INDEX, mZIndex);
map.insert(PROP_KEY_POSITION_X, mPosition.x);
map.insert(PROP_KEY_POSITION_Y, mPosition.y);
return map;
}
//-----------------------------------------------------
bool CEntity::setProperty(const QString &key, const QVariant &value)
{
if (key == PROP_KEY_REF_NAME)
{
mReferenceName = value.toString();
return true;
}
if (key == PROP_KEY_POSITION_X)
{
setPosition(Vector2D(value.toInt(), mPosition.y));
return true;
}
if (key == PROP_KEY_POSITION_Y)
{
setPosition(Vector2D(mPosition.x, value.toInt()));
return true;
}
if (key == PROP_KEY_Z_INDEX)
{
setZIndex(value.toUInt());
return true;
}
return false;
}
//-----------------------------------------------------
void CEntity::copyPropertiesTo(CEntity *ent)
{
ent->setAngle(mAngle);
ent->setPosition(mPosition);
ent->setReferenceName(mReferenceName);
ent->setZIndex(mZIndex);
}
//-----------------------------------------------------