M&B: Bannerlord 1.1.0
The horns sound, the ravens gather.
Loading...
Searching...
No Matches
TaleWorlds.MountAndBlade.ColumnFormation Class Reference

Single file formation.

Inherits TaleWorlds.MountAndBlade.IFormationArrangement.

Public Member Functions

 ColumnFormation (IFormation ownerFormation, IFormationUnit vanguard=null, int columnCount=1)
 
IFormationArrangement Clone (IFormation formation)
 
void DeepCopyFrom (IFormationArrangement arrangement)
 
IFormationUnit GetPlayerUnit ()
 
MBList< IFormationUnitGetAllUnits ()
 
MBList< IFormationUnitGetUnpositionedUnits ()
 
bool AddUnit (IFormationUnit unit)
 Adding may fail if there is no vacant position and deepening the formation does not create any new vacant positions.
 
void RemoveUnit (IFormationUnit unit)
 
IFormationUnit GetUnit (int fileIndex, int rankIndex)
 Returns the unit at the specified file and rank index Returns null if the specified position is restrained, is not valid or if there is no agent assigned to this position.
 
void OnBatchRemoveStart ()
 Notifies the arrangement that remove operations will be done in batch for performance. Child arrangements should provide their own implementation.
 
void OnBatchRemoveEnd ()
 
Vec2GetLocalPositionOfUnitOrDefault (int unitIndex)
 
Vec2GetLocalDirectionOfUnitOrDefault (int unitIndex)
 
Engine.? WorldPosition GetWorldPositionOfUnitOrDefault (int unitIndex)
 
Vec2GetLocalPositionOfUnitOrDefault (IFormationUnit unit)
 
Vec2GetLocalPositionOfUnitOrDefaultWithAdjustment (IFormationUnit unit, float distanceBetweenAgentsAdjustment)
 
Engine.? WorldPosition GetWorldPositionOfUnitOrDefault (IFormationUnit unit)
 
Vec2GetLocalDirectionOfUnitOrDefault (IFormationUnit unit)
 
List< IFormationUnitGetUnitsToPop (int count)
 
List< IFormationUnitGetUnitsToPop (int count, Vec3 targetPosition)
 
IEnumerable< IFormationUnitGetUnitsToPopWithCondition (int count, Func< IFormationUnit, bool > currentCondition)
 
void SwitchUnitLocations (IFormationUnit firstUnit, IFormationUnit secondUnit)
 
void SwitchUnitLocationsWithUnpositionedUnit (IFormationUnit firstUnit, IFormationUnit secondUnit)
 
void SwitchUnitLocationsWithBackMostUnit (IFormationUnit unit)
 
float GetUnitsDistanceToFrontLine (IFormationUnit unit)
 
Vec2GetLocalDirectionOfRelativeFormationLocation (IFormationUnit unit)
 
Vec2GetLocalWallDirectionOfRelativeFormationLocation (IFormationUnit unit)
 
IEnumerable< Vec2GetUnavailableUnitPositions ()
 
float GetOccupationWidth (int unitCount)
 
Vec2CreateNewPosition (int unitIndex)
 
void InvalidateCacheOfUnitAux (Vec2 roundedLocalPosition)
 
void BeforeFormationFrameChange ()
 
void OnFormationFrameChanged ()
 
void OnUnitLostMount (IFormationUnit unit)
 
bool IsTurnBackwardsNecessary (Vec2 previousPosition, WorldPosition? newPosition, Vec2 previousDirection, bool hasNewDirection, Vec2? newDirection)
 
void TurnBackwards ()
 
void OnFormationDispersed ()
 
void Reset ()
 
virtual void RearrangeFrom (IFormationArrangement arrangement)
 
virtual void RearrangeTo (IFormationArrangement arrangement)
 
virtual void RearrangeTransferUnits (IFormationArrangement arrangement)
 
void FormFromWidth (float width)
 
IFormationUnit GetNeighborUnitOfLeftSide (IFormationUnit unit)
 
IFormationUnit GetNeighborUnitOfRightSide (IFormationUnit unit)
 
void ReserveMiddleFrontUnitPosition (IFormationUnit vanguard)
 
void ReleaseMiddleFrontUnitPosition ()
 
Vec2 GetLocalPositionOfReservedUnitPosition ()
 
void OnTickOccasionallyOfUnit (IFormationUnit unit, bool arrangementChangeAllowed)
 
float GetDirectionChangeTendencyOfUnit (IFormationUnit unit)
 
IEnumerable< T > GetUnitsAtVanguardFile< T > ()
 
IFormationUnit GetPlayerUnit ()
 
MBList< IFormationUnitGetAllUnits ()
 
MBList< IFormationUnitGetUnpositionedUnits ()
 
bool AddUnit (IFormationUnit unit)
 Adding may fail if there is no vacant position and deepening the formation does not create any new vacant positions.
 
void RemoveUnit (IFormationUnit unit)
 
IFormationUnit GetUnit (int fileIndex, int rankIndex)
 Returns the unit at the specified file and rank index Returns null if the specified position is restrained, is not valid or if there is no agent assigned to this position.
 
void OnBatchRemoveStart ()
 Notifies the arrangement that remove operations will be done in batch for performance. Child arrangements should provide their own implementation.
 
void OnBatchRemoveEnd ()
 
Vec2GetLocalPositionOfUnitOrDefault (int unitIndex)
 
Vec2GetLocalPositionOfUnitOrDefault (IFormationUnit unit)
 
Vec2GetLocalPositionOfUnitOrDefaultWithAdjustment (IFormationUnit unit, float distanceBetweenAgentsAdjustment)
 
Vec2GetLocalDirectionOfUnitOrDefault (int unitIndex)
 
Vec2GetLocalDirectionOfUnitOrDefault (IFormationUnit unit)
 
WorldPositionGetWorldPositionOfUnitOrDefault (int unitIndex)
 
WorldPositionGetWorldPositionOfUnitOrDefault (IFormationUnit unit)
 
List< IFormationUnitGetUnitsToPop (int count)
 
List< IFormationUnitGetUnitsToPop (int count, Vec3 targetPosition)
 
IEnumerable< IFormationUnitGetUnitsToPopWithCondition (int count, Func< IFormationUnit, bool > conditionFunction)
 
void SwitchUnitLocations (IFormationUnit firstUnit, IFormationUnit secondUnit)
 
void SwitchUnitLocationsWithUnpositionedUnit (IFormationUnit firstUnit, IFormationUnit secondUnit)
 
void SwitchUnitLocationsWithBackMostUnit (IFormationUnit unit)
 
IFormationUnit GetNeighborUnitOfLeftSide (IFormationUnit unit)
 
IFormationUnit GetNeighborUnitOfRightSide (IFormationUnit unit)
 
Vec2GetLocalWallDirectionOfRelativeFormationLocation (IFormationUnit unit)
 
IEnumerable< Vec2GetUnavailableUnitPositions ()
 
float GetOccupationWidth (int unitCount)
 
Vec2CreateNewPosition (int unitIndex)
 
void BeforeFormationFrameChange ()
 
void OnFormationFrameChanged ()
 
bool IsTurnBackwardsNecessary (Vec2 previousPosition, WorldPosition? newPosition, Vec2 previousDirection, bool hasNewDirection, Vec2? newDirection)
 
void TurnBackwards ()
 
void OnFormationDispersed ()
 
void Reset ()
 
IFormationArrangement Clone (IFormation formation)
 
void DeepCopyFrom (IFormationArrangement arrangement)
 
void RearrangeTo (IFormationArrangement arrangement)
 
void RearrangeFrom (IFormationArrangement arrangement)
 
void RearrangeTransferUnits (IFormationArrangement arrangement)
 
void ReserveMiddleFrontUnitPosition (IFormationUnit vanguard)
 
void ReleaseMiddleFrontUnitPosition ()
 
Vec2 GetLocalPositionOfReservedUnitPosition ()
 
void OnTickOccasionallyOfUnit (IFormationUnit unit, bool arrangementChangeAllowed)
 
void OnUnitLostMount (IFormationUnit unit)
 
float GetDirectionChangeTendencyOfUnit (IFormationUnit unit)
 

Protected Member Functions

int GetUnitCountWithOverride ()
 

Properties

IFormationUnit Vanguard [get]
 Forward unit of the column.
 
int ColumnCount [get, set]
 
int FileCount [get]
 
int RankCount [get]
 
float Distance [get]
 Space between units in the direction of depth.
 
float Interval [get]
 The lateral space between units on one same line.
 
float Width [get, set]
 Actual space occupied by the formation along side (x) direction, measured from left to right.
 
float FlankWidth [get, set]
 The space occupied by the formation, measured from left to right most flank.
 
float Depth [get]
 Actual space occupied by the formation along forward (y) direction, from front to back.
 
float RankDepth [get]
 The space occupied by the formation, from front rank to back most rank.
 
float MinimumWidth [get]
 Minimum width of the formation. Using current unit count, minimum unit interval and minimum unit distance.
 
float MaximumWidth [get]
 Maximum width of the formation. Using current unit count, maximum unit interval and maximum unit distance.
 
float MinimumFlankWidth [get]
 
bool? IsLoose [get]
 
int UnitCount [get]
 
int PositionedUnitCount [get]
 
- Properties inherited from TaleWorlds.MountAndBlade.IFormationArrangement
float Width [get, set]
 Actual space occupied by the formation along side (x) direction, measured from left to right.
 
float Depth [get]
 Actual space occupied by the formation along forward (y) direction, from front to back.
 
float FlankWidth [get, set]
 Space occupied from the formation's left most flank to right most flank REMARK_ATES: For rectangular formations this matches width. For circular formations (and alike) this matches circumference.
 
float RankDepth [get]
 Space occupied from the formation's front rank to back most rank. REMARK_ATES: For rectangular formations this matches depth. For circular formations (and alike) this matches radius.
 
float MinimumWidth [get]
 Minimum width of the formation. Using current unit count, minimum unit interval and minimum unit distance.
 
float MaximumWidth [get]
 Maximum width of the formation. Using current unit count, maximum unit interval and maximum unit distance.
 
float MinimumFlankWidth [get]
 
bool? IsLoose [get]
 
int UnitCount [get]
 
int RankCount [get]
 
int PositionedUnitCount [get]
 
bool AreLocalPositionsDirty [set]
 

Events

Action OnWidthChanged
 
Action OnShapeChanged
 
- Events inherited from TaleWorlds.MountAndBlade.IFormationArrangement
Action OnWidthChanged
 
Action OnShapeChanged
 

Constructor & Destructor Documentation

◆ ColumnFormation()

TaleWorlds.MountAndBlade.ColumnFormation.ColumnFormation ( IFormation  ownerFormation,
IFormationUnit  vanguard = null,
int  columnCount = 1 
)

Member Function Documentation

◆ Clone()

IFormationArrangement TaleWorlds.MountAndBlade.ColumnFormation.Clone ( IFormation  formation)

◆ DeepCopyFrom()

void TaleWorlds.MountAndBlade.ColumnFormation.DeepCopyFrom ( IFormationArrangement  arrangement)

◆ GetPlayerUnit()

IFormationUnit TaleWorlds.MountAndBlade.ColumnFormation.GetPlayerUnit ( )

◆ GetAllUnits()

MBList< IFormationUnit > TaleWorlds.MountAndBlade.ColumnFormation.GetAllUnits ( )

◆ GetUnpositionedUnits()

MBList< IFormationUnit > TaleWorlds.MountAndBlade.ColumnFormation.GetUnpositionedUnits ( )

◆ AddUnit()

bool TaleWorlds.MountAndBlade.ColumnFormation.AddUnit ( IFormationUnit  unit)
Parameters
unit
Returns

Implements TaleWorlds.MountAndBlade.IFormationArrangement.

◆ RemoveUnit()

void TaleWorlds.MountAndBlade.ColumnFormation.RemoveUnit ( IFormationUnit  unit)

◆ GetUnit()

IFormationUnit TaleWorlds.MountAndBlade.ColumnFormation.GetUnit ( int  fileIndex,
int  rankIndex 
)

◆ OnBatchRemoveStart()

void TaleWorlds.MountAndBlade.ColumnFormation.OnBatchRemoveStart ( )

◆ OnBatchRemoveEnd()

void TaleWorlds.MountAndBlade.ColumnFormation.OnBatchRemoveEnd ( )

◆ GetLocalPositionOfUnitOrDefault() [1/2]

Vec2? TaleWorlds.MountAndBlade.ColumnFormation.GetLocalPositionOfUnitOrDefault ( int  unitIndex)

◆ GetLocalDirectionOfUnitOrDefault() [1/2]

Vec2? TaleWorlds.MountAndBlade.ColumnFormation.GetLocalDirectionOfUnitOrDefault ( int  unitIndex)

◆ GetWorldPositionOfUnitOrDefault() [1/2]

Engine.? WorldPosition TaleWorlds.MountAndBlade.ColumnFormation.GetWorldPositionOfUnitOrDefault ( int  unitIndex)

◆ GetLocalPositionOfUnitOrDefault() [2/2]

Vec2? TaleWorlds.MountAndBlade.ColumnFormation.GetLocalPositionOfUnitOrDefault ( IFormationUnit  unit)

◆ GetLocalPositionOfUnitOrDefaultWithAdjustment()

Vec2? TaleWorlds.MountAndBlade.ColumnFormation.GetLocalPositionOfUnitOrDefaultWithAdjustment ( IFormationUnit  unit,
float  distanceBetweenAgentsAdjustment 
)

◆ GetWorldPositionOfUnitOrDefault() [2/2]

Engine.? WorldPosition TaleWorlds.MountAndBlade.ColumnFormation.GetWorldPositionOfUnitOrDefault ( IFormationUnit  unit)

◆ GetLocalDirectionOfUnitOrDefault() [2/2]

Vec2? TaleWorlds.MountAndBlade.ColumnFormation.GetLocalDirectionOfUnitOrDefault ( IFormationUnit  unit)

◆ GetUnitsToPop() [1/2]

List< IFormationUnit > TaleWorlds.MountAndBlade.ColumnFormation.GetUnitsToPop ( int  count)

◆ GetUnitsToPop() [2/2]

List< IFormationUnit > TaleWorlds.MountAndBlade.ColumnFormation.GetUnitsToPop ( int  count,
Vec3  targetPosition 
)

◆ GetUnitsToPopWithCondition()

IEnumerable< IFormationUnit > TaleWorlds.MountAndBlade.ColumnFormation.GetUnitsToPopWithCondition ( int  count,
Func< IFormationUnit, bool >  currentCondition 
)

◆ SwitchUnitLocations()

void TaleWorlds.MountAndBlade.ColumnFormation.SwitchUnitLocations ( IFormationUnit  firstUnit,
IFormationUnit  secondUnit 
)

◆ SwitchUnitLocationsWithUnpositionedUnit()

void TaleWorlds.MountAndBlade.ColumnFormation.SwitchUnitLocationsWithUnpositionedUnit ( IFormationUnit  firstUnit,
IFormationUnit  secondUnit 
)

◆ SwitchUnitLocationsWithBackMostUnit()

void TaleWorlds.MountAndBlade.ColumnFormation.SwitchUnitLocationsWithBackMostUnit ( IFormationUnit  unit)

◆ GetUnitsDistanceToFrontLine()

float TaleWorlds.MountAndBlade.ColumnFormation.GetUnitsDistanceToFrontLine ( IFormationUnit  unit)

◆ GetLocalDirectionOfRelativeFormationLocation()

Vec2? TaleWorlds.MountAndBlade.ColumnFormation.GetLocalDirectionOfRelativeFormationLocation ( IFormationUnit  unit)

◆ GetLocalWallDirectionOfRelativeFormationLocation()

Vec2? TaleWorlds.MountAndBlade.ColumnFormation.GetLocalWallDirectionOfRelativeFormationLocation ( IFormationUnit  unit)

◆ GetUnavailableUnitPositions()

IEnumerable< Vec2 > TaleWorlds.MountAndBlade.ColumnFormation.GetUnavailableUnitPositions ( )

◆ GetOccupationWidth()

float TaleWorlds.MountAndBlade.ColumnFormation.GetOccupationWidth ( int  unitCount)

◆ CreateNewPosition()

Vec2? TaleWorlds.MountAndBlade.ColumnFormation.CreateNewPosition ( int  unitIndex)

◆ InvalidateCacheOfUnitAux()

void TaleWorlds.MountAndBlade.ColumnFormation.InvalidateCacheOfUnitAux ( Vec2  roundedLocalPosition)

◆ BeforeFormationFrameChange()

void TaleWorlds.MountAndBlade.ColumnFormation.BeforeFormationFrameChange ( )

◆ OnFormationFrameChanged()

void TaleWorlds.MountAndBlade.ColumnFormation.OnFormationFrameChanged ( )

◆ OnUnitLostMount()

void TaleWorlds.MountAndBlade.ColumnFormation.OnUnitLostMount ( IFormationUnit  unit)

◆ IsTurnBackwardsNecessary()

bool TaleWorlds.MountAndBlade.ColumnFormation.IsTurnBackwardsNecessary ( Vec2  previousPosition,
WorldPosition newPosition,
Vec2  previousDirection,
bool  hasNewDirection,
Vec2 newDirection 
)

◆ TurnBackwards()

void TaleWorlds.MountAndBlade.ColumnFormation.TurnBackwards ( )

◆ OnFormationDispersed()

void TaleWorlds.MountAndBlade.ColumnFormation.OnFormationDispersed ( )

◆ Reset()

void TaleWorlds.MountAndBlade.ColumnFormation.Reset ( )

◆ RearrangeFrom()

virtual void TaleWorlds.MountAndBlade.ColumnFormation.RearrangeFrom ( IFormationArrangement  arrangement)
virtual

◆ RearrangeTo()

virtual void TaleWorlds.MountAndBlade.ColumnFormation.RearrangeTo ( IFormationArrangement  arrangement)
virtual

◆ RearrangeTransferUnits()

virtual void TaleWorlds.MountAndBlade.ColumnFormation.RearrangeTransferUnits ( IFormationArrangement  arrangement)
virtual

◆ GetUnitCountWithOverride()

int TaleWorlds.MountAndBlade.ColumnFormation.GetUnitCountWithOverride ( )
protected

◆ FormFromWidth()

void TaleWorlds.MountAndBlade.ColumnFormation.FormFromWidth ( float  width)

◆ GetNeighborUnitOfLeftSide()

IFormationUnit TaleWorlds.MountAndBlade.ColumnFormation.GetNeighborUnitOfLeftSide ( IFormationUnit  unit)

◆ GetNeighborUnitOfRightSide()

IFormationUnit TaleWorlds.MountAndBlade.ColumnFormation.GetNeighborUnitOfRightSide ( IFormationUnit  unit)

◆ ReserveMiddleFrontUnitPosition()

void TaleWorlds.MountAndBlade.ColumnFormation.ReserveMiddleFrontUnitPosition ( IFormationUnit  vanguard)

◆ ReleaseMiddleFrontUnitPosition()

void TaleWorlds.MountAndBlade.ColumnFormation.ReleaseMiddleFrontUnitPosition ( )

◆ GetLocalPositionOfReservedUnitPosition()

Vec2 TaleWorlds.MountAndBlade.ColumnFormation.GetLocalPositionOfReservedUnitPosition ( )

◆ OnTickOccasionallyOfUnit()

void TaleWorlds.MountAndBlade.ColumnFormation.OnTickOccasionallyOfUnit ( IFormationUnit  unit,
bool  arrangementChangeAllowed 
)

◆ GetDirectionChangeTendencyOfUnit()

float TaleWorlds.MountAndBlade.ColumnFormation.GetDirectionChangeTendencyOfUnit ( IFormationUnit  unit)

◆ GetUnitsAtVanguardFile< T >()

IEnumerable< T > TaleWorlds.MountAndBlade.ColumnFormation.GetUnitsAtVanguardFile< T > ( )
Type Constraints
T :IFormationUnit 

Property Documentation

◆ Vanguard

IFormationUnit TaleWorlds.MountAndBlade.ColumnFormation.Vanguard
get

◆ ColumnCount

int TaleWorlds.MountAndBlade.ColumnFormation.ColumnCount
getset

◆ FileCount

int TaleWorlds.MountAndBlade.ColumnFormation.FileCount
getprotected

◆ RankCount

int TaleWorlds.MountAndBlade.ColumnFormation.RankCount
get

◆ Distance

float TaleWorlds.MountAndBlade.ColumnFormation.Distance
getprotected

◆ Interval

float TaleWorlds.MountAndBlade.ColumnFormation.Interval
getprotected

◆ Width

float TaleWorlds.MountAndBlade.ColumnFormation.Width
getset

◆ FlankWidth

float TaleWorlds.MountAndBlade.ColumnFormation.FlankWidth
getset

◆ Depth

float TaleWorlds.MountAndBlade.ColumnFormation.Depth
get

◆ RankDepth

float TaleWorlds.MountAndBlade.ColumnFormation.RankDepth
get

◆ MinimumWidth

float TaleWorlds.MountAndBlade.ColumnFormation.MinimumWidth
get

◆ MaximumWidth

float TaleWorlds.MountAndBlade.ColumnFormation.MaximumWidth
get

◆ MinimumFlankWidth

float TaleWorlds.MountAndBlade.ColumnFormation.MinimumFlankWidth
get

◆ IsLoose

bool? TaleWorlds.MountAndBlade.ColumnFormation.IsLoose
get

◆ UnitCount

int TaleWorlds.MountAndBlade.ColumnFormation.UnitCount
get

◆ PositionedUnitCount

int TaleWorlds.MountAndBlade.ColumnFormation.PositionedUnitCount
get

Event Documentation

◆ OnWidthChanged

Action TaleWorlds.MountAndBlade.ColumnFormation.OnWidthChanged

◆ OnShapeChanged

Action TaleWorlds.MountAndBlade.ColumnFormation.OnShapeChanged