Botcraft 1.21.4
Loading...
Searching...
No Matches
AbstractChestedHorseEntity.cpp
Go to the documentation of this file.
2
3#include <mutex>
4
5namespace Botcraft
6{
7 const std::array<std::string, AbstractChestedHorseEntity::metadata_count> AbstractChestedHorseEntity::metadata_names{ {
8 "data_id_chest",
9 } };
10
12 {
13 // Initialize all metadata with default values
14 SetDataIdChest(false);
15
16 // Initialize all attributes with default values
18#if PROTOCOL_VERSION < 766 /* < 1.20.5 */
19 attributes.insert({ EntityAttribute::Type::HorseJumpStrength, EntityAttribute(EntityAttribute::Type::HorseJumpStrength, 0.5) });
20#else
22#endif
23 }
24
29
31 {
32 return true;
33 }
34
35
37 {
39
40 output["metadata"]["data_id_chest"] = GetDataIdChest();
41
42 return output;
43 }
44
45
46 void AbstractChestedHorseEntity::SetMetadataValue(const int index, const std::any& value)
47 {
48 if (index < hierarchy_metadata_count)
49 {
51 }
53 {
54 std::scoped_lock<std::shared_mutex> lock(entity_mutex);
56 }
57 }
58
60 {
61 std::shared_lock<std::shared_mutex> lock(entity_mutex);
62 return std::any_cast<bool>(metadata.at("data_id_chest"));
63 }
64
65
66 void AbstractChestedHorseEntity::SetDataIdChest(const bool data_id_chest)
67 {
68 std::scoped_lock<std::shared_mutex> lock(entity_mutex);
69 metadata["data_id_chest"] = data_id_chest;
70 }
71
72}
static const std::array< std::string, metadata_count > metadata_names
virtual ProtocolCraft::Json::Value Serialize() const override
virtual bool IsAbstractChestedHorse() const override
virtual void SetMetadataValue(const int index, const std::any &value) override
virtual ProtocolCraft::Json::Value Serialize() const override
virtual void SetMetadataValue(const int index, const std::any &value) 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
Main class, basically a JsonVariant with extra utility functions it doesn't inherit JsonVariant direc...
Definition Json.hpp:45