M&B: Bannerlord 1.0.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)
 
List< IFormationUnitGetAllUnits ()
 
List< 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. More...
 
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 More...
 
void OnBatchRemoveStart ()
 Notifies the arrangement that remove operations will be done in batch for performance. Child arrangements should provide their own implementation. More...
 
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 SwitchUnitLocationsAfterUnitAddition (IFormationUnit addedUnit)
 
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 > ()
 
List< IFormationUnitGetAllUnits ()
 
List< 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. More...
 
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 More...
 
void OnBatchRemoveStart ()
 Notifies the arrangement that remove operations will be done in batch for performance. Child arrangements should provide their own implementation. More...
 
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 SwitchUnitLocationsAfterUnitAddition (IFormationUnit addedUnit)
 
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 More...
 
int ColumnCount [get, set]
 
int FileCount [get]
 
int RankCount [get]
 
float Distance [get]
 Space between units in the direction of depth More...
 
float Interval [get]
 The lateral space between units on one same line More...
 
float Width [get, set]
 The space occupied by the formation, measured from one flank to the other More...
 
float Depth [get]
 The space from front to rear of the formation More...
 
float MinimumWidth [get]
 
bool? IsLoose [get]
 
int UnitCount [get]
 
int PositionedUnitCount [get]
 
- Properties inherited from TaleWorlds.MountAndBlade.IFormationArrangement
float Width [get, set]
 The space occupied by the formation, measured from one flank to the other More...
 
float Depth [get]
 The space from front to rear of the formation More...
 
float MinimumWidth [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)

◆ GetAllUnits()

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

◆ GetUnpositionedUnits()

List< 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 
)

◆ SwitchUnitLocationsAfterUnitAddition()

void TaleWorlds.MountAndBlade.ColumnFormation.SwitchUnitLocationsAfterUnitAddition ( IFormationUnit  addedUnit)

◆ 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

◆ Depth

float TaleWorlds.MountAndBlade.ColumnFormation.Depth
get

◆ MinimumWidth

float TaleWorlds.MountAndBlade.ColumnFormation.MinimumWidth
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