Func rotating

From Valve Developer Community
Jump to navigation Jump to search

Template:Base brush

Entity description

It is used to create rotating brushes. Compare with func_door_rotating.

Note.pngNote:This entity behaves strangely in most games. If you parent an entity to a func_rotating sometimes it will not work.

Friction Explanation & Formula

Fan friction may be a little tricky to understand. Below is an explanation of how it works.

If hammer has the fanfriction key set to 0 and the game spawns the entity, code sets it to 1 so it doesn't divide by zero.

Friction = fanfriction key / 100


Key Hammer Value Code Value
fanfriction 100 1
fanfriction 50 0.5
fanfriction 0/1 0.01

Note: These formulas get called every 0.1 seconds.

Purpose: Think function: Accelerates a func_rotating to a higher angular velocity. new_speed = fabs( current_speed ) + 0.2 * maxspeed * fanfriction;

Purpose: Decelerates the rotator from a higher speed to a lower one. new_speed = fabs( current_speed ) - 0.1 * maxspeed * fanfriction;


Conclusion:

  • A higher 'fanfriction' value will accelerate/deaccelerate faster.
  • A lower 'fanfriction' value will accelerate/deaccelerate slower.

Keyvalues

Max Rotation Speed ([todo internal name (i)]) <integer>
Friction (0 - 100%) ([todo internal name (i)]) <integer>
The amount of rotational friction. Value must be between 0 and 100 %. The lower the friction is, the slower it spins up and spins down. This is the opposite of how it would work in real life.
Rotating sound WAV ([todo internal name (i)]) <sound>
Sound to play while rotating.
Volume (10 = loudest) ([todo internal name (i)]) <integer>
The volume of the rotation sound.
Minimum Light Level ([todo internal name (i)]) <string>
The minimum level of ambient light that hits this brush.
Blocking Damage ([todo internal name (i)]) <integer>
Damage done to any entity that blocks the rotation, per frame.
Solid Type ([todo internal name (i)]) <choices>
Brush solidity type
  • 0 : VPhysics
  • 1 : BSP
Name (targetname) <string>[ Edit ]
The name that other entities refer to this entity by, via Inputs/Outputs or other keyvalues (e.g. parentname or target).
Also displayed in Hammer's 2D views and Entity Report.
See also:  Generic Keyvalues, Inputs and Outputs available to all entities

Parentname:
Parent (parentname) <targetname>
Specifies a movement parent. An entity will maintain its initial offset from its parent. An attachment point can be added to the end of the name, separated by a comma.

Origin:

Origin (X Y Z) (origin) <origin>
The position of this entity's center in the world. Rotating entities typically rotate around their origin.
Pitch Yaw Roll (Y Z X) (angles) <QAngle>
This entity's orientation in the world. Pitch is rotation around the Y axis, yaw is the rotation around the Z axis, roll is the rotation around the X axis.

RenderFields:


Render Mode (rendermode) <byte choices>
Set a non-standard rendering mode on this entity.
Render Modes
  • 0: Normal
  • 1: Color
  • 2: Texture
  • 3: Glow
  • 4: Solid/Alphatest Obsolete
  • 5: Additive
  • 6: Removed, does nothing Obsolete
  • 7: Additive Fractional Frame
  • 8: Alpha Add
  • 9: World Space Glow
  • 10: Don't Render
Render FX (renderfx) <byte choices>
Various somewhat legacy alpha effects. See render effects.
Render Amount / Transparency (renderamt) <byte>
Transparency amount, requires a Render Mode other than Normal. 0 is invisible, 255 is fully visible.
Render Color (R G B) (rendercolor) <color255>
Color tint.

Shadow:

Disable Shadows (disableshadows) <boolean>
Prevents the entity from creating cheap render-to-texture shadows, or lightmap shadows if the entity is a prop_static. Does not affect shadow mapping.
Disable Receiving Shadows (disablereceiveshadows) <boolean>
Prevent the entity from receiving dynamic shadows on itself.
Shadow Cast Distance (shadowcastdist) <integer> !FGD
Sets how far the entity casts dynamic shadows. 0 means default distance from the shadow_control entity.
Disable Shadow Depth (disableshadowdepth) <boolean> (in all games since Portal 2)
Used to disable rendering into shadow depth (for projected textures) for this entity.
Disable flashlight (disableflashlight) <boolean> (in all games since Portal 2)
Used to disable projected texture lighting and shadows on this entity.
Projected Texture Cache (shadowdepthnocache) <integer choices> (in all games since Portal 2)
Used to hint projected texture system whether it is sufficient to cache shadow volume of this entity or to force render it every frame instead.
Choices
  • 0 : Default
  • 1 : No cache - render every frame
  • 2 : Cache it - render only once
Render in Fast Reflections (drawinfastreflection) <boolean> (in all games since Portal 2)
If enabled, this entity will render in fast water reflections (i.e. when a water material specifies $reflectonlymarkedentities) and in the world impostor pass.

Flags

  • 1 : Start ON
  • 2 : Reverse Direction
  • 4 : X Axis
  • 8 : Y Axis
  • 16 : Acc/Dcc - If enabled, the entity will accelerate and decelerate from maximum speed based on the Friction property.
  • 32 : Fan Pain - With this enabled, the player will be hurt when coming into contact with the brush.
  • 64 : Not Solid
  • 128 : Small Sound Radius
  • 256 : Medium Sound Radius
  • 512 : Large Sound Radius
  • 1024 : Client-side Animation Template:L4D add

Inputs

SetSpeed <integerRedirectInput/integer>
Set the speed as a ratio of the specified Max Rotation Speed, where 0 is stopped and 1 is the Max Rotation Speed. Negative values rotate backwards.
Start
Start the rotator rotating.
Stop
Stop the rotator from rotating.
StopAtStartPos
Stop the rotator from rotating when it gets around to the start position again (on its rotation axis).
StartForward
Start the rotator rotating forward at maximum speed.
StartBackward
Start the rotator rotating backward at maximum speed.
Toggle
Toggle the rotator between rotating and not rotating.
Reverse
Reverse the direction of rotation of the rotator, preserving the current speed.
SnapToStartPos  (in all games since Left 4 Dead 2)
Snap to the initial position and stop moving.
GetSpeed  (in all games since Portal 2)
Causes the func_rotating to fire its OnGetSpeed output with its current speed.


Parentname:
SetParent <stringRedirectInput/string>
Move with this entity. See Entity Hierarchy (parenting).
SetParentAttachment <stringRedirectInput/string>
Change this entity to attach to a specific attachment point on its parent. The entity will teleport so that the position of its root bone matches that of the attachment. Entities must be parented before being sent this input.
SetParentAttachmentMaintainOffset <stringRedirectInput/string>
As above, but without teleporting. The entity retains its position relative to the attachment at the time of the input being received.
ClearParent
Removes this entity from the the movement hierarchy, leaving it free to move independently.

RenderFields:

Alpha <integer 0–255>
Sets the entity's transparency to a number from 0 (invisible) to 255 (fully visible). Requires the entity to have its rendermode set to a number other than 0.
Color <color255RedirectInput/color32>
Sets an RGB color for the entity.

Shadow:

DisableShadow
Turn dynamic shadows off for this entity. Identical to applying  EF_NOSHADOW.
EnableShadow
Turn dynamic shadows on for this entity.
DisableReceivingFlashlight  (in all games since Portal 2)
This object will not receive light or shadows from projected textures.
EnableReceivingFlashlight  (in all games since Portal 2)
This object may receive light or shadows from projected textures.

Reflection:

DisableDrawInFastReflection  (in all games since Portal 2)
Turns off rendering of this entity in reflections when using $reflectonlymarkedentities in water material.
EnableDrawInFastReflection  (in all games since Portal 2)
Turn on rendering of this entity in reflections when using $reflectonlymarkedentities in water material.

Outputs

OnGetSpeed <integerRedirectInput/integer> (in all games since Portal 2)
Fired when the GetSpeed input is called. The current speed of the func_rotating is passed with this output.