Data/Actors/Site Operation (Rotator)

* Could in theory be applied to rotating models to counteract their rotation without completely freezing their animation

## Example Usage

The core game has no instance where this actor type is used, rotating parts are mostly part of the model or Turrets

### Orbiting Motion

To make something orbit around a fixed axis, add the SOpRotator to its Hosting - Host Site Operations - Operations field, followed(=lower in the list) by a SOpLocalOffset. Only the component of the offset vector which is perpendicular to the axis of rotation contributes to the orbiting radius, the parallel component produces a constant offset along the axis.

## Fields Description

### Actor - Aliases

* Aliases that refer to the actor in Events or in Hosting as a subject

### Actor - Filter

* Determines what players can see the actor depending on their diplomatic status eg. Nuke Target/Indicator
* Pointless as this actor has no visuals

### Actor - Flags

* **Add To External Finder:** (Unknown)
* **Not Saved:** (Unknown) used by all temporary Model actors
* **Scale To Host:** overrides any scaling the actor has and sets it to the host Unit actor
* **Suppress Creation Errors:** (Unknown)

### Actor - Fog Visibility

* Determines how the actor appears under the fog of war
* Limited by the setting of the **UI: Fog Visibility** field under the Units data type
* Pointless as this actor has no visuals

### Actor - Hold Position

* If enabled the actor with this SOp is locked in the position relative to the global map grid but turns to face the desired direction
* Useful for stationary abilities or structures that have parts which need to face a moving target

### Actor - Hold Rotation

* If enabled the actor with this SOp is locked with it's rotation facing the direction of creation relative to the global map grid

### Actor - Local Axis

* The directional vector that determines the axis of rotation
* This vector is automatically normalised, it is not the "angular velocity vector" sometimes used in physics
* To reverse the direction of rotation multiply all 3 components with -1

### Actor - Rate

* The angular velocity=rate of rotation in degrees per game second
* Only accepts positive values, to reverse the direction of rotation invert the Local Axis vector instead
* Accepts ridiculously high values (at least 100000) but even at 720 the rotation starts looking choppy

### Actor - Sharing

* Determines to what degree the same actor is shared by a unit if there are multiple functions refering to it
* **Always:** means the actor is always shared
* **None:** means the actor is never shared
* **Per Effect Tree:** means that effects within an effect tree share the actor but different effect trees can't

### Actor - Type

* How this actor interacts with other rotation commands (exact interaction not tested)
* **Accumulate And Set Rotation:** should override other commands, the Rotator stores its current angle position internally and forces it upon the host with each update tick
* **Add Rotation Change:** should generate an angle shift each tick and add it to the other rotation properties
* Does not override the rotation of a **Unit** entity, its actor, or any **Model Attachments** set to inherit rotation from the Unit actor

### Event - Events+

* Series of minitriggers that determine the motions and visual effects of the model
* Covered in detail in the Events section of the wiki
* Apparently have no effect on SOps

### Event - Macros

The Event Macro actors used to supplement the events

### Hosting - Host Supporter - Actor

* **Actor Find:** (Not Sure) means the actor has to be found using the scope
* **Creation:** (Not Sure) is the actor that creates this actor is given priority for hosting if there is a choice of several
* **Implicit:** is the default

### Hosting - Host Supporter - Effect

* The effect whose scope is used in combination with the Hosting - Host Supporter - Scope field to determine valid subjects

### Hosting - Host Supporter - Fail If No Host

* Causes the model to be automatically destroyed if no host

### Hosting - Host Supporter - Scope

* **Implicit:** is the default but gives an error message if using the scope of an effect
* **Scope Caster:** Uses the scope of the caster of the effect to choose the caster unit as the subject
* **Scope Effect:** (Unknown)
* **Scope Missile:** (Unknown)
* **Scope Outer:** (Unknown)
* **Scope Source:** Uses the scope of the source of the effect to choose the source unit as the subject
* **Scope Target:** Uses the scope of the target of the effect to choose the target unit as the subject

### Hosting - Host Supporter - Subject

* Actor, alias or reference refered to by the **::Supporter** system reference for Events

### Properties - Accepted Property Transfers

* When this actor is in the Hosting - Host - Subject field of another actor, this field determines what properties are able to be inherited from this actor
* As this actor has no visuals this field is pointless
* **Cast Shadows:** allows the attached actor to cast shadows
* **Cloak Effect:** allows the attached actor to show the cloaking bluish effect
* **Decal:** allows the attached actor to show the host unit decal
* **Local Tint Color:** (Unknown)
* **Model Scale:** makes the actor inherit the scale for the host model
* **Opacity:** spreads the opacity set by the Set Opacity event to attached actors
* **Physics State:** (Unknown)
* **Scale:** transfers the scale of the host actor to the attached actors
* **Team Color:** makes the attached actor show the team colour if it can
* **Time Scale:** means the animations of the attached actor are the same as the host actors timescale
* **Tint Color:** (Unknown)
* **Visibility:** allows the attached actor to share the host actor's Actor - Fog Visibility
* **Warp Group:** (Unknown)

### Properties - Accepted Transfers

* As this actor has no visuals this field is pointless
* **Animation Properties:** (Unknown)
* **Animator:** (Unknown)
* **Fog Of War Color:** (Unknown)
* **Fog Of War Shader:** (Unknown)
* **Model:** (Unknown)
* **Position:** (Unknown)
* **Rotation:** (Unknown)
* **Status:** (Unknown)
* **Textures:** (Unknown)

### Properties - Inherit Type

* As this actor has no visuals this field is pointless
* Determines how often the host properties are inherited
* **Continuous:** means the properties are continuously inherited from the host
* **None:** means properties are not inherited from the host
* **Once:** means properties are only inherited on actor creation

### Properties - Inherited Properties

* This field determines what properties are able to be inherited from the actor in the Hosting - Host - Subject or Hosting - Host For Properties - Subject field
* **Cast Shadows:** allows the attached actor to cast shadows
* **Cloak Effect:** allows the attached actor to show the cloaking bluish effect
* **Decal:** allows the attached actor to show the host unit decal
* **Local Tint Color:** (Unknown)
* **Model Scale:** makes the actor inherit the scale for the host model
* **Opacity:** spreads the opacity set by the Set Opacity event to attached actors
* **Physics State:** (Unknown)
* **Scale:** transfers the scale of the host actor to the attached actors
* **Team Color:** makes the attached actor show the team colour if it can
* **Time Scale:** means the animations of the attached actor are the same as the host actors timescale
* **Tint Color:** (Unknown)
* **Visibility:** allows the attached actor to share the host actor's Actor - Fog Visibility
* **Warp Group:** (Unknown)
* As this actor has no visuals this field is pointless

## Related

* Actors
* Model (actor)