From 406eb2c33eb1cda21c6fdce60c580f5b575b8785 Mon Sep 17 00:00:00 2001 From: wizjany Date: Wed, 3 Jun 2026 08:37:13 -0400 Subject: [PATCH 1/3] Add spacetimedb package and prism bindings. --- package-lock.json | 161 +++++++++++++++- package.json | 3 +- src/relay-bindings/enemy_location_table.ts | 19 ++ src/relay-bindings/index.ts | 182 ++++++++++++++++++ src/relay-bindings/player_location_table.ts | 18 ++ src/relay-bindings/player_state_table.ts | 18 ++ src/relay-bindings/resource_location_table.ts | 19 ++ src/relay-bindings/types.ts | 46 +++++ src/relay-bindings/types/procedures.ts | 10 + src/relay-bindings/types/reducers.ts | 8 + 10 files changed, 477 insertions(+), 7 deletions(-) create mode 100644 src/relay-bindings/enemy_location_table.ts create mode 100644 src/relay-bindings/index.ts create mode 100644 src/relay-bindings/player_location_table.ts create mode 100644 src/relay-bindings/player_state_table.ts create mode 100644 src/relay-bindings/resource_location_table.ts create mode 100644 src/relay-bindings/types.ts create mode 100644 src/relay-bindings/types/procedures.ts create mode 100644 src/relay-bindings/types/reducers.ts diff --git a/package-lock.json b/package-lock.json index 468cb896..f649d2be 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,8 @@ "@lucide/svelte": "^0.564.0", "@types/leaflet.markercluster": "^1.5.6", "leaflet": "^1.9.4", - "leaflet.markercluster": "^1.5.3" + "leaflet.markercluster": "^1.5.3", + "spacetimedb": "^2.3.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^7.0.0", @@ -2140,6 +2141,26 @@ "node": ">= 0.4" } }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/blake3-wasm": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz", @@ -2331,6 +2352,12 @@ "dev": true, "license": "ISC" }, + "node_modules/headers-polyfill": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-4.0.3.tgz", + "integrity": "sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==", + "license": "MIT" + }, "node_modules/is-reference": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", @@ -2673,6 +2700,17 @@ "node": ">=18.0.0" } }, + "node_modules/miniflare/node_modules/undici": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.18.2.tgz", + "integrity": "sha512-y+8YjDFzWdQlSE9N5nzKMT3g4a5UBX1HKowfdXh0uvAnTaqqwqB92Jt4UXBAeKekDs5IaDKyJFR4X1gYVCgXcw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=20.18.1" + } + }, "node_modules/mri": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", @@ -2712,6 +2750,18 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/obug": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", @@ -2788,6 +2838,37 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/prettier": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.3.tgz", + "integrity": "sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==", + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pure-rand": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-7.0.1.tgz", + "integrity": "sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" + }, "node_modules/readdirp": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", @@ -2870,6 +2951,15 @@ "node": ">=6" } }, + "node_modules/safe-stable-stringify": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/semver": { "version": "7.7.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", @@ -2962,6 +3052,59 @@ "node": ">=0.10.0" } }, + "node_modules/spacetimedb": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spacetimedb/-/spacetimedb-2.3.0.tgz", + "integrity": "sha512-AleiQ+UkcgC9aRe0ArRRh77c8DI6lM2lBBw1wlVzlYpev6Aiem5aLiduPbACxyECrdwngfurDR211ZTmbh+etw==", + "license": "ISC", + "dependencies": { + "base64-js": "^1.5.1", + "headers-polyfill": "^4.0.3", + "object-inspect": "^1.13.4", + "prettier": "^3.3.3", + "pure-rand": "^7.0.1", + "safe-stable-stringify": "^2.5.0", + "statuses": "^2.0.2", + "url-polyfill": "^1.1.14" + }, + "peerDependencies": { + "@angular/core": ">=17.0.0", + "@tanstack/react-query": "^5.0.0", + "react": "^18.0.0 || ^19.0.0-0 || ^19.0.0", + "svelte": "^4.0.0 || ^5.0.0", + "undici": "^6.19.2", + "vue": "^3.3.0" + }, + "peerDependenciesMeta": { + "@angular/core": { + "optional": true + }, + "@tanstack/react-query": { + "optional": true + }, + "react": { + "optional": true + }, + "svelte": { + "optional": true + }, + "undici": { + "optional": true + }, + "vue": { + "optional": true + } + } + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/supports-color": { "version": "10.2.2", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz", @@ -3099,14 +3242,14 @@ } }, "node_modules/undici": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.18.2.tgz", - "integrity": "sha512-y+8YjDFzWdQlSE9N5nzKMT3g4a5UBX1HKowfdXh0uvAnTaqqwqB92Jt4UXBAeKekDs5IaDKyJFR4X1gYVCgXcw==", - "dev": true, + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.26.0.tgz", + "integrity": "sha512-4yqz8a3n5HmGTlsbADNtr/dJlhkh/55Rq798G6ibiULcXbDtaLpTl1pvdqcbFfeoj3iSi52lePFM7h9H21cw/A==", "license": "MIT", + "optional": true, "peer": true, "engines": { - "node": ">=20.18.1" + "node": ">=18.17" } }, "node_modules/unenv": { @@ -3120,6 +3263,12 @@ "pathe": "^2.0.3" } }, + "node_modules/url-polyfill": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/url-polyfill/-/url-polyfill-1.1.14.tgz", + "integrity": "sha512-p4f3TTAG6ADVF3mwbXw7hGw+QJyw5CnNGvYh5fCuQQZIiuKUswqcznyV3pGDP9j0TSmC4UvRKm8kl1QsX1diiQ==", + "license": "MIT" + }, "node_modules/vite": { "version": "7.3.1", "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.1.tgz", diff --git a/package.json b/package.json index f4005c17..b55beb41 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "@lucide/svelte": "^0.564.0", "@types/leaflet.markercluster": "^1.5.6", "leaflet": "^1.9.4", - "leaflet.markercluster": "^1.5.3" + "leaflet.markercluster": "^1.5.3", + "spacetimedb": "^2.3.0" } } diff --git a/src/relay-bindings/enemy_location_table.ts b/src/relay-bindings/enemy_location_table.ts new file mode 100644 index 00000000..1508f56f --- /dev/null +++ b/src/relay-bindings/enemy_location_table.ts @@ -0,0 +1,19 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +/* eslint-disable */ +/* tslint:disable */ +import { + TypeBuilder as __TypeBuilder, + t as __t, + type AlgebraicTypeType as __AlgebraicTypeType, + type Infer as __Infer, +} from "spacetimedb"; + +export default __t.row({ + entityId: __t.u64().primaryKey().name("entity_id"), + enemyType: __t.i32().name("enemy_type"), + x: __t.i32(), + z: __t.i32(), + regionId: __t.u8().name("region_id"), +}); diff --git a/src/relay-bindings/index.ts b/src/relay-bindings/index.ts new file mode 100644 index 00000000..b5365d61 --- /dev/null +++ b/src/relay-bindings/index.ts @@ -0,0 +1,182 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +// This was generated using spacetimedb cli version 2.3.0 (commit aa73d1c35b4b346b98eeba10a3d756b4ae72162f). + +/* eslint-disable */ +/* tslint:disable */ +import { + DbConnectionBuilder as __DbConnectionBuilder, + DbConnectionImpl as __DbConnectionImpl, + SubscriptionBuilderImpl as __SubscriptionBuilderImpl, + TypeBuilder as __TypeBuilder, + Uuid as __Uuid, + convertToAccessorMap as __convertToAccessorMap, + makeQueryBuilder as __makeQueryBuilder, + procedureSchema as __procedureSchema, + procedures as __procedures, + reducerSchema as __reducerSchema, + reducers as __reducers, + schema as __schema, + t as __t, + table as __table, + type AlgebraicTypeType as __AlgebraicTypeType, + type DbConnectionConfig as __DbConnectionConfig, + type ErrorContextInterface as __ErrorContextInterface, + type Event as __Event, + type EventContextInterface as __EventContextInterface, + type Infer as __Infer, + type QueryBuilder as __QueryBuilder, + type ReducerEventContextInterface as __ReducerEventContextInterface, + type RemoteModule as __RemoteModule, + type SubscriptionEventContextInterface as __SubscriptionEventContextInterface, + type SubscriptionHandleImpl as __SubscriptionHandleImpl, +} from "spacetimedb"; + +// Import all reducer arg schemas + +// Import all procedure arg schemas + +// Import all table schema definitions +import EnemyLocationRow from "./enemy_location_table"; +import PlayerLocationRow from "./player_location_table"; +import PlayerStateRow from "./player_state_table"; +import ResourceLocationRow from "./resource_location_table"; + +/** Type-only namespace exports for generated type groups. */ + +/** The schema information for all tables in this module. This is defined the same was as the tables would have been defined in the server. */ +const tablesSchema = __schema({ + enemy_location: __table({ + name: 'enemy_location', + indexes: [ + { accessor: 'by_enemy_type', name: 'enemy_location_enemy_type_idx_btree', algorithm: 'btree', columns: [ + 'enemyType', + ] }, + { accessor: 'by_enemy_type_and_region', name: 'enemy_location_enemy_type_region_id_idx_btree', algorithm: 'btree', columns: [ + 'enemyType', + 'regionId', + ] }, + { accessor: 'entity_id', name: 'enemy_location_entity_id_idx_btree', algorithm: 'btree', columns: [ + 'entityId', + ] }, + { accessor: 'by_region', name: 'enemy_location_region_id_idx_btree', algorithm: 'btree', columns: [ + 'regionId', + ] }, + ], + constraints: [ + { name: 'enemy_location_entity_id_key', constraint: 'unique', columns: ['entityId'] }, + ], + }, EnemyLocationRow), + player_location: __table({ + name: 'player_location', + indexes: [ + { accessor: 'entity_id', name: 'player_location_entity_id_idx_btree', algorithm: 'btree', columns: [ + 'entityId', + ] }, + { accessor: 'by_region', name: 'player_location_region_id_idx_btree', algorithm: 'btree', columns: [ + 'regionId', + ] }, + ], + constraints: [ + { name: 'player_location_entity_id_key', constraint: 'unique', columns: ['entityId'] }, + ], + }, PlayerLocationRow), + player_state: __table({ + name: 'player_state', + indexes: [ + { accessor: 'entity_id', name: 'player_state_entity_id_idx_btree', algorithm: 'btree', columns: [ + 'entityId', + ] }, + { accessor: 'by_region', name: 'player_state_region_id_idx_btree', algorithm: 'btree', columns: [ + 'regionId', + ] }, + ], + constraints: [ + { name: 'player_state_entity_id_key', constraint: 'unique', columns: ['entityId'] }, + ], + }, PlayerStateRow), + resource_location: __table({ + name: 'resource_location', + indexes: [ + { accessor: 'entity_id', name: 'resource_location_entity_id_idx_btree', algorithm: 'btree', columns: [ + 'entityId', + ] }, + { accessor: 'by_region', name: 'resource_location_region_id_idx_btree', algorithm: 'btree', columns: [ + 'regionId', + ] }, + { accessor: 'by_resource', name: 'resource_location_resource_id_idx_btree', algorithm: 'btree', columns: [ + 'resourceId', + ] }, + { accessor: 'by_resource_and_region', name: 'resource_location_resource_id_region_id_idx_btree', algorithm: 'btree', columns: [ + 'resourceId', + 'regionId', + ] }, + ], + constraints: [ + { name: 'resource_location_entity_id_key', constraint: 'unique', columns: ['entityId'] }, + ], + }, ResourceLocationRow), +}); + +/** The schema information for all reducers in this module. This is defined the same way as the reducers would have been defined in the server, except the body of the reducer is omitted in code generation. */ +const reducersSchema = __reducers( +); + +/** The schema information for all procedures in this module. This is defined the same way as the procedures would have been defined in the server. */ +const proceduresSchema = __procedures( +); + +/** The remote SpacetimeDB module schema, both runtime and type information. */ +const REMOTE_MODULE = { + versionInfo: { + cliVersion: "2.3.0" as const, + }, + tables: tablesSchema.schemaType.tables, + reducers: reducersSchema.reducersType.reducers, + ...proceduresSchema, +} satisfies __RemoteModule< + typeof tablesSchema.schemaType, + typeof reducersSchema.reducersType, + typeof proceduresSchema +>; + +/** The tables available in this remote SpacetimeDB module. Each table reference doubles as a query builder. */ +export const tables: __QueryBuilder = __makeQueryBuilder(tablesSchema.schemaType); + +/** The reducers available in this remote SpacetimeDB module. */ +export const reducers = __convertToAccessorMap(reducersSchema.reducersType.reducers); + +/** The procedures available in this remote SpacetimeDB module. */ +export const procedures = __convertToAccessorMap(proceduresSchema.procedures); + +/** The context type returned in callbacks for all possible events. */ +export type EventContext = __EventContextInterface; +/** The context type returned in callbacks for reducer events. */ +export type ReducerEventContext = __ReducerEventContextInterface; +/** The context type returned in callbacks for subscription events. */ +export type SubscriptionEventContext = __SubscriptionEventContextInterface; +/** The context type returned in callbacks for error events. */ +export type ErrorContext = __ErrorContextInterface; +/** The subscription handle type to manage active subscriptions created from a {@link SubscriptionBuilder}. */ +export type SubscriptionHandle = __SubscriptionHandleImpl; + +/** Builder class to configure a new subscription to the remote SpacetimeDB instance. */ +export class SubscriptionBuilder extends __SubscriptionBuilderImpl {} + +/** Builder class to configure a new database connection to the remote SpacetimeDB instance. */ +export class DbConnectionBuilder extends __DbConnectionBuilder {} + +/** The typed database connection to manage connections to the remote SpacetimeDB instance. This class has type information specific to the generated module. */ +export class DbConnection extends __DbConnectionImpl { + /** Creates a new {@link DbConnectionBuilder} to configure and connect to the remote SpacetimeDB instance. */ + static builder = (): DbConnectionBuilder => { + return new DbConnectionBuilder(REMOTE_MODULE, (config: __DbConnectionConfig) => new DbConnection(config)); + }; + + /** Creates a new {@link SubscriptionBuilder} to configure a subscription to the remote SpacetimeDB instance. */ + override subscriptionBuilder = (): SubscriptionBuilder => { + return new SubscriptionBuilder(this); + }; +} + diff --git a/src/relay-bindings/player_location_table.ts b/src/relay-bindings/player_location_table.ts new file mode 100644 index 00000000..5e95315f --- /dev/null +++ b/src/relay-bindings/player_location_table.ts @@ -0,0 +1,18 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +/* eslint-disable */ +/* tslint:disable */ +import { + TypeBuilder as __TypeBuilder, + t as __t, + type AlgebraicTypeType as __AlgebraicTypeType, + type Infer as __Infer, +} from "spacetimedb"; + +export default __t.row({ + entityId: __t.u64().primaryKey().name("entity_id"), + x: __t.i32(), + z: __t.i32(), + regionId: __t.u8().name("region_id"), +}); diff --git a/src/relay-bindings/player_state_table.ts b/src/relay-bindings/player_state_table.ts new file mode 100644 index 00000000..435a8382 --- /dev/null +++ b/src/relay-bindings/player_state_table.ts @@ -0,0 +1,18 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +/* eslint-disable */ +/* tslint:disable */ +import { + TypeBuilder as __TypeBuilder, + t as __t, + type AlgebraicTypeType as __AlgebraicTypeType, + type Infer as __Infer, +} from "spacetimedb"; + +export default __t.row({ + entityId: __t.u64().primaryKey().name("entity_id"), + regionId: __t.u8().name("region_id"), + online: __t.bool(), + name: __t.string(), +}); diff --git a/src/relay-bindings/resource_location_table.ts b/src/relay-bindings/resource_location_table.ts new file mode 100644 index 00000000..720068bd --- /dev/null +++ b/src/relay-bindings/resource_location_table.ts @@ -0,0 +1,19 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +/* eslint-disable */ +/* tslint:disable */ +import { + TypeBuilder as __TypeBuilder, + t as __t, + type AlgebraicTypeType as __AlgebraicTypeType, + type Infer as __Infer, +} from "spacetimedb"; + +export default __t.row({ + entityId: __t.u64().primaryKey().name("entity_id"), + resourceId: __t.i32().name("resource_id"), + regionId: __t.u8().name("region_id"), + x: __t.i32(), + z: __t.i32(), +}); diff --git a/src/relay-bindings/types.ts b/src/relay-bindings/types.ts new file mode 100644 index 00000000..19a3c5e9 --- /dev/null +++ b/src/relay-bindings/types.ts @@ -0,0 +1,46 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +/* eslint-disable */ +/* tslint:disable */ +import { + TypeBuilder as __TypeBuilder, + t as __t, + type AlgebraicTypeType as __AlgebraicTypeType, + type Infer as __Infer, +} from "spacetimedb"; + +export const EnemyLocation = __t.object("EnemyLocation", { + entityId: __t.u64(), + enemyType: __t.i32(), + x: __t.i32(), + z: __t.i32(), + regionId: __t.u8(), +}); +export type EnemyLocation = __Infer; + +export const PlayerLocation = __t.object("PlayerLocation", { + entityId: __t.u64(), + x: __t.i32(), + z: __t.i32(), + regionId: __t.u8(), +}); +export type PlayerLocation = __Infer; + +export const PlayerState = __t.object("PlayerState", { + entityId: __t.u64(), + regionId: __t.u8(), + online: __t.bool(), + name: __t.string(), +}); +export type PlayerState = __Infer; + +export const ResourceLocation = __t.object("ResourceLocation", { + entityId: __t.u64(), + resourceId: __t.i32(), + regionId: __t.u8(), + x: __t.i32(), + z: __t.i32(), +}); +export type ResourceLocation = __Infer; + diff --git a/src/relay-bindings/types/procedures.ts b/src/relay-bindings/types/procedures.ts new file mode 100644 index 00000000..d5ac825c --- /dev/null +++ b/src/relay-bindings/types/procedures.ts @@ -0,0 +1,10 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +/* eslint-disable */ +/* tslint:disable */ +import { type Infer as __Infer } from "spacetimedb"; + +// Import all procedure arg schemas + + diff --git a/src/relay-bindings/types/reducers.ts b/src/relay-bindings/types/reducers.ts new file mode 100644 index 00000000..f090c776 --- /dev/null +++ b/src/relay-bindings/types/reducers.ts @@ -0,0 +1,8 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +/* eslint-disable */ +/* tslint:disable */ +import { type Infer as __Infer } from "spacetimedb"; + +// Import all reducer arg schemas From f8d79f0d31544da8adc10725fb0b4234f9bc4f8a Mon Sep 17 00:00:00 2001 From: wizjany Date: Wed, 3 Jun 2026 19:34:36 -0400 Subject: [PATCH 2/3] Switch player, resource, and enemy tracking to prism. Also fix like a dozen bugs around tracking, I'm sure there's more still. --- src/app.html | 8 +- src/lib/components/map/MapContainer.svelte | 540 ++++--------- .../components/settings/SettingsPanel.svelte | 2 +- src/lib/components/sidebar/Sidebar.svelte | 4 +- .../components/tracking/TrackingPanel.svelte | 22 +- src/lib/config/api.ts | 4 +- src/lib/map/resource-canvas-layer.ts | 6 +- src/lib/services/player-service.ts | 39 +- src/lib/services/relay-service.ts | 732 ++++++++++++++++++ src/lib/services/resource-service.ts | 55 -- src/lib/stores/search-store.svelte.ts | 30 +- src/lib/stores/tracking-store.svelte.ts | 16 +- src/lib/types/geojson.ts | 18 - src/lib/types/map.ts | 4 +- src/routes/api/players/+server.ts | 25 - src/routes/api/players/[id]/+server.ts | 20 - src/routes/api/resources/+server.ts | 24 - 17 files changed, 932 insertions(+), 617 deletions(-) create mode 100644 src/lib/services/relay-service.ts delete mode 100644 src/lib/services/resource-service.ts delete mode 100644 src/routes/api/players/+server.ts delete mode 100644 src/routes/api/players/[id]/+server.ts delete mode 100644 src/routes/api/resources/+server.ts diff --git a/src/app.html b/src/app.html index 0994e653..fb417f32 100644 --- a/src/app.html +++ b/src/app.html @@ -4,10 +4,16 @@ + %sveltekit.head% diff --git a/src/lib/components/map/MapContainer.svelte b/src/lib/components/map/MapContainer.svelte index 923dfdef..17d15b09 100644 --- a/src/lib/components/map/MapContainer.svelte +++ b/src/lib/components/map/MapContainer.svelte @@ -1,95 +1,49 @@