Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/trunk/src/modules/objects/triggers/EventTrigger.h @ 8706

Last change on this file since 8706 was 8706, checked in by dafrick, 13 years ago

Merging presentation branch back into trunk.
There are many new features and also a lot of other changes and bugfixes, if you want to know, digg through the svn log.
Not everything is yet working as it should, but it should be fairly stable. If you habe any bug reports, just send me an email.

  • Property svn:eol-style set to native
File size: 2.7 KB
Line 
1/*
2 *   ORXONOX - the hottest 3D action shooter ever to exist
3 *                    > www.orxonox.net <
4 *
5 *
6 *   License notice:
7 *
8 *   This program is free software; you can redistribute it and/or
9 *   modify it under the terms of the GNU General Public License
10 *   as published by the Free Software Foundation; either version 2
11 *   of the License, or (at your option) any later version.
12 *
13 *   This program is distributed in the hope that it will be useful,
14 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
15 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 *   GNU General Public License for more details.
17 *
18 *   You should have received a copy of the GNU General Public License
19 *   along with this program; if not, write to the Free Software
20 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
21 *
22 *   Author:
23 *      Fabian 'x3n' Landau
24 *   Co-authors:
25 *      ...
26 *
27 */
28
29/**
30    @file EventTrigger.h
31    @brief Definition of the EventTrigger class.
32    @ingroup NormalTrigger
33*/
34
35#ifndef _EventTrigger_H__
36#define _EventTrigger_H__
37
38#include "objects/ObjectsPrereqs.h"
39
40#include "Trigger.h"
41
42namespace orxonox
43{
44
45    /**
46    @brief
47        The EventTrigger class provides a way to have a Trigger triggered by any kinds of @ref orxonox::Event "Events".
48
49        Example:
50        @code
51        <EventTrigger invert="true">
52            <events>
53                <trigger>
54                    <TriggerBase ... />
55                    <EventListener ... />
56                </trigger>
57            </events>
58        </EventTrigger>
59        @endcode
60
61    @see Trigger
62        For more information on @ref orxonox::Trigger "Triggers".
63
64    @author
65        Fabian 'x3n' Landau
66
67    @ingroup NormalTrigger
68    */
69    class _ObjectsExport EventTrigger : public Trigger
70    {
71        public:
72            EventTrigger(BaseObject* creator); // Constructor. Registers and initializes the object.
73            virtual ~EventTrigger();
74
75            virtual void XMLEventPort(Element& xmlelement, XMLPort::Mode mode); // Creates an event port.
76
77            /**
78            @brief Method that is called when a new event comes in.
79                   The tick call makes sure the state change takes effect immediately.
80            @param bTriggered The state of the incoming event.
81            */
82            inline void trigger(bool bTriggered)
83                { this->bEventTriggered_ = bTriggered; this->tick(0); }
84
85        protected:
86            virtual bool isTriggered(TriggerMode::Value mode); // Check whether the EventTrigger should be triggered.
87
88        private:
89            bool bEventTriggered_; //!< Boolean to keep track of what the state of the last event was.
90    };
91}
92
93#endif /* _EventTrigger_H__ */
Note: See TracBrowser for help on using the repository browser.