Class World
Inheritance
System.Object
World
Assembly: Eco.World.dll
Syntax
public abstract class World : World
Constructors
World()
Declaration
Properties
Chunks
Declaration
public static IEnumerable<PersistentChunk> Chunks { get; }
Property Value
ChunksCount
Declaration
public static int ChunksCount { get; }
Property Value
Type |
Description |
System.Int32 |
|
Locked
Declaration
public static bool Locked { get; }
Property Value
Type |
Description |
System.Boolean |
|
MaxWaterHeight
Declaration
public static Array2D<int> MaxWaterHeight { get; set; }
Property Value
Type |
Description |
Array2D<System.Int32> |
|
MaxYCache
Declaration
public static Array2D<int> MaxYCache { get; set; }
Property Value
Type |
Description |
Array2D<System.Int32> |
|
OnBlockChanged
Declaration
public static ThreadSafeAction<WrappedWorldPosition3i> OnBlockChanged { get; }
Property Value
OnTopBlockChanged
Declaration
public static ThreadSafeAction<Vector2i, int> OnTopBlockChanged { get; }
Property Value
OnTopOrWaterBlockCacheChanged
Declaration
public static ThreadSafeAction<Vector2i> OnTopOrWaterBlockCacheChanged { get; }
Property Value
TopBlockCache
Declaration
public static Array2D<Block> TopBlockCache { get; set; }
Property Value
Methods
AllNeighborsMatchOrHigher(Vector3i)
Declaration
public static bool AllNeighborsMatchOrHigher(Vector3i pos)
Parameters
Returns
Type |
Description |
System.Boolean |
|
AwakeNear(WrappedWorldPosition3i, PersistentChunk)
Pass chunk of world pos so it dont have to go to chunk table which is slow
Declaration
public static void AwakeNear(WrappedWorldPosition3i worldPos, PersistentChunk chunkAtPosition)
Parameters
AwakeNearDiagonals(WrappedWorldPosition3i)
Declaration
public static void AwakeNearDiagonals(WrappedWorldPosition3i worldPos)
Parameters
BatchApply(IEnumerable<BlockChange>)
Declaration
public static void BatchApply(IEnumerable<BlockChange> changes)
Parameters
Type |
Name |
Description |
System.Collections.Generic.IEnumerable<BlockChange> |
changes |
|
BlockAtOrBelow(Vector3i)
Declaration
public static Vector3i BlockAtOrBelow(Vector3i pos)
Parameters
Returns
CalculateChunkEncasement(Action<Single>)
Declaration
public static void CalculateChunkEncasement(Action<float> updateAction)
Parameters
Type |
Name |
Description |
System.Action<System.Single> |
updateAction |
|
ChunksInRange(WorldRange)
Declaration
public static IEnumerable<PersistentChunk> ChunksInRange(WorldRange range)
Parameters
Returns
ClampToWaterHeight(Vector3i)
Clamps Y coordinate of pos
to water height
Declaration
public static Vector3i ClampToWaterHeight(Vector3i pos)
Parameters
Returns
Clear()
Declaration
public static void Clear()
DeleteBlock(WrappedWorldPosition3i, Boolean)
Deletes the block at from the world at worldPos.
Declaration
public static void DeleteBlock(WrappedWorldPosition3i worldPos, bool checkForWaterFlow = true)
Parameters
Type |
Name |
Description |
WrappedWorldPosition3i |
worldPos |
The world position of the block to be deleted.
|
System.Boolean |
checkForWaterFlow |
Set to true to replace the block with Block.Empty. Ie. Crater should force delete the terrain. Handles removing blocks underwater.
|
FindPyramidPos(Vector3i)
Declaration
public static Vector3i FindPyramidPos(Vector3i start)
Parameters
Returns
ForceUpdate(WrappedWorldPosition3i)
Forces chunk dirty at specified block pos
Declaration
public static void ForceUpdate(WrappedWorldPosition3i worldPos)
Parameters
ForceUpdateBatch(IEnumerable<WrappedWorldPosition3i>)
Forces chunk dirty at specified block positions, updates once per chunk. Useful for lots of positions in same chunk
Declaration
public static void ForceUpdateBatch(IEnumerable<WrappedWorldPosition3i> worldPositions)
Parameters
GetBlock(Vector3i)
Returns the block at the location or Block.Empty. Returns Empty for invalid worldPos
(i.e. Y negative or Z above top block).
Declaration
public static Block GetBlock(Vector3i worldPos)
Parameters
Returns
GetBlock(WrappedPosition3i)
Returns the block at the location or Block.Empty.
Declaration
public static Block GetBlock(WrappedPosition3i worldPos)
Parameters
Returns
GetBlock(WrappedWorldPosition3i)
Returns the block at the location or Block.Empty.
Declaration
public static Block GetBlock(WrappedWorldPosition3i worldPos)
Parameters
Returns
GetBlockFromChunkIfPossible(Vector3i, PersistentChunk)
Declaration
public static Block GetBlockFromChunkIfPossible(Vector3i pos, PersistentChunk chunk)
Parameters
Returns
GetBlockProbablyTop(WrappedWorldPosition3i)
Declaration
public static Block GetBlockProbablyTop(WrappedWorldPosition3i worldPos)
Parameters
Returns
GetBlockType(Vector3i)
Returns type of the block located at given position.
Declaration
public static Type GetBlockType(Vector3i worldPos)
Parameters
Returns
Type |
Description |
System.Type |
|
GetBlockType(WrappedPosition3i)
Returns type of the block located at given position.
Declaration
public static Type GetBlockType(WrappedPosition3i worldPos)
Parameters
Returns
Type |
Description |
System.Type |
|
GetBlockType(WrappedWorldPosition3i)
Returns type of the block located at given position.
Declaration
public static Type GetBlockType(WrappedWorldPosition3i worldPos)
Parameters
Returns
Type |
Description |
System.Type |
|
GetChunk(Vector3i)
Declaration
public static PersistentChunk GetChunk(Vector3i chunkPos)
Parameters
Returns
GetChunkColumn(Vector2i)
Returns all the current chunks at the given XZ chunkPos coordinate organized from lowest to highest.
Declaration
public static IEnumerable<PersistentChunk> GetChunkColumn(Vector2i pos)
Parameters
Returns
GetChunkColumnAscendingFrom(Vector3i)
Returns all the current chunks starting (inclusively) at the given chunkPos coordinate extending to the top of the column in ascending order.
Declaration
public static IEnumerable<PersistentChunk> GetChunkColumnAscendingFrom(Vector3i pos)
Parameters
Returns
GetChunkColumnFromTop(Vector2i)
Returns all the current chunks at the given XZ chunkPos coordinate organized from highest to lowest.
Declaration
public static IEnumerable<PersistentChunk> GetChunkColumnFromTop(Vector2i pos)
Parameters
Returns
GetChunkWorld(Vector3i)
Declaration
public static PersistentChunk GetChunkWorld(Vector3i worldPos)
Parameters
Returns
GetDeepestNeighbor(Vector3i, out Vector3i)
Declaration
public static int GetDeepestNeighbor(Vector3i pos, out Vector3i outvec)
Parameters
Returns
Type |
Description |
System.Int32 |
|
GetDepth(Vector3i)
Declaration
public static int GetDepth(Vector3i pos)
Parameters
Returns
Type |
Description |
System.Int32 |
|
GetEmptyPilePosition(Vector2i)
Declaration
public static Vector3i GetEmptyPilePosition(Vector2i xzPos)
Parameters
Returns
GetRandomLandPos()
Declaration
public static WorldPosition3i GetRandomLandPos()
Returns
GetRandomLandPos(Random)
Declaration
public static WorldPosition3i GetRandomLandPos(Random randomizer)
Parameters
Type |
Name |
Description |
System.Random |
randomizer |
|
Returns
GetRandomLandPosNear(Vector3i, Single)
Declaration
public static Vector3i GetRandomLandPosNear(Vector3i nearPos, float radius = 10F)
Parameters
Type |
Name |
Description |
Vector3i |
nearPos |
|
System.Single |
radius |
|
Returns
GetTopBlock(Vector2i)
Declaration
public static Block GetTopBlock(Vector2i worldPos)
Parameters
Returns
GetTopBlockPos(Vector2i)
Return the highest position occupied by a block (land or water) at the position that is passed in the parameter.
Declaration
public static Vector3i GetTopBlockPos(Vector2i pos)
Parameters
Type |
Name |
Description |
Vector2i |
pos |
Position to check. Doesn't have to be wrapped.
|
Returns
Type |
Description |
Vector3i |
Unwrapped position, unless passed argument was already wrapped.
|
GetTopBlockY(Vector2i)
Return the highest Y position occupied by a block (land or water) at the position that is passed in the parameter.
Declaration
public static int GetTopBlockY(Vector2i pos)
Parameters
Type |
Name |
Description |
Vector2i |
pos |
Position to check. Doesn't have to be wrapped.
|
Returns
Type |
Description |
System.Int32 |
|
GetTopEmptyBlock(Vector2i)
The y position above the top solid block
Declaration
public static int GetTopEmptyBlock(Vector2i worldPos)
Parameters
Returns
Type |
Description |
System.Int32 |
|
GetTopGroundPos(Vector2i)
Declaration
public static Vector3i GetTopGroundPos(Vector2i worldPos)
Parameters
Returns
GetTopGroundPos(Vector3i)
Declaration
public static Vector3i GetTopGroundPos(Vector3i worldPos)
Parameters
Returns
GetTopPathPos(Vector2i)
Declaration
public static Vector3i GetTopPathPos(Vector2i worldPos)
Parameters
Returns
GetTopSolidBlockUnderwater(Vector2i, Int32)
Y position of the top solid block underwater.
Declaration
public static int GetTopSolidBlockUnderwater(Vector2i waterPos, int maxDeep = 5)
Parameters
Type |
Name |
Description |
Vector2i |
waterPos |
|
System.Int32 |
maxDeep |
|
Returns
Type |
Description |
System.Int32 |
|
GetTopSolidBlockY(Vector2i)
The y position of the top solid block
Declaration
public static int GetTopSolidBlockY(Vector2i worldPos)
Parameters
Returns
Type |
Description |
System.Int32 |
|
GetTopSolidBlockYRaw(Vector2i)
Faster than GetTopBlockY but don't performs wrapping
Declaration
public static int GetTopSolidBlockYRaw(Vector2i worldPos)
Parameters
Returns
Type |
Description |
System.Int32 |
|
GetTopSolidBlockYRaw(Int32, Int32)
Faster than GetTopBlockY but don't performs wrapping
Declaration
public static int GetTopSolidBlockYRaw(int x, int y)
Parameters
Type |
Name |
Description |
System.Int32 |
x |
|
System.Int32 |
y |
|
Returns
Type |
Description |
System.Int32 |
|
GetTopSolidNonConstructedPos(Vector2i)
Returns the position of the topmost solid, non-constructed block in a world column.
Declaration
public static (Vector3i, Block, bool) GetTopSolidNonConstructedPos(Vector2i worldColumn)
Parameters
Type |
Name |
Description |
Vector2i |
worldColumn |
|
Returns
Type |
Description |
System.ValueTuple<Vector3i, Block, System.Boolean> |
|
GetWaterHeight(Vector2i)
Declaration
public static int GetWaterHeight(Vector2i worldPos)
Parameters
Returns
Type |
Description |
System.Int32 |
|
InitCachedData(Vector2i)
Declaration
public static void InitCachedData(Vector2i size)
Parameters
Initialize(Vector3i)
Declaration
public static void Initialize(Vector3i chunkSize)
Parameters
Type |
Name |
Description |
Vector3i |
chunkSize |
|
Initialize(WorldChunkGrid)
Declaration
public static void Initialize(WorldChunkGrid chunkGrid)
Parameters
IsConstructed(Vector2i)
Declaration
public static bool IsConstructed(Vector2i blockPos)
Parameters
Returns
Type |
Description |
System.Boolean |
|
IsLegalVerticalPosition(Vector3)
Checks if position is inside vertical world bounds
Declaration
public static bool IsLegalVerticalPosition(Vector3 pos)
Parameters
Type |
Name |
Description |
System.Numerics.Vector3 |
pos |
|
Returns
Type |
Description |
System.Boolean |
|
IsPathPos(WrappedPosition3i)
Declaration
public static bool IsPathPos(WrappedPosition3i pos)
Parameters
Returns
Type |
Description |
System.Boolean |
|
IsSolidOrOccupied(WrappedWorldPosition3i)
Declaration
public static bool IsSolidOrOccupied(WrappedWorldPosition3i blockPos)
Parameters
Returns
Type |
Description |
System.Boolean |
|
IsTopGround(WrappedPosition3i)
Declaration
public static bool IsTopGround(WrappedPosition3i pos)
Parameters
Returns
Type |
Description |
System.Boolean |
|
IsUnderwater(Vector2i)
Declaration
public static bool IsUnderwater(Vector2i blockPos)
Parameters
Returns
Type |
Description |
System.Boolean |
|
IsUnderwater(WorldPosition3i)
Declaration
public static bool IsUnderwater(WorldPosition3i blockPos)
Parameters
Returns
Type |
Description |
System.Boolean |
|
IsUnderwater(WrappedPosition3i)
Declaration
public static bool IsUnderwater(WrappedPosition3i blockPos)
Parameters
Returns
Type |
Description |
System.Boolean |
|
IsUnderwater(WrappedWorldPosition3i)
Declaration
public static bool IsUnderwater(WrappedWorldPosition3i blockPos)
Parameters
Returns
Type |
Description |
System.Boolean |
|
Lock()
Declaration
public static void Lock()
MaxWaterPos(WorldPosition3i)
Declaration
public static WorldPosition3i MaxWaterPos(WorldPosition3i pos)
Parameters
Returns
MaxYPos(Vector2i)
Declaration
public static Vector3i MaxYPos(Vector2i pos)
Parameters
Returns
MaxYPos(WorldPosition3i)
Declaration
public static WorldPosition3i MaxYPos(WorldPosition3i pos)
Parameters
Returns
NextBlockUp(Vector3i)
Declaration
public static Block NextBlockUp(Vector3i pos)
Parameters
Returns
RandomMapPos()
Declaration
public static Vector3i RandomMapPos()
Returns
RandomMapPos(Random)
Declaration
public static Vector3i RandomMapPos(Random randomizer)
Parameters
Type |
Name |
Description |
System.Random |
randomizer |
|
Returns
ReCacheAllData(Boolean)
Invalidates top block and underwater block caches for every X,Z in the world. It will only trigger cache update events if notify
set to true
.
Declaration
public static void ReCacheAllData(bool notify = true)
Parameters
Type |
Name |
Description |
System.Boolean |
notify |
|
ReCacheColumns(IEnumerable<Vector2i>, Int32, Boolean)
Invalidates all block caches for requested set of chunk column positions (as 2D chunk positions).
Declaration
public static void ReCacheColumns(IEnumerable<Vector2i> chunkPosXZ, int columnsCount, bool notify = true)
Parameters
Type |
Name |
Description |
System.Collections.Generic.IEnumerable<Vector2i> |
chunkPosXZ |
|
System.Int32 |
columnsCount |
|
System.Boolean |
notify |
|
ResetCache()
Declaration
public static void ResetCache()
SetBlock(Type, WrappedWorldPosition3i, PersistentChunk, Object[])
If you know the chunk you can pass it to avoid lookup for better performance
Declaration
public static Block SetBlock(Type blockType, WrappedWorldPosition3i worldPos, PersistentChunk chunk = null, params object[] args)
Parameters
Returns
SetBlock(Type, WrappedWorldPosition3i, Object[])
Declaration
public static Block SetBlock(Type blockType, WrappedWorldPosition3i worldPos, params object[] args)
Parameters
Returns
SetBlock<T>(WrappedWorldPosition3i, PersistentChunk, Object[])
If you know the chunk you can pass it to avoid lookup for better performance
Declaration
public static T SetBlock<T>(WrappedWorldPosition3i worldPos, PersistentChunk chunk = null, params object[] args)
where T : Block
Parameters
Returns
Type Parameters
SetBlock<T>(WrappedWorldPosition3i, Object[])
Declaration
public static T SetBlock<T>(WrappedWorldPosition3i worldPos, params object[] args)
where T : Block
Parameters
Returns
Type Parameters
Unlock()
Declaration
public static void Unlock()
WaterAtTop(Vector2i)
Check the cached water and block heights to see if this position is water at the top block.
Declaration
public static bool WaterAtTop(Vector2i pos)
Parameters
Returns
Type |
Description |
System.Boolean |
|
WorldWrapChunkPos(Vector3i)
Ensures the given ChunkPos is world-wrapped.
Declaration
public static Vector3i WorldWrapChunkPos(Vector3i chunkPos)
Parameters
Returns
XZChunks(Vector2i)
Declaration
public static IEnumerable<PersistentChunk> XZChunks(Vector2i columnPos)
Parameters
Type |
Name |
Description |
Vector2i |
columnPos |
|
Returns