Entity/ResetSequence

From Garry's Mod
(Difference between revisions)
Jump to: navigation, search
Line 13: Line 13:
 
|desc=Sequence ID to play. See {{ClassFunction|Entity|LookupSequence}}.
 
|desc=Sequence ID to play. See {{ClassFunction|Entity|LookupSequence}}.
  
If set to a string the function will automatically call {{ClassFunction|Entity|LookupSequence}} to retrieve the sequence ID as a number.
+
{{Note|If set to a string the function will automatically call {{ClassFunction|Entity|LookupSequence}} to retrieve the sequence ID as a number.}}
 
}}
 
}}
 
{{Example
 
{{Example

Revision as of 01:50, 21 June 2018

 Entity:ResetSequence( )

Contents

Description

Plays an animation on the entity. This may not always work on engine entities.

WARNING

This will not reset the animation on viewmodels, use Entity:SendViewModelMatchingSequence instead.

NOTE

Will not work on players due to the animations being reset every frame by the base gamemode animation system. See GM:CalcMainActivity.

Arguments

number sequence

Sequence ID to play. See Entity:LookupSequence.

NOTE

If set to a string the function will automatically call Entity:LookupSequence to retrieve the sequence ID as a number.

Examples

Example

Minimal code needed to make sequences work as expected on custom "anim" type entities.

In this example, when the player uses the crate, it will open, and when they use it again, it will close.

ENT.Base = "base_anim"
ENT.Spawnable = true
ENT.AutomaticFrameAdvance = true

ENT.PrintName = "Animation Test"
ENT.Category = "My Entity Category"

function ENT:Initialize()
	if ( SERVER ) then -- Only set this stuff on the server, it is networked to clients automatically
		self:SetModel( "models/items/ammocrate_ar2.mdl" ) -- Set the model
		self:PhysicsInit( SOLID_VPHYSICS ) -- Initialize physics
		self:SetUseType( SIMPLE_USE ) -- Make sure ENT:Use is ran only once per use ( per press of the use button on the entity, by default the E key )
	end
end

function ENT:Think()
	if ( SERVER ) then -- Only set this stuff on the server
		self:NextThink( CurTime() ) -- Set the next think for the serverside hook to be the next frame/tick
		return true -- Return true to let the game know we want to apply the self:NextThink() call
	end
end

if ( SERVER ) then -- This hook is only available on the server
	function ENT:Use( activator, caller ) -- If a player uses this entity, play an animation
		if ( !self.Opened ) then -- If we are not "opened"
			self:ResetSequence( "open" ) -- Play the open sequence
			self.Opened = true -- We are now opened
		else
			self:ResetSequence( "close" ) -- Play the close sequence
			self.Opened = false -- We are now closed
		end
	end
end


Personal tools
Navigation