Class MyCubeGridGroups
Inheritance
System.Object
MyCubeGridGroups
Assembly: Sandbox.Game.dll
Syntax
public class MyCubeGridGroups : Object, IMySceneComponent
Constructors
MyCubeGridGroups()
Declaration
public MyCubeGridGroups()
Fields
Electrical
Declaration
public MyGroups<MyCubeGrid, MyGridElectricalGroupData> Electrical
Field Value
Type |
Description |
VRage.Groups.MyGroups<MyCubeGrid, Sandbox.Game.Entities.Cube.MyGridElectricalGroupData> |
|
Logical
Declaration
public MyGroups<MyCubeGrid, MyGridLogicalGroupData> Logical
Field Value
Mechanical
Declaration
public MyGroups<MyCubeGrid, MyGridMechanicalGroupData> Mechanical
Field Value
Declaration
public MyGroups<MyCubeGrid, MyGridNoDamageGroupData> NoContactDamage
Field Value
Type |
Description |
VRage.Groups.MyGroups<MyCubeGrid, Sandbox.Game.Entities.Cube.MyGridNoDamageGroupData> |
|
Physical
Declaration
public MyGroups<MyCubeGrid, MyGridPhysicalGroupData> Physical
Field Value
PhysicalDynamic
Declaration
public MyGroups<MyCubeGrid, MyGridPhysicalDynamicGroupData> PhysicalDynamic
Field Value
SmallToLargeBlockConnections
Declaration
public MyGroups<MySlimBlock, MyBlockGroupData> SmallToLargeBlockConnections
Field Value
Type |
Description |
VRage.Groups.MyGroups<Sandbox.Game.Entities.Cube.MySlimBlock, Sandbox.Game.Entities.Cube.MyBlockGroupData> |
|
Static
Declaration
public static MyCubeGridGroups Static
Field Value
Methods
AddGridGroupLogic(GridLinkTypeEnum, Func<IMyGridGroupData, MyGridGroupsDefaultEventHandler>)
Declaration
public static void AddGridGroupLogic(GridLinkTypeEnum type, Func<IMyGridGroupData, MyGridGroupsDefaultEventHandler> creator)
Parameters
AddNode(GridLinkTypeEnum, MyCubeGrid)
Declaration
public void AddNode(GridLinkTypeEnum type, MyCubeGrid grid)
Parameters
BreakLink(GridLinkTypeEnum, Int64, MyCubeGrid, MyCubeGrid)
Breaks link between parent and child, you can set child to null to find it by linkId.
Returns true when link was removed, returns false when link was not found.
Declaration
public bool BreakLink(GridLinkTypeEnum type, long linkId, MyCubeGrid parent, MyCubeGrid child = null)
Parameters
Returns
Type |
Description |
System.Boolean |
|
CreateLink(GridLinkTypeEnum, Int64, MyCubeGrid, MyCubeGrid)
Creates link between parent and child.
Parent is owner of constraint.
LinkId must be unique only for parent, for grid it can be packed position of block which created constraint.
Declaration
public void CreateLink(GridLinkTypeEnum type, long linkId, MyCubeGrid parent, MyCubeGrid child)
Parameters
FindConnection(GridLinkTypeEnum, IMyCubeGrid, Func<IMyCubeGrid, IMyCubeGrid, Int64, Boolean>)
Dijkstra search over grid-to-grid connections until searcher is return true
NOTE: pretty expensive function on large grid-groups, don't call it often.
Declaration
public static List<KeyValuePair<long, IMyCubeGrid>> FindConnection(GridLinkTypeEnum linking, IMyCubeGrid from, Func<IMyCubeGrid, IMyCubeGrid, long, bool> searcher)
Parameters
Type |
Name |
Description |
GridLinkTypeEnum |
linking |
Type of grid-group connection
|
IMyCubeGrid |
from |
Initial grid, from which search would start
|
System.Func<IMyCubeGrid, IMyCubeGrid, System.Int64, System.Boolean> |
searcher |
When this function returns true - search is stopped, and result is returned.
First arg - new grid
Second - previous grid
Last - block, that creates connection between those 2 grids. Note: There could be only one block per Grid-Grid connection
Note: first call would be called with (from, null, 0)
|
Returns
Type |
Description |
System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<System.Int64, IMyCubeGrid>> |
Null if linking is linking is incorrect.
Null if searcher hasn't returned true.
Otherwise list of connections, where long is block entityId, and IMyCubeGrid - grid, where search is hopped
Note: first element would be always (from, 0)
|
GetGridGroup(GridLinkTypeEnum, MyCubeGrid)
Declaration
public static IMyGridGroupData GetGridGroup(GridLinkTypeEnum linking, MyCubeGrid grid)
Parameters
Returns
GetGridGroups<T>(GridLinkTypeEnum, T)
Declaration
public static T GetGridGroups<T>(GridLinkTypeEnum linking, T grids)
where T : ICollection<IMyGridGroupData>
Parameters
Returns
Type Parameters
GetGroups(GridLinkTypeEnum)
Declaration
public MyGroupsBase<MyCubeGrid> GetGroups(GridLinkTypeEnum type)
Parameters
Returns
Type |
Description |
VRage.Groups.MyGroupsBase<MyCubeGrid> |
|
RemoveNode(GridLinkTypeEnum, MyCubeGrid)
Declaration
public void RemoveNode(GridLinkTypeEnum type, MyCubeGrid grid)
Parameters
UpdateDynamicState(MyCubeGrid)
Declaration
public void UpdateDynamicState(MyCubeGrid grid)
Parameters
Events
OnGridGroupCreated
Declaration
public event Action<IMyGridGroupData> OnGridGroupCreated
Event Type
OnGridGroupDestroyed
Declaration
public event Action<IMyGridGroupData> OnGridGroupDestroyed
Event Type
Explicit Interface Implementations
IMySceneComponent.Load()
Declaration
void IMySceneComponent.Load()
IMySceneComponent.Unload()
Declaration
void IMySceneComponent.Unload()
Implements