KS.Reactor
Namespaces
Classes
Holds index and value data used when iterating an atomic list.
JSON literals
Represents a segment of a ksStreamBuffer. While a segment is not released, the buffer cannot be written to or released.
Player session information with implementation of the API requests that require an authenticated player.
Player session information use for validation and player tracking.
Handles the tracking and response handling for asynchronous cluster requests that return results.
Handles the tracking and response handling for asynchronous cluster requests.
Provides atomic access to a generic type.
ksAtomicDictionary<Key, Value>
Wraps a Dictionary to make all read/write operations thread safe.
Wraps a HashSet to make all read/write operations thread safe.
Wraps a list to make all read/write operations thread safe.
Wraps a Queue to make all read/write operations thread safe.
Abstract base class for asset loaders that load and cache ksScriptAssets.
Base physics class available on client and server.
Base class containing parameters used in all physics queries.
Bit stream reader
Bit stream writer
Reads bit-packed data from a ksStreamBuffer that was written using a ksBitWriter.
Writes bit-packed data to a ksStreamBuffer. When you are done writing all your data, you must call Flush to ensure the last byte of data is written. Read the data using a ksBitReader.
Box.
Capsule.
ksCharacterControllerColliderHit
This class is used by OnColliderHit to give information about the collision.
Contains event handler delegates for the character controller.
Tags non-editable fields and properties in server scripts to make them copy when the script is cloned.
A hierarchy of dictionary objects that store hierarchy-type and value-type cluster properties. Properties can be accessed from any level of the property hierarchy by providing a path (a list of keys joined by the path separator '.')
Attribute used to mark cluster RPC handlers on room and entity scripts.
The collsion filter uses 3 mask properties (Group, Notify, Collide) to determine interaction and notifications during the physics simulation. This class is immutable.
Defines compression related constants.
Wraps an IList and provides read-only access to it.
Wraps a dictionary and provides read-only access to it.
Wrapper for an IEnumerator function. Each update frame, KSCoroutines started on a script will advance to the next return yield statement.
Store and manage advancement of coroutines.
Predefined Coroutines Sleep Wait
Describes a curve defined by keyframes. Each key frame contains information to create two points of a cubic Bezier curve. For a given segement between keyframe k0 and k1 the bezier points are defined to be 0, k0.Value), (k0.OutWeight, k0.OutTangent * t * k0.OutWeight + k0.Value), (1 - k1.InWeight, -k1.InTangent * t * k1.InWeight + k0.Value), (1, k1.Value) where t is k1.time - k0.time
Tags fields and properties in server scripts with this to expose them to the editor.
Wraps a C# event for the delegate T to allow event references.
Wraps a C# event for the delegate T to allow event references.
A dictionary of events. Example Usage:
// Add an event handl map[key] += handler;
// Remove an event ha map[key] -= handler;
A dictionary of events. Example Usage:
// Add an event handl map[key] += handler;
// Remove an event ha map[key] -= handler;
Tracks events in a hashset.
Exception handlers.
A class that parses byte array to uint or struct.
A class that writes uint or struct to a byte array.
A query filter that looks for colliders that belong to one of the collision groups in the GroupMask. All hits TOUCH.
A hash set with an event that fires when the hash set is modified.
Templated base class for hierarchy objects that have a parent and list of children of type T. There is also a non-templated variant of ksHierarchyObject.
Non-templated base class for hierarchy objects with a parent and children. There is also a templated variant that enforces all objects in the hierarchy derive the templated type.
Class for querying player inputs.
This input buffer reads data written to a byte array by a ksOutputBuffer.
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.
Represents a JSON value and provides methods for serializing/deserializing JSON. Unlike standard JSON, this implementation differentiates between floats and ints and supports NaN, infinity, and negative infinity. Ints are stored as 64 bit longs.
A linked list that can be modified while being iterated.
Static logger class. Log messages have a level and a channel string that can be used to filter log messages. Channels can have parent channels. Any message a channel receives will also be sent to all of it's parent channels. Channels are seperated by ".", with children channel following parents. All channels are children of the root channel. If a non-string object is passed as channel parameter T to a log function, the channel string will be [namespace.classname]. Example: ksLog.Info("X.Y", "This message will be received by channels 'X.Y', 'X', and 'Root');
Collection of frequently used math algorithms and coversions of Math methods which operate on and return float values.
Wraps multiple lists and presents them as one list with read-only access.
Server scripts tagged with this will not have Unity proxy scripts generated for them.
Static class for configuring object pools.
An object pool that constructs new objects using the default constructor or a factory delegate.
Tracks events in a sorted dictionary.
This output buffer converts each written element into one or two byte arrays and adds them to a list. When the output is requested, by calls to GetBytes() or Flush(), the list of byte arrays is copied to a single byte array. This approach is significatly faster for large amounts of data when compared to using memory streams or resizing an array for each write operation.
Parameters for overlap queries
Basic performance timer that tracks time and reports timing statistics.
Adaption of the the perlin noise code found at http://adrianb.io/2014/08/09/perlinnoise.html
Implementation of the ksPlayerAPI used for player requests.
Base class for player controllers. Player controllers allow you to write one class that runs on both the client and the server for controlling entity movement using player inputs. The server uses it for authoritative movement, and the client uses it for prediction/latency masking.
Cache mapping player controller types to controller prefabs.
Provides access to ksProperties.
Attribute used to mark RPC handlers on room and entity scripts.
Manages the registration, storing and invocation of methods tagged with ksRPCAttributes.
Extends the built-in C# Random class with methods for generating floats, vectors, and quaternions.
Defines a numerical range that wraps around.
Parameters for raycast queries.
ksReadOnlyTransform2DExtension
Extension methods for ksIReadOnlyTransform2D
Extension methods for ksIReadOnlyTransform
Read-only transform data.
Reflection utility functions.
When you rename ksEditable fields or properties in server scripts, add this tag with the old name to preserve saved values.
Holds room data that is available without connecting to the room, including data required to connect to the room.
Base class for Reactor scripts.
Base class for scripts that can be loaded from assets.
A templated list of scripts.
Implementation for the KSPlayerAPI calls made with server credentials.
A base class of the shapes used in the scene queries.
Server scripts tagged with this will not have their editable field data stripped from their proxy scripts in client builds. This tag applies to all derived scripts.
A query filter that uses the query collider's collision filter rules. Use this with entity queries to use the entity's colliders' collision filters as the filter. Colliders that collide with the query collider will BLOCK, and colliders that do not collide but do belong to one of the query collider's notify groups will TOUCH. Excludes non-trigger non-simulation colliders from results. Cannot be used for shape queries or raycasts.
This also implements ksIEntityQueryColliderFilter. Set this as the EntityColliderFilter for entity queries to exclude the entity's non-trigger non-simulation colliders from being queried.
Parameters for spawning entities.
Parameters for spawning entities with 2D transform values.
Sphere.
Manages a buffer for reading and writing stream data to a byte array.
Paramters for sweep-and-slide movement. When a sweep hits something, the remaining movement vector is projected onto the plane perpendicuar to the surface normal to get a new movement vector which is used to sweep recursively.
Holds time data that is common to the client and server.
Transform with methods for moving entities. Their are two kinds of movement: teleportation and moving. Moving will test for collisions along the way and teleportation will not. If you make more than one move call in a frame, the collision check will be along a straight path from the position at the start of the frame to the end position. You cannot do a move and a teleport in the same frame. If you make both calls the entity will teleport.
Transform with methods for moving entities in 2 dimensions. There are two kinds of movement: teleportation and moving. Moving will test for collisions along the way and teleportation will not. If you make more than one move call in a frame, the collision check will be along a straight path from the position at the start of the frame to the end position. You cannot do a move and a teleport in the same frame. If you make both calls the entity will teleport.
Transform data.
Wraps a ksTransformState and provides a 2D view of the data.
Tag server fields, properties, classes or structs to add arbitrary Unity tags to their generated proxies. Fields and properties tagged with this attribute will be editable in the inspector even if they aren't tagged with ksEditableAttribute. Note that if Tag is not valid code, it will generate proxies that have compiler errors.
Asynchronous web request class using HTTP Web Request.
ksIWebRequest response ojbect.
Structs
Key frame data use to determine Bezier points.
Holds host and port
Authentication result returned by user authentication functions. Authentication passes if Code is zero. If there are multiple authentication functions, if any of them return a non-zero code, authentication fails.
A struct that defines an axis aligned bounding box (AABB).
Partial ksColor struct. This part is the major part that contains members that does not depend on UnityEngine.
An entity id uint with type information. The type can be a server entity id or a temporary spawn id that players use to identify entities they spawned before the server confirms the spawn and sends the server entity id. Internally the id is just a uint and the type is determined by which bits are set. If the highest bit is set, it's a temporary spawn id, otherwise it's a server entity id, unless the value is zero in which case it is invalid. Temporary spawn ids are not enough to identify an entity on the server; the id of the player who spawned the entity is also needed.
A union struct that can hold most primitive types, vectors, strings, and arrays. See Types for the supported types.
Result of an overlap scene query.
ksQuaternion struct.
Struct containing touching hits and the blocking hit results from a raycast or sweep query.
Result of an raycast scene query.
Result of a sweep scene query.
Vector2 struct.
Vector struct with 2 integers.
ksVector3 struct.
Vector struct with 3 integers.
Interfaces
ksScript<Parent, Script>.IInternals
Internal interface. These members are hidden unless the class is cast to this interface.
Interface required by objects that should be written to, and read from, the ksOutputBuffers and ksInputBufers.
Character controller interface.
Collider interface used in common scripts that run on server and client
Entity interface that both client and server entities implement.
Interface for query collider filters that are used with entity queries to decide which of the entity's colliders to run queries for.
Interface for events used with ksEventMap%602.
Performance timer interface.
Interface for query filters that filter colliders from scene queries.
Interface for ksSweepResult and ksRaycastResult.
Read-only transform interface.
Read-only 2D transform interface.
Interface exposed to player controllers to restrict access to entity physics data.
Interface exposed to player controllers to restrict access to 2D entity physics data.
Interface for objects that can be written to or read from a ksStreamBuffer.
Web request interface.
Enums
Types of actions to perform on cluster properties. Used by the property event handlers.
Axis used for revolute shapes (capsule, cylinder, cones).
ksSweepSlideParams.CallbackStates
Enum passed to CollideCallback to indicate if there will be a new sweep, or the reason there will not be another sweep.
Delete cache enum.
Recognized device types.
ksReadOnlyTransformState.DirtyFlag
Dirty flags
Affects how the keyframes are used when evaluating a curve.
Legacy types from Reactor 1.0.3 and earlier.
Log levels.
Read cache enum.
Room load state.
Scale modes
Support shapes for scene queries.
Timer states
Id types
Types that can be stored in the ksMultiType.
JSON value types.
Affects how the curve is evaluated when the time falls outside the curve duration.
Write cache enum.
ksCharacterControllerCollisionFlags
Collision flags is a bitmask returned by character controller's Move method.
Supported network protocols
Connection states
Determines how forces are applied.
Flags that determine what permissions the player who owns an entity has.
Additional flags used to filter physic scene queries.
Types of hits.
Types of query objects
Type of results the query will return.
Types of queries
Use these flags to constrain motion of rigidbodies.
Use these flags to constrain motion of rigidbodies. Constraints
Rigid body modes.
Delegates
ksSweepSlideParams.CollideHandler
Callback for when the sweep hits something.
ksCharacterControllerEvents.ColliderHitHandler
Character controller collider hit event handler.
ksCoroutineManager.CoroutineCallback
Callback invoked when the coroutine manager processes ksCoroutine.
ksBasePhysics.DepenetrateCallback
Depenetration callback for Depenetrate
ksExceptionHandler.ExceptionHandler
Exception handler.
ksAtomicDictionary<Key, Value>.Factory
Factory delegate for creating a Value.
Creates a new instance for the pool.
ksOrderedEventMap<E>.ForEachCallback
ksHierarchyObject<T>.ForEachCallback
Callback for depth-first searches.
Iterator callback used with ForEach
ksAtomicList<T>.ForEachCallback
Iteration callback.
ksAtomicHashSet<T>.ForEachCallback
Callback used when iterating all elements using ForEach
ksAtomicDictionary<Key, Value>.ForEachCallback
For each callback.
ksEvent<E, T>.ForEachCancellableCallback
Iterator callback that can cancel iteration by returning false.
Generic callback with no return data.
Generic callback with no return data.
ksIWebRequest response handler
Delegate for logging a message.
Callback for all login requests.
Handler for on modify events.
Set that was modified.
ksWebRequest.OnCompleteCallback
Callback for completed web requests.
Web request handler for API calls.
Web request handler for API calls.
ksCoroutineManager.WaitCallback
Callback used with Wait.
Delegate for cluster requests that return no results.
Delegate for cluster requests that return object results.
Factory for creating a ksIWebRequest.
Last updated

