Eris
1.3.19
Main Page
Related Pages
Classes
Files
File List
Eris
TerrainModObserver.h
1
//
2
// C++ Interface: TerrainModObserver
3
//
4
// Description: The purpose of this class is to handle the bulk of the work
5
// involved with using Mercator::TerrainMods. It handles parsing
6
// the Atlas data and storing all the information needed by
7
// TerrainGenerator to add and remove them from the Terrain.
8
//
9
// TerrainGenerator listens for changes in the modifier and
10
// updates or removes the modifiers from the terrain as needed.
11
//
12
//
13
// Author: Tamas Bates <rhymer@gmail.com>, (C) 2008
14
// Author: Erik Hjortsberg <erik.hjortsberg@iteam.se>, (C) 2008
15
//
16
// This program is free software; you can redistribute it and/or modify
17
// it under the terms of the GNU General Public License as published by
18
// the Free Software Foundation; either version 2 of the License, or
19
// (at your option) any later version.
20
//
21
// This program is distributed in the hope that it will be useful,
22
// but WITHOUT ANY WARRANTY; without even the implied warranty of
23
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24
// GNU General Public License for more details.
25
//
26
// You should have received a copy of the GNU General Public License
27
// along with this program; if not, write to the Free Software
28
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.//
29
//
30
#ifndef ERIS_TERRAINMODOBSERVER_H
31
#define ERIS_TERRAINMODOBSERVER_H
32
33
#include <sigc++/signal.h>
34
#include <Eris/Entity.h>
35
36
namespace
Mercator {
37
class
TerrainMod;
38
}
39
40
namespace
Eris {
41
42
class
TerrainModTranslator;
43
52
class
TerrainModObserver
53
{
54
public
:
59
TerrainModObserver
(
Entity
* entity);
60
64
virtual
~TerrainModObserver
();
65
71
virtual
bool
init
(
bool
alwaysObserve =
false
);
72
77
Mercator::TerrainMod*
getMod
()
const
;
78
79
84
sigc::signal<void>
ModChanged
;
85
90
sigc::signal<void>
ModDeleted
;
91
96
Entity
*
getEntity
()
const
;
97
98
protected
:
99
103
Entity
*
mEntity
;
104
108
Entity::AttrChangedSlot
mAttrChangedSlot
;
109
110
114
virtual
void
onModChanged
();
115
119
virtual
void
onModDeleted
();
120
125
void
attributeChanged
(
const
Atlas::Message::Element& attributeValue);
126
130
void
entity_Moved
();
131
136
void
entity_Deleted
();
137
142
virtual
void
observeEntity
();
143
149
virtual
bool
parseMod
();
150
155
virtual
void
reparseMod
();
156
157
162
TerrainModTranslator
*
mInnerMod
;
163
};
164
165
}
166
167
#endif
Generated on Sat Jun 9 2012 15:02:16 for Eris by
1.8.1