enderalse/scripts/source/_00e_rotatearoundownaxis.psc

51 lines
1.5 KiB
Plaintext

Scriptname _00E_RotateAroundOwnAxis extends ObjectReference
{Put this script onto any object to have it rotate around it's own axis}
Import Utility
;=====================================================================================
; STATES
;=====================================================================================
Event OnLoad()
RotationMarker = Self.PlaceAtMe(XMarkerHeading, 1)
Self.Activate(Self)
EndEvent
Event OnActivate(ObjectReference akActionRef)
If Self.Is3DLoaded() && (akActionRef == Self)
Wait(Delay)
RotationMarker.SetAngle((Self.GetAngleX() + 180), (Self.GetAngleY() + 180), (Self.GetAngleZ() + 180))
Self.TranslateToREF(RotationMarker, RotationSpeedBase,RotationSpeedBase)
EndIf
EndEvent
Event OnTranslationAlmostComplete()
Self.Activate(Self)
EndEvent
;=====================================================================================
; PROPERTIES
;=====================================================================================
ObjectReference RotationMarker
Float Property ActualSpeed Auto Hidden
Static Property XMarkerHeading Auto
Float Property MinimumDistance = 1000.0 Auto
{How far does the player need to be away for the object(s) to start rotating?}
Float Property RotationSpeedBase = 15.0 Auto
{The base speed the objects will rotate around with. Defaut: 25}
Float Property Delay = 0.0 Auto
{Set a delay when to start the rotation. Very handy if multiple objects levitate at once!}
Actor Property PlayerREF Auto