Class OccupancyContext
A class that contains the definitions of methods needed for placement related stuff, such as trying to place an object, which positions are invalid when placing an object,
which chunks does the placement affect, the current placement status of an object already placed.
More detailed information can be found here: https://github.com/StrangeLoopGames/Eco/wiki/Occupancy-System.
Inheritance
System.Object
OccupancyContext
Assembly: Eco.Gameplay.dll
Syntax
public abstract class OccupancyContext : Object
Constructors
OccupancyContext()
Declaration
protected OccupancyContext()
Methods
CanPlaceObject(Player, IPlaceableItem, Vector3, Quaternion)
Declaration
public abstract bool CanPlaceObject(Player player, IPlaceableItem item, Vector3 worldPos, Quaternion rotation)
Parameters
Returns
| Type |
Description |
| System.Boolean |
|
CurrentPlacementStatus(Vector3i, Quaternion)
Evaluates if the the current world object placement is valid, and their respetive message status e.g Placed on solid ground.
Declaration
public virtual IEnumerable<ValResult<bool>> CurrentPlacementStatus(Vector3i worldPos, Quaternion rotation)
Parameters
Returns
| Type |
Description |
| System.Collections.Generic.IEnumerable<ValResult<System.Boolean>> |
|
GetRelevantChunkPositions(Vector3i, Quaternion)
Returns the chunks touched by world object occupancy
Declaration
public abstract IEnumerable<Vector3i> GetRelevantChunkPositions(Vector3i worldPos, Quaternion rotation)
Parameters
Returns
| Type |
Description |
| System.Collections.Generic.IEnumerable<Vector3i> |
|
GetSurfaceUnavailablePositions(Vector3i, Quaternion)
Returns a list of positions that are invalid when placing an object, e.g holding a workbench and trying to place it above empty space
Declaration
public abstract List<Vector3i> GetSurfaceUnavailablePositions(Vector3i worldPos, Quaternion rotation)
Parameters
Returns
| Type |
Description |
| System.Collections.Generic.List<Vector3i> |
|
Extension Methods