Server authority

This commit is contained in:
2026-09-24 19:34:07 -03:00
parent 1bef94ce0c
commit 79faa556de
75 changed files with 2247 additions and 1632 deletions
+4 -10
View File
@@ -1,5 +1,4 @@
import { Block, Dimension } from "$/client/components/dimension.ts";
import { ItemStack } from "$/client/inventory.ts";
import type { ItemStack } from "./inventory.ts";
export class EverythingRegistry {
static #key_to_id = new Map<string, Map<string, number>>();
@@ -94,12 +93,9 @@ export interface BlockRegistry {
states?: BlockStateDefinition[];
variants?: Record<string, BlockStateVariant>;
on_create?(dimension: Dimension, block: Block): void;
on_break?(dimension: Dimension, block: Block): void;
on_click?(dimension: Dimension, block: Block): void;
on_interact?(dimension: Dimension, block: Block): boolean;
on_tick?(dimension: Dimension, block: Block, tick_delta: number): void;
on_second?(dimension: Dimension, block: Block, second_delta: number): void;
// right clicking it does something instead of placing a block, clients don't predict placing against it.
// behavior runs on the server, see server/game/blocks.ts
interactive?: boolean;
compiled_states?: CompiledStateDefinition[];
}
@@ -109,8 +105,6 @@ export interface ItemRegistry<T = unknown | undefined> {
block_id?: string;
tool_type?: string;
place?(dimension: Dimension, block: Block): void;
on_create?(item: ItemStack<T>): void;
get_lore?(item: ItemStack<T>): string;