Show / Hide Table of Contents

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
PositionsRequirementContext
SideAttachedContext
WaterDepthContext
Namespace: Eco.Gameplay.Occupancy
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
Type Name Description
Player player
IPlaceableItem item
System.Numerics.Vector3 worldPos
Quaternion rotation
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
Type Name Description
Vector3i worldPos
Quaternion rotation
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
Type Name Description
Vector3i worldPos
Quaternion rotation
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
Type Name Description
Vector3i worldPos
Quaternion rotation
Returns
Type Description
System.Collections.Generic.List<Vector3i>

Extension Methods

TagUtils.TagNames(Object, Boolean)
TagUtils.TagDisplayNames(Object, Boolean)
ClientSetViewExtensions.SetClassOfProperty(Object, Player, String, String, Int32)
TypeTooltipExtensions.UILinkGeneric(Object)
☀
☾
In This Article
Back to top
Copyright (c) Strange Loop Games 2021
☀
☾