Orbdale Terrain · OrbdaleTerrain module · class
UOrbdaleTerrainFollowSubsystem
Keeps placed foliage and actors on the ground.
Declaration
UCLASS()
class UOrbdaleTerrainFollowSubsystem : public UTickableWorldSubsystem- Header
#include "OrbdaleTerrainFollowSubsystem.h"- Module
PublicDependencyModuleNames.Add("OrbdaleTerrain");in your module’s Build.cs.- Stability
- Stable: changes within a major version only add.
- Thread
- Game thread.
- Derives from
UTickableWorldSubsystem- Blueprint
- “Orbdale Terrain Follow Subsystem”, a Blueprint type
Description
Tracks every AInstancedFoliageActor's components (the rules come from the foliage type and the UOrbdaleTerrainFollowSettings overrides), any instanced mesh tagged OrbdaleTerrain.Follow, and every UOrbdaleTerrainGroundFollowComponent. Each followed instance keeps a 12-byte record; an edit reaches only the records of the edit tiles it touched, found through the ground change journal with this subsystem's own cursor.
The rule is in Native/GroundFollow.h. Work is spread over frames: registrations and edits share r.OrbdaleTerrain.Follow.ApplyBudgetMs (0.5 ms) a frame, oldest first. With nothing changed a tick costs one atomic load. Game worlds only; on a server and on clients alike (every machine computes the same result from the same ground).
Game thread. Writes only the instance and actor transforms; heights are read through the query snapshot.
Functions
- UOrbdaleTerrainFollowSubsystem (2 overloads)
- DoesSupportWorldType
- Initialize
- Deinitialize
- Tick
Registers new components, pulls the journal, and spends the frame's budget.
- GetStatId
- IsTickable
- IsTickableWhenPaused
- TrackComponent
Follow one instanced component.
- TrackInstancedComponentBlueprint
Follow one instanced component with explicit rules; Blueprint form of TrackComponent.
- RegisterForFollowBlueprint
Follow a component, or tell the subsystem its instances changed in a way it cannot see.
- RefreshFollowBlueprint
Drop the records of instances that are gone and register those that are new, on a component already tracked.
- UntrackComponentBlueprint
Stop following a component; instances stay where they are, hidden ones are restored first.
- ScanLevel
Track every foliage actor and tagged component of a level (done when the level is added to the world).
- ScanActor
Track the foliage components and tagged components of one actor.
- RulesForFoliagestatic
The rules a foliage type follows the ground with: Mode, the type's slope limit (GroundSlopeAngle.Max) and alignment (AlignToNormal, AlignMaxAngle), and the project's clear margin.
- RulesForActorstatic
The rules an actor's ground-follow component follows with: its slope limit and alignment, and the clear margin.
- GetStatsBlueprint
What is tracked and queued.
- IsSettledBlueprint
Whether nothing is waiting: every registration and every journal entry seen has been applied.
- GetLastTickMs
The milliseconds the follow work of the last Tick took (for tests and captures).
Properties
| Name | Type | Default | Meaning |
|---|---|---|---|
On | FOn | — | A hidden or restored instance changed id. Game thread. |
Blueprint
- Get StatsOrbdale › Terrain › Follow
- Is SettledOrbdale › Terrain › Follow
- Refresh FollowOrbdale › Terrain › Follow
- Register for FollowOrbdale › Terrain › Follow
- Track Instanced ComponentOrbdale › Terrain › Follow
- Untrack ComponentOrbdale › Terrain › Follow