Botcraft 1.21.5
Loading...
Searching...
No Matches
BatEntity.cpp
Go to the documentation of this file.
2
3#include <mutex>
4
5namespace Botcraft
6{
7 const std::array<std::string, BatEntity::metadata_count> BatEntity::metadata_names{ {
8 "data_id_flags",
9 } };
10
12 {
13 // Initialize all metadata with default values
15
16 // Initialize all attributes with default values
18 }
19
21 {
22
23 }
24
25
26 std::string BatEntity::GetName() const
27 {
28 return "bat";
29 }
30
32 {
33 return EntityType::Bat;
34 }
35
36
38 {
39 return "bat";
40 }
41
46
47
49 {
51
52 output["metadata"]["data_id_flags"] = GetDataIdFlags();
53
54 return output;
55 }
56
57
58 void BatEntity::SetMetadataValue(const int index, const std::any& value)
59 {
60 if (index < hierarchy_metadata_count)
61 {
63 }
65 {
66 std::scoped_lock<std::shared_mutex> lock(entity_mutex);
68 }
69 }
70
72 {
73 std::shared_lock<std::shared_mutex> lock(entity_mutex);
74 return std::any_cast<char>(metadata.at("data_id_flags"));
75 }
76
77
78 void BatEntity::SetDataIdFlags(const char data_id_flags)
79 {
80 std::scoped_lock<std::shared_mutex> lock(entity_mutex);
81 metadata["data_id_flags"] = data_id_flags;
82 }
83
84
86 {
87 return 0.5;
88 }
89
91 {
92 return 0.9;
93 }
94
95}
char GetDataIdFlags() const
Definition BatEntity.cpp:71
static constexpr int metadata_count
Definition BatEntity.hpp:10
virtual void SetMetadataValue(const int index, const std::any &value) override
Definition BatEntity.cpp:58
virtual std::string GetName() const override
Definition BatEntity.cpp:26
virtual EntityType GetType() const override
Definition BatEntity.cpp:31
static const std::array< std::string, metadata_count > metadata_names
Definition BatEntity.hpp:11
virtual ProtocolCraft::Json::Value Serialize() const override
Definition BatEntity.cpp:48
static std::string GetClassName()
Definition BatEntity.cpp:37
void SetDataIdFlags(const char data_id_flags)
Definition BatEntity.cpp:78
static constexpr int hierarchy_metadata_count
Definition BatEntity.hpp:12
static EntityType GetClassType()
Definition BatEntity.cpp:42
virtual double GetHeightImpl() const override
Definition BatEntity.cpp:90
virtual double GetWidthImpl() const override
Definition BatEntity.cpp:85
virtual ProtocolCraft::Json::Value Serialize() const
Definition Entity.cpp:1151
virtual void SetMetadataValue(const int index, const std::any &value)
Definition Entity.cpp:678
std::shared_mutex entity_mutex
Definition Entity.hpp:259
std::map< std::string, std::any > metadata
Definition Entity.hpp:274
std::map< EntityAttribute::Type, EntityAttribute > attributes
Main class, basically a JsonVariant with extra utility functions it doesn't inherit JsonVariant direc...
Definition Json.hpp:45