Botcraft 1.21.4
Loading...
Searching...
No Matches
IronGolemEntity.cpp
Go to the documentation of this file.
2
3#include <mutex>
4
5namespace Botcraft
6{
7 const std::array<std::string, IronGolemEntity::metadata_count> IronGolemEntity::metadata_names{ {
8 "data_flags_id",
9 } };
10
25
30
31
32 std::string IronGolemEntity::GetName() const
33 {
34 return "iron_golem";
35 }
36
41
42
44 {
45 return "iron_golem";
46 }
47
52
53
55 {
57
58 output["metadata"]["data_flags_id"] = GetDataFlagsId();
59
60 output["attributes"]["attack_damage"] = GetAttributeAttackDamageValue();
61
62 return output;
63 }
64
65
66 void IronGolemEntity::SetMetadataValue(const int index, const std::any& value)
67 {
68 if (index < hierarchy_metadata_count)
69 {
71 }
73 {
74 std::scoped_lock<std::shared_mutex> lock(entity_mutex);
76 }
77 }
78
80 {
81 std::shared_lock<std::shared_mutex> lock(entity_mutex);
82 return std::any_cast<char>(metadata.at("data_flags_id"));
83 }
84
85
86 void IronGolemEntity::SetDataFlagsId(const char data_flags_id)
87 {
88 std::scoped_lock<std::shared_mutex> lock(entity_mutex);
89 metadata["data_flags_id"] = data_flags_id;
90 }
91
92
94 {
95 std::shared_lock<std::shared_mutex> lock(entity_mutex);
97 }
98
99
101 {
102 return 1.4;
103 }
104
106 {
107 return 2.7;
108 }
109
110}
virtual ProtocolCraft::Json::Value Serialize() const
Definition Entity.cpp:1095
virtual void SetMetadataValue(const int index, const std::any &value)
Definition Entity.cpp:622
std::shared_mutex entity_mutex
Definition Entity.hpp:253
std::map< std::string, std::any > metadata
Definition Entity.hpp:268
virtual ProtocolCraft::Json::Value Serialize() const override
virtual double GetHeightImpl() const override
virtual double GetWidthImpl() const override
static std::string GetClassName()
virtual void SetMetadataValue(const int index, const std::any &value) override
virtual EntityType GetType() const override
void SetDataFlagsId(const char data_flags_id)
static constexpr int hierarchy_metadata_count
static constexpr int metadata_count
static const std::array< std::string, metadata_count > metadata_names
static EntityType GetClassType()
virtual std::string GetName() const override
double GetAttributeAttackDamageValue() const
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