class Stillage extends InteractiveDevice { default m_controllerTypeName = 'StillageController'; private var m_collider : IPlacedComponent; protected event OnRequestComponents( ri : EntityRequestComponentsInterface ) { EntityRequestComponentsInterface.RequestComponent( ri, 'collider', 'entColliderComponent', false ); super.OnRequestComponents( ri ); } protected event OnTakeControl( ri : EntityResolveComponentsInterface ) { m_collider = ( ( IPlacedComponent )( EntityResolveComponentsInterface.GetComponent( ri, 'collider' ) ) ); super.OnTakeControl( ri ); m_controller = ( ( StillageController )( EntityResolveComponentsInterface.GetComponent( ri, 'controller' ) ) ); } protected event OnThrowStuff( evt : ThrowStuff ) { EnterWorkspot( evt.GetExecutor(), false, 'playerWorkspot', 'deviceWorkspot' ); } protected event OnWorkspotFinished( componentName : CName ) { super.OnWorkspotFinished( componentName ); m_collider.Toggle( false ); } protected event OnQuestResetDeviceToInitialState( evt : QuestResetDeviceToInitialState ) { var e3_animFeatureInjection : AnimFeature_DeviceWorkspot; e3_animFeatureInjection = new AnimFeature_DeviceWorkspot; e3_animFeatureInjection.e3_lockInReferencePose = true; ApplyAnimFeatureToReplicate( this, 'DeviceWorkspot', e3_animFeatureInjection ); m_collider.Toggle( true ); } }