49 lines
1.6 KiB
JavaScript
49 lines
1.6 KiB
JavaScript
import { DataModel } from "./core/DataModel.js";
|
|
import * as THREE from "three";
|
|
import { NetworkService } from "./instances/NetworkService.js";
|
|
import { ReplicatorService } from "./instances/ReplicatorService.js";
|
|
import { RenderService } from "./instances/RenderService.js";
|
|
import { Workspace } from "./instances/Workspace.js";
|
|
import { DebugTextService } from "./instances/DebugTextService.js"; // Client-only debug overlay manager
|
|
import { Players } from "./instances/Players.js";
|
|
const dm = new DataModel();
|
|
dm.SetParent(null); // root
|
|
|
|
// Create workspace
|
|
const ws = new Workspace();
|
|
ws.SetParent(dm);
|
|
|
|
const net = new NetworkService();
|
|
net.SetParent(dm);
|
|
net.isServer = false; // client mode
|
|
|
|
// Create a players container (client-side crippled version)
|
|
const players = new Players(net, true);
|
|
players.SetParent(dm);
|
|
|
|
await net.connect("ws://localhost:8080"); // connect to server
|
|
|
|
const render = new RenderService(dm);
|
|
render.SetParent(dm);
|
|
render.start();
|
|
|
|
// Start replicator
|
|
const replication = new ReplicatorService(dm, net); // Automatically parents to dm
|
|
|
|
// Create DebugTextService
|
|
const debugText = new DebugTextService();
|
|
debugText.SetParent(dm);
|
|
|
|
setTimeout(() => {
|
|
console.log("Prompting for token...");
|
|
let sessionToken = prompt("Enter your session token: (any string will do for this test except 'fake')");
|
|
console.log("Got token:", sessionToken);
|
|
if (sessionToken) {
|
|
const encoder = new TextEncoder();
|
|
const payload = encoder.encode(sessionToken);
|
|
net.send(0x01, 0x03, payload);
|
|
} else {
|
|
console.warn("No token entered — not sending packet.");
|
|
}
|
|
}, 3000);
|