Minetest  5.4.0
mtevent.h
Go to the documentation of this file.
1 /*
2 Minetest
3 Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>
4 
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU Lesser General Public License as published by
7 the Free Software Foundation; either version 2.1 of the License, or
8 (at your option) any later version.
9 
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU Lesser General Public License for more details.
14 
15 You should have received a copy of the GNU Lesser General Public License along
16 with this program; if not, write to the Free Software Foundation, Inc.,
17 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 */
19 
20 #pragma once
21 
22 #include "irrlichttypes.h"
23 
24 class MtEvent
25 {
26 public:
27  enum Type : u8
28  {
38  };
39 
40  virtual ~MtEvent() = default;
41  virtual Type getType() const = 0;
42 };
43 
44 // An event with no parameters and customizable name
46 {
48 
49 public:
51  Type getType() const override { return type; }
52 };
53 
55 {
56 public:
57  virtual ~MtEventReceiver() = default;
58  virtual void onEvent(MtEvent *e) = 0;
59 };
60 
61 typedef void (*event_receive_func)(MtEvent *e, void *data);
62 
64 {
65 public:
66  virtual ~MtEventManager() = default;
67  virtual void put(MtEvent *e) = 0;
68  virtual void reg(MtEvent::Type type, event_receive_func f, void *data) = 0;
69  // If data==NULL, every occurence of f is deregistered.
70  virtual void dereg(MtEvent::Type type, event_receive_func f, void *data) = 0;
71 };
Definition: mtevent.h:64
virtual void put(MtEvent *e)=0
virtual ~MtEventManager()=default
virtual void reg(MtEvent::Type type, event_receive_func f, void *data)=0
virtual void dereg(MtEvent::Type type, event_receive_func f, void *data)=0
Definition: mtevent.h:55
virtual ~MtEventReceiver()=default
virtual void onEvent(MtEvent *e)=0
Definition: mtevent.h:25
Type
Definition: mtevent.h:28
@ PLAYER_JUMP
Definition: mtevent.h:35
@ PLAYER_DAMAGE
Definition: mtevent.h:33
@ PLAYER_FALLING_DAMAGE
Definition: mtevent.h:32
@ VIEW_BOBBING_STEP
Definition: mtevent.h:29
@ NODE_DUG
Definition: mtevent.h:34
@ TYPE_MAX
Definition: mtevent.h:37
@ PLAYER_REGAIN_GROUND
Definition: mtevent.h:36
@ CAMERA_PUNCH_LEFT
Definition: mtevent.h:30
@ CAMERA_PUNCH_RIGHT
Definition: mtevent.h:31
virtual ~MtEvent()=default
virtual Type getType() const =0
Definition: mtevent.h:46
Type getType() const override
Definition: mtevent.h:51
Type type
Definition: mtevent.h:47
SimpleTriggerEvent(Type type)
Definition: mtevent.h:50
void(* event_receive_func)(MtEvent *e, void *data)
Definition: mtevent.h:61