summaryrefslogtreecommitdiff
path: root/src/content_sao.cpp
diff options
context:
space:
mode:
authorsapier <sapier@users.noreply.github.com>2017-09-01 11:15:12 +0200
committerLoïc Blot <nerzhul@users.noreply.github.com>2017-09-01 11:15:12 +0200
commitbf403b923ab4a1e11447b3f81d54d5d0c1124f65 (patch)
tree8c8f73e07051d8de8d5eb5c488bfdbc4377de3b3 /src/content_sao.cpp
parentb8f06ad37e142004335e8c2ffaec5fe73b620196 (diff)
downloadminetest-bf403b923ab4a1e11447b3f81d54d5d0c1124f65.tar.gz
minetest-bf403b923ab4a1e11447b3f81d54d5d0c1124f65.tar.bz2
minetest-bf403b923ab4a1e11447b3f81d54d5d0c1124f65.zip
Fix animation frame_speed and blend loosing precision due to incorrec… (#6357)
* Fix animation frame_speed and blend loosing precision due to incorrect data type Add lua function set_animation_frame_speed to update the frame speed without resetting the animation to start
Diffstat (limited to 'src/content_sao.cpp')
-rw-r--r--src/content_sao.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/content_sao.cpp b/src/content_sao.cpp
index c264473af..ece921472 100644
--- a/src/content_sao.cpp
+++ b/src/content_sao.cpp
@@ -155,6 +155,12 @@ void UnitSAO::getAnimation(v2f *frame_range, float *frame_speed, float *frame_bl
*frame_loop = m_animation_loop;
}
+void UnitSAO::setAnimationSpeed(float frame_speed)
+{
+ m_animation_speed = frame_speed;
+ m_animation_speed_sent = false;
+}
+
void UnitSAO::setBonePosition(const std::string &bone, v3f position, v3f rotation)
{
// store these so they can be updated to clients
@@ -440,6 +446,14 @@ void LuaEntitySAO::step(float dtime, bool send_recommended)
m_messages_out.push(aom);
}
+ if (!m_animation_speed_sent) {
+ m_animation_speed_sent = true;
+ std::string str = gob_cmd_update_animation_speed(m_animation_speed);
+ // create message and add to list
+ ActiveObjectMessage aom(getId(), true, str);
+ m_messages_out.push(aom);
+ }
+
if (!m_bone_position_sent) {
m_bone_position_sent = true;
for (std::unordered_map<std::string, core::vector2d<v3f>>::const_iterator