Show / Hide Table of Contents

Class OccupancyUtils

Contains public functions related to the occupancy system.

Inheritance
System.Object
OccupancyUtils
Namespace: Eco.Gameplay.Occupancy
Assembly: Eco.Gameplay.dll
Syntax
public static class OccupancyUtils : Object

Methods

GetOccupancyUnavailableBlocks(IEnumerable<BlockOccupancy>, Vector3i, Quaternion, Type[])

Check if a space (defined by occupancy, position and rotation) is empty or occupied. Returns all block positions(not wrapped) that are blocking the occupancy. Called when player is trying to place an object. blockers represents the block types that can block the placement of an object (e.g. water, solid ground, etc.).

Declaration
public static IEnumerable<Vector3i> GetOccupancyUnavailableBlocks(IEnumerable<BlockOccupancy> occupancy, Vector3i position, Quaternion rotation, Type[] blockers = null)
Parameters
Type Name Description
System.Collections.Generic.IEnumerable<BlockOccupancy> occupancy
Vector3i position
Quaternion rotation
System.Type[] blockers
Returns
Type Description
System.Collections.Generic.IEnumerable<Vector3i>

GroundBelow(WorldObject)

Declaration
public static IEnumerable<Vector3i> GroundBelow(this WorldObject obj)
Parameters
Type Name Description
WorldObject obj
Returns
Type Description
System.Collections.Generic.IEnumerable<Vector3i>

GroundBelow(OccupancyInfo, Vector3i, Quaternion)

Returns positions of ground blocks below the occupancy blocks that have Y offset of 0, if occupancy contains BuildingWorldObjectBlock types only return ground blocks below them

Declaration
public static IEnumerable<Vector3i> GroundBelow(OccupancyInfo occupancyInfo, Vector3i position, Quaternion rotation)
Parameters
Type Name Description
OccupancyInfo occupancyInfo
Vector3i position
Quaternion rotation
Returns
Type Description
System.Collections.Generic.IEnumerable<Vector3i>

IsBlockAvailable(WrappedWorldPosition3i)

Declaration
public static bool IsBlockAvailable(WrappedWorldPosition3i blockPosition)
Parameters
Type Name Description
WrappedWorldPosition3i blockPosition
Returns
Type Description
System.Boolean

IsBlockAvailable(WrappedWorldPosition3i, Type[])

Declaration
public static bool IsBlockAvailable(WrappedWorldPosition3i blockPosition, Type[] blockers)
Parameters
Type Name Description
WrappedWorldPosition3i blockPosition
System.Type[] blockers
Returns
Type Description
System.Boolean

IsBlockAvailable(Block)

Declaration
public static bool IsBlockAvailable(Block block)
Parameters
Type Name Description
Block block
Returns
Type Description
System.Boolean

IsBlockOccupied(Vector3i)

Declaration
public static bool IsBlockOccupied(Vector3i blockPosition)
Parameters
Type Name Description
Vector3i blockPosition
Returns
Type Description
System.Boolean

LocalToWorld(WorldObject, Ray)

Declaration
public static Ray LocalToWorld(this WorldObject obj, Ray offset)
Parameters
Type Name Description
WorldObject obj
Ray offset
Returns
Type Description
Ray

LocalToWorld(WorldObject, Vector3i)

Declaration
public static Vector3i LocalToWorld(this WorldObject obj, Vector3i offset)
Parameters
Type Name Description
WorldObject obj
Vector3i offset
Returns
Type Description
Vector3i

ToWorldPositions(Vector3i, IEnumerable<BlockOccupancy>, Quaternion)

Declaration
public static List<Vector3i> ToWorldPositions(Vector3i position, IEnumerable<BlockOccupancy> occupancy, Quaternion rotation)
Parameters
Type Name Description
Vector3i position
System.Collections.Generic.IEnumerable<BlockOccupancy> occupancy
Quaternion rotation
Returns
Type Description
System.Collections.Generic.List<Vector3i>
☀
☾
In This Article
Back to top
Copyright (c) Strange Loop Games 2021
☀
☾