Skip to content
Brass Orrery

Orrery Terrain · OrreryTerrain module · class

UOrreryTerrainSplineFeatureComponent

Experimental

A terrain feature that follows a spline: a corridor along an open spline or a plate inside a closed one, owned by this component and replaced in place (same id, same stack position) by each Rebuild.

Declaration

UCLASS(ClassGroup=(Orrery), meta=(BlueprintSpawnableComponent, DisplayName="Terrain Spline Feature"))
class UOrreryTerrainSplineFeatureComponent : public UActorComponent
Header
#include "OrreryTerrainSplineFeatureComponent.h"
Module
PublicDependencyModuleNames.Add("OrreryTerrain"); in your module’s Build.cs.
Stability
Experimental: supported, may change in a minor version, with a changelog line.
Thread
Game thread.
Derives from
UActorComponent
Blueprint
“Terrain Spline Feature”, a Blueprint type

Description

  • Owner: the terrain editor's domain ('TSED') with OwnerKey, a random key with bit 63 set made when the component first registers in a world. The editor session, the authoring capture, the bake and the multiplayer checks treat it as any editor feature.

  • Link: by FeatureId with the owner checked, else by OwnerKey. Loading, streaming in and linking never commit: the terrain's save is the truth, and the spline only matters when Rebuild is called.

  • Runtime: nothing rebuilds or removes on its own. Call Rebuild (or the async node) when the game's edit ends; IsStale says when one is due. EndPlay leaves the ground alone.

  • Multiplayer: FeatureId replicates. A client never commits, never makes keys and never decides copies; its async Rebuild asks the server to replace the feature, and the server's edit policy judges it.

Experimental in v1.0: the editor side leans on an experimental engine notification.

Note.

Game thread. Tier 3: no ground data lives here.

Functions

Properties

NameTypeDefaultMeaning
kSplineOwnerBituint64uint64(1) << 63

Bit 63 of every OwnerKey: a spline feature's owner id never equals the terrain editor tools' own id (1).

SplineBlueprintReadWriteFComponentReference—

The spline the feature follows.

Empty: the first spline component on this actor.

KindBlueprintReadWriteEOrreryTerrainSplineFeatureKindEOrreryTerrainSplineFeatureKind::Corridor

Corridor (an open spline) or Plate (a closed spline).

The other kind is refused.

CorridorBlueprintReadWriteFOrreryTerrainCorridorBP—

The corridor's parameters.

Points and the owner fields are ignored: the spline gives the points, the component the owner.

PlateBlueprintReadWriteFOrreryTerrainPlateBP—

The plate's parameters.

Polygon is ignored: the closed spline gives the outline.

OutlineSpacingBlueprintReadWritedouble100.0

Distance between the plate outline's vertices along the spline, cm; widened so the outline keeps to 2048 vertices.

FeatureIdint640

The feature this component built, 0 before.

Saved and replicated; never edited by hand.

OwnerKeyint640

The owner id of the feature: random, bit 63 set, made at the first registration in a world.

0 on a template.

BuiltKeyint640

The key of the shape the ground holds: the spline's key (sampled points at 1 mm, parameters) at the last commit, or, after another author replaced the feature with a shape this spline does not build, the stored feature's content key.

0 before.

BuiltSourceTSoftObjectPtr<UOrreryTerrainSourceAsset>—

The terrain's source at the last commit: a feature gone on another source was baked in.

Blueprint