Botcraft 1.21.4
Loading...
Searching...
No Matches
PigEntity.cpp
Go to the documentation of this file.
2
3#include <mutex>
4
5namespace Botcraft
6{
7 const std::array<std::string, PigEntity::metadata_count> PigEntity::metadata_names{ {
8 "data_saddle_id",
9 "data_boost_time",
10 } };
11
13 {
14 // Initialize all metadata with default values
15 SetDataSaddleId(false);
17
18 // Initialize all attributes with default values
21 }
22
24 {
25
26 }
27
28
29 std::string PigEntity::GetName() const
30 {
31 return "pig";
32 }
33
35 {
36 return EntityType::Pig;
37 }
38
39
41 {
42 return "pig";
43 }
44
49
50
52 {
54
55 output["metadata"]["data_saddle_id"] = GetDataSaddleId();
56 output["metadata"]["data_boost_time"] = GetDataBoostTime();
57
58 return output;
59 }
60
61
62 void PigEntity::SetMetadataValue(const int index, const std::any& value)
63 {
64 if (index < hierarchy_metadata_count)
65 {
67 }
69 {
70 std::scoped_lock<std::shared_mutex> lock(entity_mutex);
72 }
73 }
74
76 {
77 std::shared_lock<std::shared_mutex> lock(entity_mutex);
78 return std::any_cast<bool>(metadata.at("data_saddle_id"));
79 }
80
82 {
83 std::shared_lock<std::shared_mutex> lock(entity_mutex);
84 return std::any_cast<int>(metadata.at("data_boost_time"));
85 }
86
87
88 void PigEntity::SetDataSaddleId(const bool data_saddle_id)
89 {
90 std::scoped_lock<std::shared_mutex> lock(entity_mutex);
91 metadata["data_saddle_id"] = data_saddle_id;
92 }
93
94 void PigEntity::SetDataBoostTime(const int data_boost_time)
95 {
96 std::scoped_lock<std::shared_mutex> lock(entity_mutex);
97 metadata["data_boost_time"] = data_boost_time;
98 }
99
100
102 {
103 return 0.9;
104 }
105
107 {
108 return 0.9;
109 }
110
111}
virtual void SetMetadataValue(const int index, const std::any &value) override
virtual ProtocolCraft::Json::Value Serialize() const override
std::shared_mutex entity_mutex
Definition Entity.hpp:253
std::map< std::string, std::any > metadata
Definition Entity.hpp:268
std::map< EntityAttribute::Type, EntityAttribute > attributes
virtual double GetWidthImpl() const override
void SetDataBoostTime(const int data_boost_time)
Definition PigEntity.cpp:94
static std::string GetClassName()
Definition PigEntity.cpp:40
virtual double GetHeightImpl() const override
virtual void SetMetadataValue(const int index, const std::any &value) override
Definition PigEntity.cpp:62
static constexpr int metadata_count
Definition PigEntity.hpp:10
virtual EntityType GetType() const override
Definition PigEntity.cpp:34
virtual ProtocolCraft::Json::Value Serialize() const override
Definition PigEntity.cpp:51
virtual std::string GetName() const override
Definition PigEntity.cpp:29
static constexpr int hierarchy_metadata_count
Definition PigEntity.hpp:12
bool GetDataSaddleId() const
Definition PigEntity.cpp:75
static EntityType GetClassType()
Definition PigEntity.cpp:45
void SetDataSaddleId(const bool data_saddle_id)
Definition PigEntity.cpp:88
static const std::array< std::string, metadata_count > metadata_names
Definition PigEntity.hpp:11
int GetDataBoostTime() const
Definition PigEntity.cpp:81
Main class, basically a JsonVariant with extra utility functions it doesn't inherit JsonVariant direc...
Definition Json.hpp:45