3 name:
"Snap and Orient Entities to Terrain",
4 shortcut:
"Ctrl+PageDown",
5 wbModules: {
"WorldEditor" },
7 awesomeFontCode: 0xF2D1)]
8class SCR_SnapAndOrientToTerrainPlugin : WorkbenchPlugin
13 WorldEditor worldEditor = Workbench.GetModule(WorldEditor);
21 BaseWorld world = worldEditorAPI.GetWorld();
25 worldEditorAPI.BeginEntityAction();
28 vector transform[4], parentTransform[4];
31 for (
int i, count = worldEditorAPI.GetSelectedEntitiesCount(); i < count; i++)
33 IEntitySource entitySource = worldEditorAPI.GetSelectedEntity(i);
34 IEntity entity = worldEditorAPI.SourceToEntity(entitySource);
38 parent = worldEditorAPI.SourceToEntity(worldEditorAPI.EntityToSource(entity).GetParent());
42 Math3D.MatrixInvMultiply4(parentTransform, transform, transform);
46 worldEditorAPI.SetVariableValue(entitySource, null,
"angles",
string.Format(
"%1 %2 %3",
angles[1],
angles[0],
angles[2]));
50 entitySource.Get(
"Flags",
flags);
54 worldEditorAPI.SetVariableValue(entitySource, null,
"coords",
string.Format(
"%1 %2 %3", pos[0], pos[1], pos[2]));
58 worldEditorAPI.EndEntityAction();
SCR_EAIThreatSectorFlags flags
ref array< string > angles
proto external void GetWorldTransform(out vector mat[])
See IEntity::GetTransform.
static bool SnapAndOrientToTerrain(out vector transform[4], BaseWorld world=null, bool noUnderwater=false, TraceParam trace=null)
EntityFlags
Various entity flags.