mirror of
				https://github.com/luanti-org/luanti.git
				synced 2025-11-04 09:15:29 +01:00 
			
		
		
		
	Fix animations not being restartable (#15016)
This commit is contained in:
		@@ -1518,9 +1518,8 @@ void GenericCAO::updateAnimation()
 | 
			
		||||
	if (!m_animated_meshnode)
 | 
			
		||||
		return;
 | 
			
		||||
 | 
			
		||||
	if (m_animated_meshnode->getStartFrame() != m_animation_range.X ||
 | 
			
		||||
		m_animated_meshnode->getEndFrame() != m_animation_range.Y)
 | 
			
		||||
			m_animated_meshnode->setFrameLoop(m_animation_range.X, m_animation_range.Y);
 | 
			
		||||
	// Note: This sets the current frame as well, (re)starting the animation.
 | 
			
		||||
	m_animated_meshnode->setFrameLoop(m_animation_range.X, m_animation_range.Y);
 | 
			
		||||
	if (m_animated_meshnode->getAnimationSpeed() != m_animation_speed)
 | 
			
		||||
		m_animated_meshnode->setAnimationSpeed(m_animation_speed);
 | 
			
		||||
	m_animated_meshnode->setTransitionTime(m_animation_blend);
 | 
			
		||||
 
 | 
			
		||||
@@ -55,10 +55,7 @@ const ItemGroupList &UnitSAO::getArmorGroups() const
 | 
			
		||||
void UnitSAO::setAnimation(
 | 
			
		||||
		v2f frame_range, float frame_speed, float frame_blend, bool frame_loop)
 | 
			
		||||
{
 | 
			
		||||
	if (std::tie(m_animation_range, m_animation_speed, m_animation_blend,
 | 
			
		||||
			m_animation_loop) ==
 | 
			
		||||
			std::tie(frame_range, frame_speed, frame_blend, frame_loop))
 | 
			
		||||
		return; // no change
 | 
			
		||||
	// Note: Always resend (even if parameters are unchanged) to restart animations.
 | 
			
		||||
	m_animation_range = frame_range;
 | 
			
		||||
	m_animation_speed = frame_speed;
 | 
			
		||||
	m_animation_blend = frame_blend;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user