pass clang-format
parent
2a7267febf
commit
c99e8df07f
|
@ -26,8 +26,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||
UnitSAO
|
||||
*/
|
||||
|
||||
UnitSAO::UnitSAO(ServerEnvironment *env, v3f pos):
|
||||
ServerActiveObject(env, pos)
|
||||
UnitSAO::UnitSAO(ServerEnvironment *env, v3f pos) : ServerActiveObject(env, pos)
|
||||
{
|
||||
// Initialize something to armor groups
|
||||
m_armor_groups["fleshy"] = 100;
|
||||
|
@ -54,7 +53,8 @@ const ItemGroupList &UnitSAO::getArmorGroups() const
|
|||
return m_armor_groups;
|
||||
}
|
||||
|
||||
void UnitSAO::setAnimation(v2f frame_range, float frame_speed, float frame_blend, bool frame_loop)
|
||||
void UnitSAO::setAnimation(
|
||||
v2f frame_range, float frame_speed, float frame_blend, bool frame_loop)
|
||||
{
|
||||
// store these so they can be updated to clients
|
||||
m_animation_range = frame_range;
|
||||
|
@ -64,7 +64,8 @@ void UnitSAO::setAnimation(v2f frame_range, float frame_speed, float frame_blend
|
|||
m_animation_sent = false;
|
||||
}
|
||||
|
||||
void UnitSAO::getAnimation(v2f *frame_range, float *frame_speed, float *frame_blend, bool *frame_loop)
|
||||
void UnitSAO::getAnimation(v2f *frame_range, float *frame_speed, float *frame_blend,
|
||||
bool *frame_loop)
|
||||
{
|
||||
*frame_range = m_animation_range;
|
||||
*frame_speed = m_animation_speed;
|
||||
|
@ -91,14 +92,15 @@ void UnitSAO::getBonePosition(const std::string &bone, v3f *position, v3f *rotat
|
|||
*rotation = m_bone_position[bone].Y;
|
||||
}
|
||||
|
||||
void UnitSAO::setAttachment(int parent_id, const std::string &bone, v3f position, v3f rotation)
|
||||
void UnitSAO::setAttachment(
|
||||
int parent_id, const std::string &bone, v3f position, v3f rotation)
|
||||
{
|
||||
// Attachments need to be handled on both the server and client.
|
||||
// If we just attach on the server, we can only copy the position of the parent. Attachments
|
||||
// are still sent to clients at an interval so players might see them lagging, plus we can't
|
||||
// read and attach to skeletal bones.
|
||||
// If we just attach on the client, the server still sees the child at its original location.
|
||||
// This breaks some things so we also give the server the most accurate representation
|
||||
// If we just attach on the server, we can only copy the position of the parent.
|
||||
// Attachments are still sent to clients at an interval so players might see them
|
||||
// lagging, plus we can't read and attach to skeletal bones. If we just attach on
|
||||
// the client, the server still sees the child at its original location. This
|
||||
// breaks some things so we also give the server the most accurate representation
|
||||
// even if players only see the client changes.
|
||||
|
||||
int old_parent = m_attachment_parent_id;
|
||||
|
@ -114,8 +116,8 @@ void UnitSAO::setAttachment(int parent_id, const std::string &bone, v3f position
|
|||
}
|
||||
}
|
||||
|
||||
void UnitSAO::getAttachment(int *parent_id, std::string *bone, v3f *position,
|
||||
v3f *rotation) const
|
||||
void UnitSAO::getAttachment(
|
||||
int *parent_id, std::string *bone, v3f *position, v3f *rotation) const
|
||||
{
|
||||
*parent_id = m_attachment_parent_id;
|
||||
*bone = m_attachment_bone;
|
||||
|
@ -194,7 +196,7 @@ void UnitSAO::onDetach(int parent_id)
|
|||
m_env->getScriptIface()->luaentity_on_detach_child(parent_id, this);
|
||||
}
|
||||
|
||||
ObjectProperties* UnitSAO::accessObjectProperties()
|
||||
ObjectProperties *UnitSAO::accessObjectProperties()
|
||||
{
|
||||
return &m_prop;
|
||||
}
|
||||
|
@ -217,8 +219,8 @@ std::string UnitSAO::generateUpdateAttachmentCommand() const
|
|||
return os.str();
|
||||
}
|
||||
|
||||
std::string UnitSAO::generateUpdateBonePositionCommand(const std::string &bone,
|
||||
const v3f &position, const v3f &rotation)
|
||||
std::string UnitSAO::generateUpdateBonePositionCommand(
|
||||
const std::string &bone, const v3f &position, const v3f &rotation)
|
||||
{
|
||||
std::ostringstream os(std::ios::binary);
|
||||
// command
|
||||
|
@ -230,7 +232,6 @@ std::string UnitSAO::generateUpdateBonePositionCommand(const std::string &bone,
|
|||
return os.str();
|
||||
}
|
||||
|
||||
|
||||
std::string UnitSAO::generateUpdateAnimationSpeedCommand() const
|
||||
{
|
||||
std::ostringstream os(std::ios::binary);
|
||||
|
@ -255,23 +256,21 @@ std::string UnitSAO::generateUpdateAnimationCommand() const
|
|||
return os.str();
|
||||
}
|
||||
|
||||
|
||||
std::string UnitSAO::generateUpdateArmorGroupsCommand() const
|
||||
{
|
||||
std::ostringstream os(std::ios::binary);
|
||||
writeU8(os, AO_CMD_UPDATE_ARMOR_GROUPS);
|
||||
writeU16(os, m_armor_groups.size());
|
||||
for (const auto &armor_group : m_armor_groups) {
|
||||
os<<serializeString(armor_group.first);
|
||||
os << serializeString(armor_group.first);
|
||||
writeS16(os, armor_group.second);
|
||||
}
|
||||
return os.str();
|
||||
}
|
||||
|
||||
|
||||
std::string UnitSAO::generateUpdatePositionCommand(const v3f &position, const v3f &velocity,
|
||||
const v3f &acceleration, const v3f &rotation, bool do_interpolate, bool is_movement_end,
|
||||
f32 update_interval)
|
||||
std::string UnitSAO::generateUpdatePositionCommand(const v3f &position,
|
||||
const v3f &velocity, const v3f &acceleration, const v3f &rotation,
|
||||
bool do_interpolate, bool is_movement_end, f32 update_interval)
|
||||
{
|
||||
std::ostringstream os(std::ios::binary);
|
||||
// command
|
||||
|
@ -293,7 +292,6 @@ std::string UnitSAO::generateUpdatePositionCommand(const v3f &position, const v3
|
|||
return os.str();
|
||||
}
|
||||
|
||||
|
||||
std::string UnitSAO::generateSetPropertiesCommand(const ObjectProperties &prop) const
|
||||
{
|
||||
std::ostringstream os(std::ios::binary);
|
||||
|
|
|
@ -23,7 +23,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||
#include "object_properties.h"
|
||||
#include "serveractiveobject.h"
|
||||
|
||||
class UnitSAO: public ServerActiveObject
|
||||
class UnitSAO : public ServerActiveObject
|
||||
{
|
||||
public:
|
||||
UnitSAO(ServerEnvironment *env, v3f pos);
|
||||
|
@ -40,20 +40,24 @@ public:
|
|||
// Use a function, if isDead can be defined by other conditions
|
||||
bool isDead() const { return m_hp == 0; }
|
||||
|
||||
inline bool isAttached() const
|
||||
{ return getParent(); }
|
||||
inline bool isAttached() const { return getParent(); }
|
||||
|
||||
inline bool isImmortal() const
|
||||
{ return itemgroup_get(getArmorGroups(), "immortal"); }
|
||||
{
|
||||
return itemgroup_get(getArmorGroups(), "immortal");
|
||||
}
|
||||
|
||||
void setArmorGroups(const ItemGroupList &armor_groups);
|
||||
const ItemGroupList &getArmorGroups() const;
|
||||
void setAnimation(v2f frame_range, float frame_speed, float frame_blend, bool frame_loop);
|
||||
void getAnimation(v2f *frame_range, float *frame_speed, float *frame_blend, bool *frame_loop);
|
||||
void setAnimation(v2f frame_range, float frame_speed, float frame_blend,
|
||||
bool frame_loop);
|
||||
void getAnimation(v2f *frame_range, float *frame_speed, float *frame_blend,
|
||||
bool *frame_loop);
|
||||
void setAnimationSpeed(float frame_speed);
|
||||
void setBonePosition(const std::string &bone, v3f position, v3f rotation);
|
||||
void getBonePosition(const std::string &bone, v3f *position, v3f *rotation);
|
||||
void setAttachment(int parent_id, const std::string &bone, v3f position, v3f rotation);
|
||||
void setAttachment(int parent_id, const std::string &bone, v3f position,
|
||||
v3f rotation);
|
||||
void getAttachment(int *parent_id, std::string *bone, v3f *position,
|
||||
v3f *rotation) const;
|
||||
void clearChildAttachments();
|
||||
|
@ -62,20 +66,20 @@ public:
|
|||
void removeAttachmentChild(int child_id);
|
||||
const std::unordered_set<int> &getAttachmentChildIds() const;
|
||||
ServerActiveObject *getParent() const;
|
||||
ObjectProperties* accessObjectProperties();
|
||||
ObjectProperties *accessObjectProperties();
|
||||
void notifyObjectPropertiesModified();
|
||||
|
||||
std::string generateUpdateAttachmentCommand() const;
|
||||
std::string generateUpdateAnimationSpeedCommand() const;
|
||||
std::string generateUpdateAnimationCommand() const;
|
||||
std::string generateUpdateArmorGroupsCommand() const;
|
||||
static std::string generateUpdatePositionCommand(const v3f &position, const v3f &velocity,
|
||||
const v3f &acceleration, const v3f &rotation, bool do_interpolate,
|
||||
bool is_movement_end, f32 update_interval);
|
||||
static std::string generateUpdatePositionCommand(const v3f &position,
|
||||
const v3f &velocity, const v3f &acceleration, const v3f &rotation,
|
||||
bool do_interpolate, bool is_movement_end, f32 update_interval);
|
||||
std::string generateSetPropertiesCommand(const ObjectProperties &prop) const;
|
||||
void sendPunchCommand();
|
||||
static std::string generateUpdateBonePositionCommand(const std::string &bone,
|
||||
const v3f &position, const v3f &rotation);
|
||||
const v3f &position, const v3f &rotation);
|
||||
|
||||
protected:
|
||||
u16 m_hp = 1;
|
||||
|
@ -105,6 +109,7 @@ protected:
|
|||
v3f m_attachment_position;
|
||||
v3f m_attachment_rotation;
|
||||
bool m_attachment_sent = false;
|
||||
|
||||
private:
|
||||
void onAttach(int parent_id);
|
||||
void onDetach(int parent_id);
|
||||
|
|
Loading…
Reference in New Issue