KS.Reactor Namespace Reference

Classes

class  BitStreamConstants
 Bit stream constants. Must match MaticalLib/BitStream.h on the server.
 
class  JSONParser
 JSON parser.
 
class  JSONPrinter
 JSON serializer.
 
struct  ksAddress
 Holds host and port More...
 
class  ksAsyncResult
 Handles the tracking and response handling for asynchronous cluster requests. More...
 
class  ksAtomic
 Provides atomic access to a generic type. More...
 
class  ksAtomicDictionary
 Wraps a Dictionary to make all read/write operations thread safe. More...
 
class  ksAtomicHashSet
 Wraps a HashSet to make all read/write operations thread safe. More...
 
class  ksAtomicList
 Wraps a list to make all read/write operations thread safe. More...
 
class  ksAtomicQueue
 Wraps a Queue to make all read/write operations thread safe. More...
 
struct  ksAuthenticationResult
 Authentication result returned by user authentication functions. More...
 
class  ksBaseAssetLoader
 Abstract base class for asset loaders that load and cache ksScriptAssets. More...
 
class  ksBasePhysics
 Base physics class available on client and server. More...
 
class  ksBaseQueryParams
 Base class containing parameters used in all physics queries. More...
 
class  ksBitIStream
 Bit stream writer More...
 
class  ksBitOStream
 Bit stream reader More...
 
struct  ksBounds
 A struct that defines an axis aligned bounding box (AABB). More...
 
interface  ksIBufferable
 Interface required by objects that should be written to, and read from, the ksOutputBuffers and ksInputBufers. More...
 
class  ksInputBuffer
 This input buffer reads data written to a byte array by a ksOutputBuffer. More...
 
class  ksOutputBuffer
 This output buffer converts each written element into one or two byte arrays and adds them to a list. More...
 
class  ksCharacterControllerColliderHit
 This class is used by ksICharacterController.OnColliderHit to give information about the collision. More...
 
class  ksCharacterControllerEvents
 Contains event handler delegates for the character controller. More...
 
class  ksCloneableAttribute
 Tags non-editable fields and properties in server scripts to make them copy when the script is cloned. More...
 
class  ksClusterProperty
 A hierarchy of dictionary objects that store hierarchy-type and value-type cluster properties. More...
 
class  ksClusterRPCAttribute
 Attribute used to mark cluster RPC handlers on room and entity scripts. More...
 
class  ksCollisionFilter
 The collsion filter uses 3 mask properties (Group, Notify, Collide) to determine interaction and notifications during the physics simulation. More...
 
struct  ksColor
 Partial ksColor struct. More...
 
class  ksCompressionConstants
 Defines compression related constants. More...
 
class  ksConstList
 Wraps an IList and provides read-only access to it. More...
 
class  ksConstMap
 Wraps a dictionary and provides read-only access to it. More...
 
class  ksCoroutine
 Wrapper for an IEnumerator function. More...
 
class  ksCoroutineManager
 Store and manage advancement of coroutines. More...
 
class  ksCurve
 Describes a curve defined by keyframes. More...
 
class  ksEditableAttribute
 Tags fields and properties in server scripts with this to expose them to the editor. More...
 
class  ksEntityPhysics
 Properties used by entities which have colliders in the physics system. More...
 
class  ksEvent
 Wraps a C# event for the delegate T to allow event references. More...
 
class  ksEventMap
 A dictionary of events. More...
 
class  ksExceptionHandler
 Exception handlers. More...
 
class  ksFixedDataParser
 A class that parses byte array to uint or struct. More...
 
class  ksFixedDataWriter
 A class that writes uint or struct to a byte array. More...
 
class  ksGroupMaskFilter
 A query filter that looks for colliders that belong to one of the collision groups in the GroupMask. More...
 
class  ksHashSet
 A hash set with an event that fires when the hash set is modified. More...
 
class  ksHierarchyObject
 Templated base class for hierarchy objects that have a parent and list of children of type T. More...
 
interface  ksICharacterController
 Character controller interface. More...
 
interface  ksICollider
 Collider interface used in common scripts that run on server and client More...
 
interface  ksIEntity
 Entity interface that both client and server entities implement. More...
 
class  ksInput
 Class for querying player inputs. More...
 
class  ksInputRegistrar
 Buttons, axes, values, and controllers are registered with an ksInputRegistrar while they are in use so we know which inputs to send over the network. More...
 
interface  ksIQueryFilter
 Interface for query filters that filter colliders from scene queries. More...
 
interface  ksIEntityQueryColliderFilter
 Interface for query collider filters that are used with entity queries to decide which of the entity's colliders to run queries for. More...
 
interface  ksIQueryHitResult
 Interface for ksSweepResult and ksRaycastResult. More...
 
interface  ksIReadOnlyTransform
 Read-only transform interface. More...
 
class  ksReadOnlyTransformExtension
 Extension methods for ksIReadOnlyTransform More...
 
interface  ksIReadOnlyTransform2D
 Read-only 2D transform interface. More...
 
class  ksReadOnlyTransform2DExtension
 Extension methods for ksIReadOnlyTransform2D More...
 
interface  ksIRigidBody
 Interface exposed to player controllers to restrict access to entity physics data. More...
 
interface  ksIRigidBody2D
 Interface exposed to player controllers to restrict access to 2D entity physics data. More...
 
interface  ksIWebRequest
 Web request interface. More...
 
class  ksWebResponse
 ksIWebRequest response ojbect. More...
 
class  ksJSON
 Represents a JSON value and provides methods for serializing/deserializing JSON. More...
 
class  ksLinkedList
 A linked list that can be modified while being iterated. More...
 
class  ksLog
 Static logger class. More...
 
class  ksMath
 Collection of frequently used math algorithms and coversions of Math methods which operate on and return float values. More...
 
class  ksMultiList
 Wraps multiple lists and presents them as one list with read-only access. More...
 
class  ksMultiType
 Wraps a byte array and provides methods for interpreting/serializing/deserializing the data as different types. More...
 
class  ksNoUnityProxyAttribute
 Server scripts tagged with this will not have Unity proxy scripts generated for them. More...
 
class  ksObjectPool
 Static class for configuring object pools. More...
 
class  ksEventSet
 Tracks events in a hashset. More...
 
class  ksOrderedEvents
 Tracks event sets in a sorted dictionary. More...
 
class  ksOverlapParams
 Parameters for overlap queries More...
 
struct  ksOverlapResult
 Result of an overlap scene query. More...
 
interface  ksIPerformanceTimer
 Performance timer interface. More...
 
class  ksPerformanceTimer
 Basic performance timer that tracks time and reports timing statistics. More...
 
class  ksPerlinNoise
 Adaption of the the perlin noise code found at http://adrianb.io/2014/08/09/perlinnoise.html More...
 
class  ksPlayerAPI
 Implementation of the ksPlayerAPI used for player requests. More...
 
class  ksPlayerController
 Base class for player controllers. More...
 
class  ksPropertyMap
 Provides access to ksProperties. More...
 
struct  ksQuaternion
 ksQuaternion struct. More...
 
struct  ksQueryHitResults
 Struct containing touching hits and the blocking hit results from a raycast or sweep query. More...
 
class  ksRandom
 Extends the built-in C# Random class with methods for generating floats, vectors, and quaternions. More...
 
class  ksRange
 Defines a numerical range that wraps around. More...
 
class  ksRaycastParams
 Parameters for raycast queries. More...
 
struct  ksRaycastResult
 Result of an raycast scene query. More...
 
class  ksReflectionUtils
 Reflection utility functions. More...
 
class  ksRenamedFromAttribute
 When you rename ksEditable fields or properties in server scripts, add this tag with the old name to preserve saved values. More...
 
class  ksRoomInfo
 Holds room data that is available without connecting to the room, including data required to connect to the room. More...
 
class  ksRPCAttribute
 Attribute used to mark RPC handlers on room and entity scripts. More...
 
class  ksRPCManager
 Manages the registration, storing and invocation of methods tagged with ksRPCAttributes. More...
 
class  ksScript
 Base class for Reactor scripts. More...
 
class  ksScriptAsset
 Base class for scripts that can be loaded from assets. More...
 
class  ksScriptList
 A templated list of scripts. More...
 
class  ksServerAPI
 Implementation for the KSPlayerAPI calls made with server credentials. More...
 
class  ksShape
 A base class of the shapes used in the scene queries. More...
 
class  ksSphere
 Sphere. More...
 
class  ksBox
 Box. More...
 
class  ksCapsule
 Capsule. More...
 
class  ksSharedDataAttribute
 Server scripts tagged with this will not have their editable field data stripped from their proxy scripts in client builds. More...
 
class  ksSimulationFilter
 A query filter that uses the query collider's collision filter rules. More...
 
class  ksStreamBuffer
 Manages a buffer for reading and writing stream data toa byte array. More...
 
class  ksSweepParams
 
struct  ksSweepResult
 Result of a sweep scene query. More...
 
class  ksSweepSlideParams
 Paramters for sweep-and-slide movement. More...
 
class  ksTime
 Holds time data that is common to the client and server. More...
 
class  ksTransform
 Transform with methods for moving entities. More...
 
class  ksTransform2D
 Transform with methods for moving entities in 2 dimensions. More...
 
class  ksUnityTagAttribute
 Tag server fields, properties, classes or structs to add arbitrary Unity tags to their generated proxies. More...
 
struct  ksVector2
 Vector2 struct. More...
 
struct  ksVector3
 ksVector3 struct. More...
 
class  ksWebRequest
 Asynchronous web request class using HTTP Web Request. More...
 
class  MultiTypeSerializer
 A class that serializes/deserializes the multi type. More...
 
class  PreserveAttribute
 Prevents whatever it tags from being stripped from IL2CPP builds.
 
class  RingBuffer
 A fixed-size ring buffer.
 
class  UnityProxyAttribute
 Server scripts tagged with this will not have Unity proxy scripts generated for them and will use Name as the proxy class.
 

Typedefs

using Types = ksJSON.Types
 
using Literals = ksJSON.Literals
 

Enumerations

enum class  ksQueryFlags : ushort {
  STATIC = 1 << 0 , DYNAMIC = 1 << 1 , EXCLUDE_OVERLAPS = 1 << 3 , NO_BLOCK = 1 << 5 ,
  EXCLUDE_TOUCHES = 1 << 6 , USE_DISABLED_COLLIDERS = 1 << 7 , DEFAULT = STATIC | DYNAMIC | EXCLUDE_OVERLAPS , PHYS_X_FLAGS = (1 << 6) - 1
}
 Additional flags used to filter physic scene queries. More...
 
enum class  ksQueryTypes { RAYCAST = 0 , OVERLAP = 1 , SWEEP = 2 }
 Types of queries More...
 
enum class  ksQueryObjectTypes { NONE = 0 , SHAPE = 1 , COLLIDER = 2 , ENTITY = 3 }
 Types of query objects More...
 
enum class  ksCharacterControllerCollisionFlags { NONE = 0 , SIDES = 1 , ABOVE = 2 , BELOW = 4 }
 Collision flags is a bitmask returned by character controller's Move method. More...
 
enum class  ksConnectionProtocols : byte { TCP = 0 , WEBSOCKETS = 1 , RUDP = 2 , DIRECT = 3 }
 Supported network protocols More...
 
enum class  ksConnectionStates {
  NOT_CONNECTED , CONNECTING , HANDSHAKE , VALIDATING_MODEL ,
  AUTHENTICATING , CONNECTED , DISCONNECTING , DISCONNECTED ,
  ABORTING
}
 Connection states More...
 
enum class  ksQueryHitTypes { NONE = 0 , TOUCH = 1 , BLOCK = 2 }
 Types of hits. More...
 
enum class  ksQueryResultTypes { ANY = 0 , NEAREST = 1 , MULTIPLE = 2 }
 Type of results the query will return. More...
 
enum class  ksRigidBodyModes { DEFAULT = -1 , RIGID_BODY_3D = 0 , RIGID_BODY_2D = 1 }
 Rigid body modes. More...
 
enum class  ksForceMode : byte { FORCE = 0 , IMPULSE = 1 , ACCELERATION = 2 , VELOCITY = 3 }
 Determines how forces are applied. More...
 
enum class  ksRigidBodyConstraints : byte {
  FREEZE_POSITION_X = 1 << 1 , FREEZE_POSITION_Y = 1 << 2 , FREEZE_POSITION_Z = 1 << 3 , FREEZE_ROTATION_X = 1 << 4 ,
  FREEZE_ROTATION_Y = 1 << 5 , FREEZE_ROTATION_Z = 1 << 6 , NONE = 0 , FREEZE_POSITION = FREEZE_POSITION_X | FREEZE_POSITION_Y | FREEZE_POSITION_Z ,
  FREEZE_ROTATION = FREEZE_ROTATION_X | FREEZE_ROTATION_Y | FREEZE_ROTATION_Z , FREEZE_ALL = FREEZE_POSITION | FREEZE_ROTATION
}
 Use these flags to constrain motion of rigidbodies. ksIRigidBody.Constraints More...
 
enum class  ksRigidBody2DConstraints : byte {
  FREEZE_POSITION_X = ksRigidBodyConstraints.FREEZE_POSITION_X , FREEZE_POSITION_Y = ksRigidBodyConstraints.FREEZE_POSITION_Y , FREEZE_ROTATION = ksRigidBodyConstraints.FREEZE_ROTATION_Z , NONE = 0 ,
  FREEZE_POSITION = FREEZE_POSITION_X | FREEZE_POSITION_Y , FREEZE_ALL = FREEZE_POSITION | FREEZE_ROTATION
}
 Use these flags to constrain motion of rigidbodies. More...
 

Functions

delegate void ksAsyncResultHandler (ksAsyncResult asyncResult)
 Delegate for cluster requests that return no results. More...
 
delegate void ksAsyncResultHandler< T > (ksAsyncResult< T > asyncResult)
 Delegate for cluster requests that return object results. More...
 
delegate ksIWebRequest ksIWebRequestFactory (string url, WebHeaderCollection headers=null, string method=null, ksJSON request=null, object stateObject=null)
 Factory for creating a ksIWebRequest. More...
 

Enumeration Type Documentation

◆ ksCharacterControllerCollisionFlags

Collision flags is a bitmask returned by character controller's Move method.

Enumerator
NONE 

No collisions detected.

SIDES 

Collision detected on the side of the character controller.

ABOVE 

Collision detected on the top of the character controller.

BELOW 

Collision detected on the bottom of the character controller.

◆ ksConnectionProtocols

Supported network protocols

Enumerator
TCP 

TCP

WEBSOCKETS 

Web Sockets

RUDP 

Reliable UDP

DIRECT 

Direct connection to embedded server.

◆ ksConnectionStates

Connection states

Enumerator
NOT_CONNECTED 

No connection has been attempted.

CONNECTING 

Establishing a connection to the server.

HANDSHAKE 

Exchanging room configuration.

VALIDATING_MODEL 

Exchanging model data.

AUTHENTICATING 

Authenticating player.

CONNECTED 

Sending/Receiving game state and RPCs.

DISCONNECTING 

Non-immediate disconnection in progress.

DISCONNECTED 

Disconnected

ABORTING 

Aborting a connection attempt.

◆ ksForceMode

enum KS.Reactor.ksForceMode : byte
strong

Determines how forces are applied.

Enumerator
FORCE 

Add a continuous force, using mass.

IMPULSE 

Add an instant impulse, using mass.

ACCELERATION 

Add a continuous acceleration, ignoring mass.

VELOCITY 

Add an instant velocity, ignoring mass.

◆ ksQueryFlags

enum KS.Reactor.ksQueryFlags : ushort
strong

Additional flags used to filter physic scene queries.

Enumerator
STATIC 

Test static entities.

DYNAMIC 

Test dynamic and kinematic entities.

EXCLUDE_OVERLAPS 

Exclude results that start overlapping. Ignored for overlap queries.

NO_BLOCK 

Blocking hits will not stop the query.

EXCLUDE_TOUCHES 

Exclude touching hits from results.

USE_DISABLED_COLLIDERS 

Use disabled colliders from the query entity in entity or collider queries.

Does nothing for shape queries. This will not return hits with disabled colliders in the results.

DEFAULT 

Return all static and dynamic entity hits and exclude initial overlaps.

PHYS_X_FLAGS 

Bitmask of flags that are defined in PhysX.

◆ ksQueryHitTypes

Types of hits.

Enumerator
NONE 

Ignore the hit.

TOUCH 

Include the hit without blocking further hits.

BLOCK 

Include the hit and block further hits (does not block overlap queries).

◆ ksQueryObjectTypes

Types of query objects

◆ ksQueryResultTypes

Type of results the query will return.

Enumerator
ANY 

The query will return any blocking hit.

NEAREST 

The query will return the nearest blocking hit.

MULTIPLE 

The query will return the nearest blocking hit and any touching hits before the nearest blocking hit.

◆ ksQueryTypes

Types of queries

◆ ksRigidBody2DConstraints

Use these flags to constrain motion of rigidbodies.

◆ ksRigidBodyConstraints

Use these flags to constrain motion of rigidbodies. ksIRigidBody.Constraints

Enumerator
FREEZE_POSITION_X 

Freeze translations along the X axis.

FREEZE_POSITION_Y 

Freeze translations along the Y axis.

FREEZE_POSITION_Z 

Freeze translations along the Z axis.

FREEZE_ROTATION_X 

Freeze rotations around the X axis.

FREEZE_ROTATION_Y 

Freeze rotations around the Y axis.

FREEZE_ROTATION_Z 

Freeze rotations around the Z axis.

NONE 

Do not freeze any translation or rotation.

FREEZE_POSITION 

Freeze all translations.

FREEZE_ROTATION 

Freeze all rotations.

FREEZE_ALL 

Freeze all translation and rotation.

◆ ksRigidBodyModes

Rigid body modes.

Enumerator
DEFAULT 

Use the default mode.

RIGID_BODY_3D 

3D rigid body.

RIGID_BODY_2D 

2D rigid body.

Function Documentation

◆ ksAsyncResultHandler()

delegate void KS.Reactor.ksAsyncResultHandler ( ksAsyncResult  asyncResult)

Delegate for cluster requests that return no results.

Parameters
asyncResultAsync result object.

◆ ksAsyncResultHandler< T >()

delegate void KS.Reactor.ksAsyncResultHandler< T > ( ksAsyncResult< T >  asyncResult)

Delegate for cluster requests that return object results.

Template Parameters
T
Parameters
asyncResultAsync result object with result of type T.
Type Constraints
T :class 

◆ ksIWebRequestFactory()

delegate ksIWebRequest KS.Reactor.ksIWebRequestFactory ( string  url,
WebHeaderCollection  headers = null,
string  method = null,
ksJSON  request = null,
object  stateObject = null 
)

Factory for creating a ksIWebRequest.

Parameters
urlURL.
headersHeader collection.
methodRequest method (default GET).
requestJSON request data.
stateObjectUser defined state tracking object.
Returns