PhysicsServices
Namespace: Murder.Services
Assembly: Murder.dll
public static class PhysicsServices
⭐ Methods
CanSeeEntity(World, Vector2, Vector2, int, int)
public bool CanSeeEntity(World world, Vector2 from, Vector2 to, int selfEntityId, int targetEntityId)
Returns whether
Parameters
world World
from Vector2
to Vector2
selfEntityId int
targetEntityId int
Returns
bool
CollidesAt(Map&, int, ColliderComponent, Vector2, ImmutableArray, int, out Int32&)
public bool CollidesAt(Map& map, int ignoreId, ColliderComponent collider, Vector2 position, ImmutableArray<T> others, int mask, Int32& hitId)
Parameters
map Map&
ignoreId int
collider ColliderComponent
position Vector2
others ImmutableArray<T>
mask int
hitId int&
Returns
bool
CollidesAtTile(Map&, ColliderComponent, Vector2, int)
public bool CollidesAtTile(Map& map, ColliderComponent collider, Vector2 position, int mask)
Parameters
map Map&
collider ColliderComponent
position Vector2
mask int
Returns
bool
CollidesWith(Entity, Entity, Vector2)
public bool CollidesWith(Entity entityA, Entity entityB, Vector2 positionA)
Parameters
entityA Entity
entityB Entity
positionA Vector2
Returns
bool
CollidesWith(Entity, Entity)
public bool CollidesWith(Entity entityA, Entity entityB)
Parameters
entityA Entity
entityB Entity
Returns
bool
CollidesWith(IShape, Point, IShape, Point)
public bool CollidesWith(IShape shape1, Point position1, IShape shape2, Point position2)
Parameters
shape1 IShape
position1 Point
shape2 IShape
position2 Point
Returns
bool
ContainsPoint(Entity, Point)
public bool ContainsPoint(Entity entity, Point point)
Parameters
entity Entity
point Point
Returns
bool
FindClosestEntityOnRange(World, Vector2, float, int, HashSet, out Entity&, out Nullable`1&)
public bool FindClosestEntityOnRange(World world, Vector2 fromPosition, float range, int collisionLayer, HashSet<T> excludeEntities, Entity& target, Nullable`1& location)
Parameters
world World
fromPosition Vector2
range float
collisionLayer int
excludeEntities HashSet<T>
target Entity&
location T?&
Returns
bool
GetFirstMtvAt(Map&, HashSet, ColliderComponent, Vector2, ImmutableArray, int, out Int32&, out Int32&, out Vector2&)
public bool GetFirstMtvAt(Map& map, HashSet<T> ignoreIds, ColliderComponent collider, Vector2 position, ImmutableArray<T> others, int mask, Int32& hitId, Int32& layer, Vector2& mtv)
Parameters
map Map&
ignoreIds HashSet<T>
collider ColliderComponent
position Vector2
others ImmutableArray<T>
mask int
hitId int&
layer int&
mtv Vector2&
Returns
bool
HasCachedCollisionWith(Entity, int)
public bool HasCachedCollisionWith(Entity entity, int entityId)
Check if a trigger is colliding with an actor via the TriggerCollisionSystem.
Parameters
entity Entity
entityId int
Returns
bool
HasLineOfSight(World, Entity, Entity)
public bool HasLineOfSight(World world, Entity from, Entity to)
Parameters
world World
from Entity
to Entity
Returns
bool
HasLineOfSight(World, Vector2, Vector2)
public bool HasLineOfSight(World world, Vector2 from, Vector2 to)
Parameters
world World
from Vector2
to Vector2
Returns
bool
Raycast(World, Vector2, Vector2, int, IEnumerable, out RaycastHit&)
public bool Raycast(World world, Vector2 startPosition, Vector2 endPosition, int layerMask, IEnumerable<T> ignoreEntities, RaycastHit& hit)
Parameters
world World
startPosition Vector2
endPosition Vector2
layerMask int
ignoreEntities IEnumerable<T>
hit RaycastHit&
Returns
bool
RaycastTiles(World, Vector2, Vector2, int, out RaycastHit&)
public bool RaycastTiles(World world, Vector2 startPosition, Vector2 endPosition, int flags, RaycastHit& hit)
Parameters
world World
startPosition Vector2
endPosition Vector2
flags int
hit RaycastHit&
Returns
bool
RemoveFromCollisionCache(Entity, int)
public bool RemoveFromCollisionCache(Entity entity, int entityId)
Removes an ID from the IsColliding component. This is usually handled by TriggerPhysics system, since a message must be sent when exiting a collision.
Parameters
entity Entity
entityId int
Returns
bool
ConeCheck(World, Vector2, float, float, float, int)
public IEnumerable<T> ConeCheck(World world, Vector2 coneStart, float range, float angle, float angleRange, int collisionLayer)
Checks for collisions in a cone.
Parameters
world World
coneStart Vector2
range float
angle float
angleRange float
collisionLayer int
Returns
IEnumerable<T>
GetAllCollisionsAt(World, Point, ColliderComponent, int, int)
public IEnumerable<T> GetAllCollisionsAt(World world, Point position, ColliderComponent collider, int ignoreId, int mask)
Parameters
world World
position Point
collider ColliderComponent
ignoreId int
mask int
Returns
IEnumerable<T>
Neighbours(Vector2, World, float)
public IEnumerable<T> Neighbours(Vector2 position, World world, float unit)
Get all the neighbours of a position within the world. This does not check for collision (yet)!
Parameters
position Vector2
world World
unit float
Returns
IEnumerable<T>
FilterEntities(World, int)
public ImmutableArray<T> FilterEntities(World world, int layerMask)
Parameters
world World
layerMask int
Returns
ImmutableArray<T>
FilterPositionAndColliderEntities(World, Func<T, TResult>)
public ImmutableArray<T> FilterPositionAndColliderEntities(World world, Func<T, TResult> filter)
Parameters
world World
filter Func<T, TResult>
Returns
ImmutableArray<T>
FilterPositionAndColliderEntities(World, int, Type[])
public ImmutableArray<T> FilterPositionAndColliderEntities(World world, int layerMask, Type[] requireComponents)
Parameters
world World
layerMask int
requireComponents Type[]
Returns
ImmutableArray<T>
FilterPositionAndColliderEntities(World, int)
public ImmutableArray<T> FilterPositionAndColliderEntities(World world, int layerMask)
Parameters
world World
layerMask int
Returns
ImmutableArray<T>
FilterPositionAndColliderEntities(IEnumerable, int)
public ImmutableArray<T> FilterPositionAndColliderEntities(IEnumerable<T> entities, int layerMask)
Parameters
entities IEnumerable<T>
layerMask int
Returns
ImmutableArray<T>
GetCarveBoundingBox(ColliderComponent, Vector2)
public IntRectangle GetCarveBoundingBox(ColliderComponent collider, Vector2 position)
Parameters
collider ColliderComponent
position Vector2
Returns
IntRectangle
GetColliderBoundingBox(Entity)
public IntRectangle GetColliderBoundingBox(Entity target)
Get bounding box of an entity that contains both ColliderComponent and PositionComponent.
Parameters
target Entity
Returns
IntRectangle
GetCollidersBoundingBox(ColliderComponent, Point, bool)
public IntRectangle[] GetCollidersBoundingBox(ColliderComponent collider, Point position, bool gridCoordinates)
Parameters
collider ColliderComponent
position Point
gridCoordinates bool
Returns
IntRectangle[]
GetMtvAt(Map&, int, ColliderComponent, Vector2, IEnumerable, int, out Int32&)
public List<T> GetMtvAt(Map& map, int ignoreId, ColliderComponent collider, Vector2 position, IEnumerable<T> others, int mask, Int32& hitId)
Parameters
map Map&
ignoreId int
collider ColliderComponent
position Vector2
others IEnumerable<T>
mask int
hitId int&
Returns
List<T>
GetBoundingBox(ColliderComponent, Vector2)
public Rectangle GetBoundingBox(ColliderComponent collider, Vector2 position)
Parameters
collider ColliderComponent
position Vector2
Returns
Rectangle
FindNextAvailablePosition(World, Entity, Vector2, Vector2, int, NextAvailablePositionFlags)
public T? FindNextAvailablePosition(World world, Entity e, Vector2 center, Vector2 target, int layerMask, NextAvailablePositionFlags flags)
Parameters
world World
e Entity
center Vector2
target Vector2
layerMask int
flags NextAvailablePositionFlags
Returns
T?
AddToCollisionCache(Entity, int)
public void AddToCollisionCache(Entity entity, int entityId)
Parameters
entity Entity
entityId int
AddVelocity(Entity, Vector2)
public void AddVelocity(Entity entity, Vector2 addVelocity)
Parameters
entity Entity
addVelocity Vector2
GetAllCollisionsAtGrid(World, Point, List`1&)
public void GetAllCollisionsAtGrid(World world, Point grid, List`1& output)
Parameters
world World
grid Point
output List<T>&
⚡