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>&
⚡