Show / Hide Table of Contents

Interface IMyStorage

ModAPI interface giving access to voxel functions

Namespace: VRage.ModAPI
Assembly: VRage.Game.dll
Syntax
public interface IMyStorage

Properties

Closed

Returns true if voxel storage was closed

Declaration
bool Closed { get; }
Property Value
Type Description
System.Boolean

DeleteSupported

Returns if deletion is supported

Declaration
bool DeleteSupported { get; }
Property Value
Type Description
System.Boolean

MarkedForClose

Returns true if the voxel storage is marked for a pending close

Declaration
bool MarkedForClose { get; }
Property Value
Type Description
System.Boolean

Size

The size of the voxel storage, in voxel coordinates

Declaration
Vector3I Size { get; }
Property Value
Type Description
Vector3I

Methods

DeleteRange(MyStorageDataTypeFlags, Vector3I, Vector3I, Boolean)

Deletes content in cache and storage

Declaration
void DeleteRange(MyStorageDataTypeFlags dataToWrite, Vector3I voxelRangeMin, Vector3I voxelRangeMax, bool notify)
Parameters
Type Name Description
MyStorageDataTypeFlags dataToWrite

Content to delete

Vector3I voxelRangeMin

From (Inclusive)

Vector3I voxelRangeMax

To (Inclusive)

System.Boolean notify

Notify that range changed

ExecuteOperationFast<TVoxelOperator>(ref TVoxelOperator, MyStorageDataTypeFlags, ref Vector3I, ref Vector3I, Boolean)

Performs in-place voxel operation

Declaration
void ExecuteOperationFast<TVoxelOperator>(ref TVoxelOperator voxelOperator, MyStorageDataTypeFlags dataToWrite, ref Vector3I voxelRangeMin, ref Vector3I voxelRangeMax, bool notifyRangeChanged)
    where TVoxelOperator : struct, IVoxelOperator, ValueType
Parameters
Type Name Description
TVoxelOperator voxelOperator

Function to be called over voxels

MyStorageDataTypeFlags dataToWrite

Content to operate with

Vector3I voxelRangeMin

From (Inclusive)

Vector3I voxelRangeMax

To (Inclusive)

System.Boolean notifyRangeChanged

Notify that range changed

Type Parameters
Name Description
TVoxelOperator

Function to be called over voxels

Intersect(ref BoundingBox, Boolean)

Returns the intersection with the storage region

Declaration
ContainmentType Intersect(ref BoundingBox box, bool lazy)
Parameters
Type Name Description
BoundingBox box

Position in local coordinates

System.Boolean lazy

When true, you get less detailed results

Returns
Type Description
ContainmentType

Containment type

Intersect(ref LineD)

Returns true if the specific line intersects the storage region

Declaration
bool Intersect(ref LineD line)
Parameters
Type Name Description
LineD line

Line in local coordinates

Returns
Type Description
System.Boolean

True if line intersects

NotifyRangeChanged(ref Vector3I, ref Vector3I, MyStorageDataTypeFlags)

Notify that range changed

Declaration
void NotifyRangeChanged(ref Vector3I voxelRangeMin, ref Vector3I voxelRangeMax, MyStorageDataTypeFlags dataChanged)
Parameters
Type Name Description
Vector3I voxelRangeMin

From (Inclusive)

Vector3I voxelRangeMax

To (Inclusive)

MyStorageDataTypeFlags dataChanged

Content that changed

OverwriteAllMaterials(Byte)

Replaces all materials in range with the specific material

Declaration
void OverwriteAllMaterials(byte materialIndex)
Parameters
Type Name Description
System.Byte materialIndex

PinAndExecute(Action)

Pins the voxel storage to prevent closing, then executes specified action. Unpins when action completes.

Declaration
void PinAndExecute(Action action)
Parameters
Type Name Description
System.Action action

Action to execute

PinAndExecute(Action<IMyStorage>)

Pins the voxel storage to prevent closing, then executes specified action. Unpins when action completes.

Declaration
void PinAndExecute(Action<IMyStorage> action)
Parameters
Type Name Description
System.Action<IMyStorage> action

Action to execute

ReadRange(MyStorageData, MyStorageDataTypeFlags, Int32, Vector3I, Vector3I)

Reads range of content and/or materials from specified LOD. If you want to write data back later, you must read LOD0 as that is the only writable one.

Declaration
void ReadRange(MyStorageData target, MyStorageDataTypeFlags dataToRead, int lodIndex, Vector3I lodVoxelRangeMin, Vector3I lodVoxelRangeMax)
Parameters
Type Name Description
MyStorageData target

Source from where to read data

MyStorageDataTypeFlags dataToRead

Content to read

System.Int32 lodIndex

Level of detail. 0 - most detailed

Vector3I lodVoxelRangeMin

From (Inclusive)

Vector3I lodVoxelRangeMax

To (Inclusive)

ReadRange(MyStorageData, MyStorageDataTypeFlags, Int32, Vector3I, Vector3I, ref MyVoxelRequestFlags)

Reads range of content and/or materials from specified LOD. If you want to write data back later, you must read LOD0 as that is the only writable one.

Declaration
void ReadRange(MyStorageData target, MyStorageDataTypeFlags dataToRead, int lodIndex, Vector3I lodVoxelRangeMin, Vector3I lodVoxelRangeMax, ref MyVoxelRequestFlags requestFlags)
Parameters
Type Name Description
MyStorageData target
MyStorageDataTypeFlags dataToRead
System.Int32 lodIndex
Vector3I lodVoxelRangeMin
Vector3I lodVoxelRangeMax
MyVoxelRequestFlags requestFlags

Reset(MyStorageDataTypeFlags)

Resets the data specified by flags to values from data provider, or default if no provider is assigned.

Declaration
void Reset(MyStorageDataTypeFlags dataToReset)
Parameters
Type Name Description
MyStorageDataTypeFlags dataToReset

Content that should be read from disk

Save(out Byte[])

Gets compressed voxel data

Declaration
void Save(out byte[] outCompressedData)
Parameters
Type Name Description
System.Byte[] outCompressedData

WriteRange(MyStorageData, MyStorageDataTypeFlags, Vector3I, Vector3I, Boolean, Boolean)

Writes range of content and/or materials from cache to storage. Note that this can only write to LOD0 (higher LODs must be computed based on that).

Declaration
void WriteRange(MyStorageData source, MyStorageDataTypeFlags dataToWrite, Vector3I voxelRangeMin, Vector3I voxelRangeMax, bool notify = true, bool skipCache = false)
Parameters
Type Name Description
MyStorageData source
MyStorageDataTypeFlags dataToWrite
Vector3I voxelRangeMin

From (Inclusive)

Vector3I voxelRangeMax

To (Inclusive)

System.Boolean notify

Notify that range changed

System.Boolean skipCache

Skips cache

☀
☾
In This Article
Back to top
Generated by DocFX
☀
☾