Luanti 5.15.0-dev
 
Loading...
Searching...
No Matches
sound_maker.h
Go to the documentation of this file.
1// Luanti
2// SPDX-License-Identifier: LGPL-2.1-or-later
3// Copyright (C) 2025 Luanti developers
4
5#pragma once
6
7#include "sound_spec.h"
8
9class ISoundManager;
10class NodeDefManager;
11class MtEventManager;
12class MtEvent;
13
14// TODO move this together with the game.cpp interact code to its own file.
15#include "mtevent.h"
16#include "mapnode.h"
17class NodeDugEvent : public MtEvent
18{
19public:
22
24 p(p),
25 n(n)
26 {}
27 Type getType() const { return NODE_DUG; }
28};
29
30
31// This class handles the playing of sound on MtEventManager events
32// and stores which sounds to play.
33
35{
38
39 float m_player_step_timer = 0.0f;
40 float m_player_jump_timer = 0.0f;
43
44public:
46 // Second sound made on left punch, currently used for item 'use' sound
49
52
53 // NOTE if the SoundMaker got registered as a receiver,
54 // it must not be destructed before the event manager.
56
57 void update(f32 dtime, bool makes_footstep_sound, const SoundSpec &sound_footstep);
58
59private:
60 void playPlayerStep();
61 void playPlayerJump();
62
63 static void viewBobbingStep(MtEvent *e, void *data);
64 static void playerRegainGround(MtEvent *e, void *data);
65 static void playerJump(MtEvent *e, void *data);
66 static void cameraPunchLeft(MtEvent *e, void *data);
67 static void cameraPunchRight(MtEvent *e, void *data);
68 static void nodeDug(MtEvent *e, void *data);
69 static void playerDamage(MtEvent *e, void *data);
70 static void playerFallingDamage(MtEvent *e, void *data);
71};
Definition sound.h:46
Definition mtevent.h:42
Definition mtevent.h:10
Type
Definition mtevent.h:13
@ NODE_DUG
Definition mtevent.h:19
This class is for getting the actual properties of nodes from their content ID.
Definition nodedef.h:509
Definition sound_maker.h:18
NodeDugEvent(v3s16 p, MapNode n)
Definition sound_maker.h:23
MapNode n
Definition sound_maker.h:21
v3s16 p
Definition sound_maker.h:20
Type getType() const
Definition sound_maker.h:27
Definition sound_maker.h:35
static void cameraPunchLeft(MtEvent *e, void *data)
Definition sound_maker.cpp:46
static void nodeDug(MtEvent *e, void *data)
Definition sound_maker.cpp:59
static void playerFallingDamage(MtEvent *e, void *data)
Definition sound_maker.cpp:72
void registerReceiver(MtEventManager *mgr)
Definition sound_maker.cpp:78
void playPlayerJump()
Definition sound_maker.cpp:20
float m_player_jump_timer
Definition sound_maker.h:40
const NodeDefManager * m_ndef
Definition sound_maker.h:37
float m_player_step_timer
Definition sound_maker.h:39
SoundSpec m_player_rightpunch_sound
Definition sound_maker.h:48
static void playerRegainGround(MtEvent *e, void *data)
Definition sound_maker.cpp:34
ISoundManager * m_sound
Definition sound_maker.h:36
SoundSpec m_player_step_sound
Definition sound_maker.h:42
SoundSpec m_player_leftpunch_sound2
Definition sound_maker.h:47
bool makes_footstep_sound
Definition sound_maker.h:41
void playPlayerStep()
Definition sound_maker.cpp:11
SoundSpec m_player_leftpunch_sound
Definition sound_maker.h:45
static void playerJump(MtEvent *e, void *data)
Definition sound_maker.cpp:40
static void playerDamage(MtEvent *e, void *data)
Definition sound_maker.cpp:66
static void viewBobbingStep(MtEvent *e, void *data)
Definition sound_maker.cpp:28
static void cameraPunchRight(MtEvent *e, void *data)
Definition sound_maker.cpp:53
void update(f32 dtime, bool makes_footstep_sound, const SoundSpec &sound_footstep)
Definition sound_maker.cpp:90
SoundMaker(ISoundManager *sound, const NodeDefManager *ndef)
Definition sound_maker.h:50
core::vector3d< s16 > v3s16
Definition irr_v3d.h:13
Definition al_extensions.cpp:11
Definition mapnode.h:123
Describes the sound information for playback.
Definition sound_spec.h:18