Server
This commit is contained in:
+21
-1
@@ -13,6 +13,13 @@ import { Dimension } from "./components/dimension.ts";
|
||||
import { GuiRenderSystem, GuiTickSystem } from "./gui/gui_systems.ts";
|
||||
import { WorldGenerationSystem } from "./systems/world_generation_system.ts";
|
||||
import { CollisionSystem } from "./systems/collision_system.ts";
|
||||
import { NetworkSystem } from "./systems/network_system.ts";
|
||||
import { Connection } from "./network.ts";
|
||||
|
||||
export interface ChatLine {
|
||||
text: string;
|
||||
time: number;
|
||||
}
|
||||
|
||||
export class ClientWorld extends World {
|
||||
paused = false;
|
||||
@@ -20,8 +27,13 @@ export class ClientWorld extends World {
|
||||
|
||||
dimension!: Dimension;
|
||||
|
||||
constructor() {
|
||||
// undefined when playing single player
|
||||
connection?: Connection;
|
||||
chat_log: ChatLine[] = [];
|
||||
|
||||
constructor(connection?: Connection) {
|
||||
super("game");
|
||||
this.connection = connection;
|
||||
|
||||
this.add_state("main_menu");
|
||||
this.add_state("paused");
|
||||
@@ -39,6 +51,7 @@ export class ClientWorld extends World {
|
||||
// Logic systems
|
||||
this.add_system(new UIInteractionSystem(), "main_menu");
|
||||
this.add_system(new UIInteractionSystem(), "paused");
|
||||
this.add_system(new NetworkSystem(), "game");
|
||||
this.add_system(new GuiTickSystem(), "game");
|
||||
this.add_system(new PlayerControlsSystem(), "game");
|
||||
this.add_system(new WorldGenerationSystem(), "game");
|
||||
@@ -53,4 +66,11 @@ export class ClientWorld extends World {
|
||||
this.add_system(new UIRenderSystem(), "main_menu");
|
||||
this.add_system(new UIRenderSystem(), "paused");
|
||||
}
|
||||
|
||||
add_chat(text: string) {
|
||||
this.chat_log.push({ text, time: performance.now() });
|
||||
if (this.chat_log.length > 100) {
|
||||
this.chat_log.shift();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user