Package-level declarations

Types

Link copied to clipboard

Extended info blocks which get cached by the client, meaning if an avatar goes from low resolution to high resolution, and the client has a cached buffer of them, unless the server writes a new variant (in the case of a de-synchronization), the client will use the old buffer to restore that block.

Link copied to clipboard
value class CoordGrid(val packed: Int)

Coord grid, commonly referred to just as Coordinate or Location, is responsible for tracking absolute positions of avatars in the game.

Link copied to clipboard
abstract class ExtendedInfo<in T : ExtendedInfo<T, E>, E : ExtendedInfoEncoder<T>>

The abstract extended info class, responsible for holding some information about a specific avatar.

Link copied to clipboard

Transient extended info is for extended info blocks which do not use any caching mechanisms client-sided. This does not, however, mean that no caching occurs at all. Certain extended info blocks are intended to last over several game cycles, such as net.rsprot.protocol.common.game.outgoing.info.shared.extendedinfo.FacePathingEntity, In those cases, this structure is responsible for holding the state necessary to synchronize the avatars later on in the future. If the respective extended info block is then reset to the default value, new avatars should not receive this any more, as the client will also use the default value.

Functions

Link copied to clipboard
fun <T : ExtendedInfo<T, E>, E : PrecomputedExtendedInfoEncoder<T>> T.precompute(allocator: ByteBufAllocator, huffmanCodecProvider: HuffmanCodecProvider)

A function to pre-compute this extended info block. Extended info blocks which do not support pre-computing (meaning they are observer-dependent) will build the buffer on-demand per observer.