}
};
-typedef std::unordered_map<std::string, std::string> PlayerAttributes;
class RemotePlayer;
class PlayerSAO : public UnitSAO
int getWieldIndex() const;
void setWieldIndex(int i);
- /*
- Modding interface
- */
- inline void setExtendedAttribute(const std::string &attr, const std::string &value)
- {
- m_extra_attributes[attr] = value;
- m_extended_attributes_modified = true;
- }
-
- inline bool getExtendedAttribute(const std::string &attr, std::string *value)
- {
- if (m_extra_attributes.find(attr) == m_extra_attributes.end())
- return false;
-
- *value = m_extra_attributes[attr];
- return true;
- }
-
- inline void removeExtendedAttribute(const std::string &attr)
- {
- PlayerAttributes::iterator it = m_extra_attributes.find(attr);
- if (it == m_extra_attributes.end())
- return;
-
- m_extra_attributes.erase(it);
- m_extended_attributes_modified = true;
- }
-
- inline const PlayerAttributes &getExtendedAttributes()
- {
- return m_extra_attributes;
- }
-
- inline bool extendedAttributesModified() const
- {
- return m_extended_attributes_modified;
- }
-
- inline void setExtendedAttributeModified(bool v)
- {
- m_extended_attributes_modified = v;
- }
-
/*
PlayerSAO-specific
*/
v3f getEyePosition() const { return m_base_position + getEyeOffset(); }
v3f getEyeOffset() const;
+ inline Metadata &getMeta() { return m_meta; }
+
private:
std::string getPropertyPacket();
void unlinkPlayerSessionAndSave();
f32 m_fov = 0.0f;
s16 m_wanted_range = 0.0f;
- PlayerAttributes m_extra_attributes;
- bool m_extended_attributes_modified = false;
+ Metadata m_meta;
public:
float m_physics_override_speed = 1.0f;
float m_physics_override_jump = 1.0f;