Luanti 5.18.0-dev
Loading...
Searching...
No Matches
remoteplayer.h
Go to the documentation of this file.
1// Luanti
2// SPDX-License-Identifier: LGPL-2.1-or-later
3// Copyright (C) 2010-2016 celeron55, Perttu Ahola <celeron55@gmail.com>
4// Copyright (C) 2014-2016 nerzhul, Loic Blot <loic.blot@unix-experience.fr>
5
6#pragma once
7
8#include <ctime>
9#include "constants.h" // PEER_ID_INEXISTENT
10#include "player.h"
11#include "skyparams.h"
12#include "lighting.h"
13#include "network/networkprotocol.h" // session_t
14
15class PlayerSAO;
16
23
24/*
25 Player on the server
26*/
27class RemotePlayer : public Player
28{
29 friend class PlayerDatabaseFiles;
30
31public:
32 RemotePlayer(const std::string &name, IItemDefManager *idef);
33 virtual ~RemotePlayer();
34
36 void setPlayerSAO(PlayerSAO *sao) { m_sao = sao; }
37
39
40 void setHotbarItemcount(s32 hotbar_itemcount)
41 {
42 hud_hotbar_itemcount = hotbar_itemcount;
43 }
44
46
47 void overrideDayNightRatio(bool do_override, float ratio)
48 {
50 m_day_night_ratio = ratio;
51 }
52
53 void getDayNightRatio(bool *do_override, float *ratio)
54 {
55 *do_override = m_day_night_ratio_do_override;
56 *ratio = m_day_night_ratio;
57 }
58
59 void setHotbarImage(const std::string &name) { hud_hotbar_image = name; }
60
61 const std::string &getHotbarImage() const { return hud_hotbar_image; }
62
63 void setHotbarSelectedImage(const std::string &name)
64 {
66 }
67
68 const std::string &getHotbarSelectedImage() const
69 {
71 }
72
73 void setSky(const SkyboxParams &skybox_params)
74 {
75 m_skybox_params = skybox_params;
76 }
77
78 const SkyboxParams &getSkyParams() const { return m_skybox_params; }
79
80 void setSun(const SunParams &sun_params) { m_sun_params = sun_params; }
81
82 const SunParams &getSunParams() const { return m_sun_params; }
83
84 void setMoon(const MoonParams &moon_params) { m_moon_params = moon_params; }
85
86 const MoonParams &getMoonParams() const { return m_moon_params; }
87
88 void setStars(const StarParams &star_params) { m_star_params = star_params; }
89
90 const StarParams &getStarParams() const { return m_star_params; }
91
92 void setCloudParams(const CloudParams &cloud_params)
93 {
94 m_cloud_params = cloud_params;
95 }
96
97 const CloudParams &getCloudParams() const { return m_cloud_params; }
98
99 bool checkModified() const { return m_dirty || inventory.checkModified(); }
100
101 inline void setModified(const bool x) { m_dirty = x; }
102
103 void setLocalAnimations(v2f frames[4], float frame_speed)
104 {
105 for (int i = 0; i < 4; i++)
106 local_animations[i] = frames[i];
107 local_animation_speed = frame_speed;
108 }
109
110 void getLocalAnimations(v2f *frames, float *frame_speed)
111 {
112 for (int i = 0; i < 4; i++)
113 frames[i] = local_animations[i];
114 *frame_speed = local_animation_speed;
115 }
116
117 void setLighting(const Lighting &lighting) { m_lighting = lighting; }
118
119 const Lighting& getLighting() const { return m_lighting; }
120
121 void setDirty(bool dirty) { m_dirty = true; }
122
125
127
130 session_t getPeerId() const { return m_peer_id; }
131
132 void setPeerId(session_t peer_id) { m_peer_id = peer_id; }
133
134 void onSuccessfulSave();
135
136private:
137 PlayerSAO *m_sao = nullptr;
138 bool m_dirty = false;
139
143
144 u32 m_last_chat_message_sent = std::time(0);
147
150 std::string hud_hotbar_image = "";
152
154
159
161
163};
Definition itemdef.h:146
Definition player_sao.h:58
std::array< v2f,(size_t) LocalPlayerAnimation::COUNT > local_animations
Definition player.h:211
Player(const std::string &name, IItemDefManager *idef)
Definition player.cpp:27
s32 hud_hotbar_itemcount
Definition player.h:243
Inventory inventory
Definition player.h:196
float local_animation_speed
Definition player.h:212
friend class PlayerDatabaseFiles
Definition remoteplayer.h:29
const SunParams & getSunParams() const
Definition remoteplayer.h:82
std::string hud_hotbar_image
Definition remoteplayer.h:150
const Lighting & getLighting() const
Definition remoteplayer.h:119
session_t m_peer_id
Definition remoteplayer.h:162
RemotePlayer(const std::string &name, IItemDefManager *idef)
Definition remoteplayer.cpp:22
bool checkModified() const
Definition remoteplayer.h:99
void setHotbarItemcount(s32 hotbar_itemcount)
Definition remoteplayer.h:40
const CloudParams & getCloudParams() const
Definition remoteplayer.h:97
void setCloudParams(const CloudParams &cloud_params)
Definition remoteplayer.h:92
const std::string & getHotbarImage() const
Definition remoteplayer.h:61
void setModified(const bool x)
Definition remoteplayer.h:101
void setHotbarImage(const std::string &name)
Definition remoteplayer.h:59
session_t getPeerId() const
returns PEER_ID_INEXISTENT when PlayerSAO is either not yet present or about to be removed (e....
Definition remoteplayer.h:130
const MoonParams & getMoonParams() const
Definition remoteplayer.h:86
u16 m_message_rate_overhead
Definition remoteplayer.h:146
CloudParams m_cloud_params
Definition remoteplayer.h:153
void getDayNightRatio(bool *do_override, float *ratio)
Definition remoteplayer.h:53
RemotePlayerChatResult canSendChatMessage()
Definition remoteplayer.cpp:60
const StarParams & getStarParams() const
Definition remoteplayer.h:90
void setPeerId(session_t peer_id)
Definition remoteplayer.h:132
SunParams m_sun_params
Definition remoteplayer.h:156
const SkyboxParams & getSkyParams() const
Definition remoteplayer.h:78
void setLighting(const Lighting &lighting)
Definition remoteplayer.h:117
bool inventory_formspec_overridden
Definition remoteplayer.h:126
SkyboxParams m_skybox_params
Definition remoteplayer.h:155
s32 getHotbarItemcount() const
Definition remoteplayer.h:45
bool m_dirty
Definition remoteplayer.h:138
void setPlayerSAO(PlayerSAO *sao)
Definition remoteplayer.h:36
static u16 m_setting_chat_message_limit_trigger_kick
Definition remoteplayer.h:142
bool m_day_night_ratio_do_override
Definition remoteplayer.h:148
StarParams m_star_params
Definition remoteplayer.h:158
Lighting m_lighting
Definition remoteplayer.h:160
void setLocalAnimations(v2f frames[4], float frame_speed)
Definition remoteplayer.h:103
u32 m_last_chat_message_sent
Definition remoteplayer.h:144
PlayerSAO * m_sao
Definition remoteplayer.h:137
void setStars(const StarParams &star_params)
Definition remoteplayer.h:88
void setHotbarSelectedImage(const std::string &name)
Definition remoteplayer.h:63
u16 formspec_version
Definition remoteplayer.h:124
void setDirty(bool dirty)
Definition remoteplayer.h:121
void setSun(const SunParams &sun_params)
Definition remoteplayer.h:80
float m_chat_message_allowance
Definition remoteplayer.h:145
void getLocalAnimations(v2f *frames, float *frame_speed)
Definition remoteplayer.h:110
static bool m_setting_cache_loaded
Definition remoteplayer.h:140
static float m_setting_chat_message_limit_per_10sec
Definition remoteplayer.h:141
float m_day_night_ratio
Definition remoteplayer.h:149
PlayerSAO * getPlayerSAO()
Definition remoteplayer.h:35
virtual ~RemotePlayer()
Definition remoteplayer.cpp:54
void onSuccessfulSave()
Definition remoteplayer.cpp:99
void setSky(const SkyboxParams &skybox_params)
Definition remoteplayer.h:73
const std::string & getHotbarSelectedImage() const
Definition remoteplayer.h:68
void setMoon(const MoonParams &moon_params)
Definition remoteplayer.h:84
void overrideDayNightRatio(bool do_override, float ratio)
Definition remoteplayer.h:47
u16 protocol_version
Definition remoteplayer.h:123
std::string hud_hotbar_selected_image
Definition remoteplayer.h:151
MoonParams m_moon_params
Definition remoteplayer.h:157
#define PEER_ID_INEXISTENT
Definition constants.h:19
core::vector2d< f32 > v2f
Definition irr_v2d.h:11
u16 session_t
Definition networkprotocol.h:27
RemotePlayerChatResult
Definition remoteplayer.h:18
@ RPLAYER_CHATRESULT_OK
Definition remoteplayer.h:19
@ RPLAYER_CHATRESULT_KICK
Definition remoteplayer.h:21
@ RPLAYER_CHATRESULT_FLOODING
Definition remoteplayer.h:20
Definition skyparams.h:72
Describes ambient light settings for a player.
Definition lighting.h:46
Definition skyparams.h:54
Definition skyparams.h:25
Definition skyparams.h:62
Definition skyparams.h:44
constexpr v3f x
Definition test_irr_matrix4.cpp:18