public Librg(Mode mode, ushort tickDelay, Vector3 worldSize, uint maxEntities) { ctx = new librg_ctx_t(); ctx.mode = (UInt16)mode; ctx.max_entities = maxEntities; ctx.tick_delay = tickDelay; ctx.world_size = worldSize; native.librg_init(ref ctx); }
[DllImport(DLL_PATH)] public static extern librg_entity_blob_t *librg_entity_blob(ref librg_ctx_t ctx, UInt32 entity);
[DllImport(DLL_PATH)] public static extern UInt32 librg_entity_type(ref librg_ctx_t ctx, UInt32 entity);
[DllImport(DLL_PATH)] public static extern bool librg_is_server(ref librg_ctx_t ctx);
[DllImport(DLL_PATH)] public static extern void librg_entity_iterate(ref librg_ctx_t ctx, UInt64 flags, librg_entity_cb callback);
[DllImport(DLL_PATH)] public static extern librg_peer_t *librg_entity_control_get(ref librg_ctx_t ctx, UInt32 entity);
[DllImport(DLL_PATH)] public static extern bool librg_entity_visibility_get_for(ref librg_ctx_t ctx, UInt32 entity, UInt32 target);
[DllImport(DLL_PATH)] public static extern UInt32 librg_entity_find(ref librg_ctx_t ctx, ref librg_peer_t peer);
[DllImport(DLL_PATH)] public static extern void librg_message_send_to(ref librg_ctx_t ctx, UInt16 id, ref librg_peer_t peer, void *data, UIntPtr size);
[DllImport(DLL_PATH)] public static extern void librg_network_remove(ref librg_ctx_t ctx, UInt16 id);
[DllImport(DLL_PATH)] public static extern void librg_network_add(ref librg_ctx_t ctx, UInt16 id, librg_message_cb callback);
[DllImport(DLL_PATH)] public static extern void librg_network_stop(ref librg_ctx_t ctx);
[DllImport(DLL_PATH)] public static extern void librg_network_start(ref librg_ctx_t ctx, librg_address_t address);
[DllImport(DLL_PATH)] public static extern bool librg_is_connected(ref librg_ctx_t ctx);
[DllImport(DLL_PATH)] public static extern bool librg_is_client(ref librg_ctx_t ctx);
[DllImport(DLL_PATH)] public static extern void librg_entity_destroy(ref librg_ctx_t ctx, UInt32 entity);
[DllImport(DLL_PATH)] public static extern UIntPtr librg_entity_query(ref librg_ctx_t ctx, UInt32 entity, UInt32 **result);
[DllImport(DLL_PATH)] public static extern void librg_message_send_instream_except(ref librg_ctx_t ctx, UInt16 id, UInt32 entity, ref librg_peer_t peer, void *data, UIntPtr size);
[DllImport(DLL_PATH)] public static extern void librg_entity_visibility_set_for(ref librg_ctx_t ctx, UInt32 entity, UInt32 target, bool state);
[DllImport(DLL_PATH)] public static extern UInt64 librg_event_add(ref librg_ctx_t ctx, UInt64 id, librg_event_cb callback);
[DllImport(DLL_PATH)] public static extern void librg_entity_control_set(ref librg_ctx_t ctx, UInt32 entity, ref librg_peer_t peer);
[DllImport(DLL_PATH)] public static extern void librg_event_trigger(ref librg_ctx_t ctx, UInt64 id, ref librg_event_t evt);
[DllImport(DLL_PATH)] public static extern void librg_entity_control_remove(ref librg_ctx_t ctx, UInt32 entity);
[DllImport(DLL_PATH)] public static extern void librg_event_remove(ref librg_ctx_t ctx, UInt64 id, UInt64 index);
[DllImport(DLL_PATH)] public static extern bool librg_entity_valid(ref librg_ctx_t ctx, UInt32 entity);
[DllImport(DLL_PATH)] public static extern void librg_tick(ref librg_ctx_t ctx);