@bloopjs/engine 0.0.42 → 0.0.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -68,5 +68,65 @@ export type WasmEngine = {
68
68
  * Free all memory associated with it
69
69
  */
70
70
  deinit: () => void;
71
+ /**
72
+ * Initialize a multiplayer session with rollback support
73
+ * @param peer_count Number of peers in the session
74
+ * @param user_data_len Size of user data to include in snapshots
75
+ */
76
+ session_init: (peer_count: number, user_data_len: number) => EngineOk;
77
+ /**
78
+ * End the current session
79
+ */
80
+ session_end: () => void;
81
+ /**
82
+ * Emit inputs for a peer at a given match frame
83
+ * @param peer Peer ID (0-indexed)
84
+ * @param match_frame Frame number relative to session start
85
+ * @param events_ptr Pointer to Event array in WASM memory
86
+ * @param events_len Number of events
87
+ */
88
+ session_emit_inputs: (peer: number, match_frame: number, events_ptr: EnginePointer, events_len: number) => void;
89
+ /**
90
+ * Get current match frame (frames since session start)
91
+ */
92
+ get_match_frame: () => number;
93
+ /**
94
+ * Set local peer ID for packet encoding
95
+ */
96
+ session_set_local_peer: (peer_id: number) => void;
97
+ /**
98
+ * Mark a peer as connected for packet management
99
+ */
100
+ session_peer_connect: (peer_id: number) => void;
101
+ /**
102
+ * Mark a peer as disconnected
103
+ */
104
+ session_peer_disconnect: (peer_id: number) => void;
105
+ /**
106
+ * Build an outbound packet for a target peer
107
+ * Call get_outbound_packet() and get_outbound_packet_len() to retrieve the packet
108
+ */
109
+ build_outbound_packet: (target_peer: number) => void;
110
+ /**
111
+ * Get pointer to the outbound packet buffer
112
+ */
113
+ get_outbound_packet: () => EnginePointer;
114
+ /**
115
+ * Get length of the outbound packet
116
+ */
117
+ get_outbound_packet_len: () => number;
118
+ /**
119
+ * Process a received packet
120
+ * @returns 0 on success, error code otherwise
121
+ */
122
+ receive_packet: (ptr: EnginePointer, len: number) => number;
123
+ /**
124
+ * Get seq for a peer (latest frame received from them)
125
+ */
126
+ get_peer_seq: (peer: number) => number;
127
+ /**
128
+ * Get ack for a peer (latest frame they acked from us)
129
+ */
130
+ get_peer_ack: (peer: number) => number;
71
131
  };
72
132
  //# sourceMappingURL=wasmEngine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wasmEngine.d.ts","sourceRoot":"","sources":["../js/wasmEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAExD,MAAM,MAAM,UAAU,GAAG;IACvB,yEAAyE;IACzE,UAAU,EAAE,MAAM,aAAa,CAAC;IAChC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,CAAC;IACvC,IAAI,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAE9C,YAAY,EAAE,MAAM,aAAa,CAAC;IAClC,cAAc,EAAE,MAAM,aAAa,CAAC;IAEpC;;OAEG;IACH,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7B;;OAEG;IACH,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB;;;OAGG;IACH,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B;;OAEG;IACH,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,QAAQ,CAAC;IACpE;;OAEG;IACH,cAAc,EAAE,MAAM,QAAQ,CAAC;IAC/B;;OAEG;IACH,YAAY,EAAE,MAAM,OAAO,CAAC;IAC5B;;OAEG;IACH,YAAY,EAAE,MAAM,OAAO,CAAC;IAG5B,YAAY,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC;IAClE,UAAU,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC;IAChE,cAAc,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC;IAC/E,YAAY,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC;IAC7E,cAAc,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC;IAC1E,eAAe,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC;IAE3E;;OAEG;IACH,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,aAAa,CAAC;IACnD;;OAEG;IACH,OAAO,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IAEtC;;OAEG;IACH,YAAY,EAAE,MAAM,aAAa,CAAC;IAClC;;OAEG;IACH,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B;;OAEG;IACH,SAAS,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,KAAK,QAAQ,CAAC;IAEzD;;;OAGG;IACH,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB,CAAC"}
1
+ {"version":3,"file":"wasmEngine.d.ts","sourceRoot":"","sources":["../js/wasmEngine.ts"],"names":[],"mappings":"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"}
package/js/wasmEngine.ts CHANGED
@@ -76,4 +76,73 @@ export type WasmEngine = {
76
76
  * Free all memory associated with it
77
77
  */
78
78
  deinit: () => void;
79
+
80
+ // Session / Rollback
81
+ /**
82
+ * Initialize a multiplayer session with rollback support
83
+ * @param peer_count Number of peers in the session
84
+ * @param user_data_len Size of user data to include in snapshots
85
+ */
86
+ session_init: (peer_count: number, user_data_len: number) => EngineOk;
87
+ /**
88
+ * End the current session
89
+ */
90
+ session_end: () => void;
91
+ /**
92
+ * Emit inputs for a peer at a given match frame
93
+ * @param peer Peer ID (0-indexed)
94
+ * @param match_frame Frame number relative to session start
95
+ * @param events_ptr Pointer to Event array in WASM memory
96
+ * @param events_len Number of events
97
+ */
98
+ session_emit_inputs: (
99
+ peer: number,
100
+ match_frame: number,
101
+ events_ptr: EnginePointer,
102
+ events_len: number,
103
+ ) => void;
104
+ /**
105
+ * Get current match frame (frames since session start)
106
+ */
107
+ get_match_frame: () => number;
108
+
109
+ // Network / Packets
110
+ /**
111
+ * Set local peer ID for packet encoding
112
+ */
113
+ session_set_local_peer: (peer_id: number) => void;
114
+ /**
115
+ * Mark a peer as connected for packet management
116
+ */
117
+ session_peer_connect: (peer_id: number) => void;
118
+ /**
119
+ * Mark a peer as disconnected
120
+ */
121
+ session_peer_disconnect: (peer_id: number) => void;
122
+ /**
123
+ * Build an outbound packet for a target peer
124
+ * Call get_outbound_packet() and get_outbound_packet_len() to retrieve the packet
125
+ */
126
+ build_outbound_packet: (target_peer: number) => void;
127
+ /**
128
+ * Get pointer to the outbound packet buffer
129
+ */
130
+ get_outbound_packet: () => EnginePointer;
131
+ /**
132
+ * Get length of the outbound packet
133
+ */
134
+ get_outbound_packet_len: () => number;
135
+ /**
136
+ * Process a received packet
137
+ * @returns 0 on success, error code otherwise
138
+ */
139
+ receive_packet: (ptr: EnginePointer, len: number) => number;
140
+ /**
141
+ * Get seq for a peer (latest frame received from them)
142
+ */
143
+ get_peer_seq: (peer: number) => number;
144
+ /**
145
+ * Get ack for a peer (latest frame they acked from us)
146
+ */
147
+ get_peer_ack: (peer: number) => number;
79
148
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bloopjs/engine",
3
- "version": "0.0.42",
3
+ "version": "0.0.44",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",
package/wasm/bloop.wasm CHANGED
Binary file