Rename everything "tile" to "block"
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { EverythingRegistry, TileRegistry } from "$/common/everything_registry.ts";
|
||||
import { BlockRegistry, EverythingRegistry } from "$/common/everything_registry.ts";
|
||||
import { Container, Inventory } from "../inventory.ts";
|
||||
import { PlayerComponent } from "../player.ts";
|
||||
import { GuiChest } from "$/client/gui/gui_chest.ts";
|
||||
@@ -7,7 +7,7 @@ interface TileChestData {
|
||||
inventory: Inventory;
|
||||
}
|
||||
|
||||
EverythingRegistry.register<TileRegistry<TileChestData>>("blocks", "bworld:chest", {
|
||||
EverythingRegistry.register<BlockRegistry<TileChestData>>("blocks", "bworld:chest", {
|
||||
texture_id: "bworld:chest",
|
||||
has_collision: false,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { EverythingRegistry, TileRegistry } from "$/common/everything_registry.ts";
|
||||
import { BlockRegistry, EverythingRegistry } from "$/common/everything_registry.ts";
|
||||
import { ItemStack } from "../inventory.ts";
|
||||
import { PlayerComponent } from "../player.ts";
|
||||
|
||||
@@ -121,25 +121,25 @@ function create_crop_tile(crop_id: string) {
|
||||
crop.growth_time = 0;
|
||||
}
|
||||
},
|
||||
} as TileRegistry<TileCropData>;
|
||||
} as BlockRegistry<TileCropData>;
|
||||
}
|
||||
|
||||
EverythingRegistry.register<TileRegistry<TileCropData>>(
|
||||
EverythingRegistry.register<BlockRegistry<TileCropData>>(
|
||||
"blocks",
|
||||
"bworld:tomato_crop",
|
||||
create_crop_tile("bworld:tomato"),
|
||||
);
|
||||
EverythingRegistry.register<TileRegistry<TileCropData>>(
|
||||
EverythingRegistry.register<BlockRegistry<TileCropData>>(
|
||||
"blocks",
|
||||
"bworld:carrot_crop",
|
||||
create_crop_tile("bworld:carrot"),
|
||||
);
|
||||
EverythingRegistry.register<TileRegistry<TileCropData>>(
|
||||
EverythingRegistry.register<BlockRegistry<TileCropData>>(
|
||||
"blocks",
|
||||
"bworld:potato_crop",
|
||||
create_crop_tile("bworld:potato"),
|
||||
);
|
||||
EverythingRegistry.register<TileRegistry<TileCropData>>(
|
||||
EverythingRegistry.register<BlockRegistry<TileCropData>>(
|
||||
"blocks",
|
||||
"bworld:pumpkin_crop",
|
||||
create_crop_tile("bworld:pumpkin"),
|
||||
@@ -1,8 +1,8 @@
|
||||
import { EverythingRegistry, TileRegistry } from "$/common/everything_registry.ts";
|
||||
import { BlockRegistry, EverythingRegistry } from "$/common/everything_registry.ts";
|
||||
import { WateringCanData } from "../items/watering_can.ts";
|
||||
import { PlayerComponent } from "../player.ts";
|
||||
|
||||
EverythingRegistry.register<TileRegistry>("blocks", "bworld:dirt", {
|
||||
EverythingRegistry.register<BlockRegistry>("blocks", "bworld:dirt", {
|
||||
texture_id: "bworld:dirt",
|
||||
has_collision: false,
|
||||
|
||||
@@ -16,7 +16,7 @@ EverythingRegistry.register<TileRegistry>("blocks", "bworld:dirt", {
|
||||
},
|
||||
});
|
||||
|
||||
EverythingRegistry.register<TileRegistry>("blocks", "bworld:hoed_dirt", {
|
||||
EverythingRegistry.register<BlockRegistry>("blocks", "bworld:hoed_dirt", {
|
||||
texture_id: "bworld:hoed_dirt",
|
||||
has_collision: false,
|
||||
|
||||
@@ -50,7 +50,7 @@ EverythingRegistry.register<TileRegistry>("blocks", "bworld:hoed_dirt", {
|
||||
},
|
||||
});
|
||||
|
||||
EverythingRegistry.register<TileRegistry>("blocks", "bworld:hoed_watered_dirt", {
|
||||
EverythingRegistry.register<BlockRegistry>("blocks", "bworld:hoed_watered_dirt", {
|
||||
texture_id: "bworld:hoed_watered_dirt",
|
||||
has_collision: false,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { EverythingRegistry, TileRegistry } from "$/common/everything_registry.ts";
|
||||
import { BlockRegistry, EverythingRegistry } from "$/common/everything_registry.ts";
|
||||
import { Container, Inventory, ItemStack } from "../inventory.ts";
|
||||
import { PlayerComponent } from "../player.ts";
|
||||
import { GuiFurnace } from "$/client/gui/gui_furnace.ts";
|
||||
@@ -66,7 +66,7 @@ interface TileChestData {
|
||||
fuel: number;
|
||||
}
|
||||
|
||||
EverythingRegistry.register<TileRegistry<TileChestData>>("blocks", "bworld:furnace", {
|
||||
EverythingRegistry.register<BlockRegistry<TileChestData>>("blocks", "bworld:furnace", {
|
||||
texture_id: "bworld:furnace",
|
||||
has_collision: false,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { EverythingRegistry, TileRegistry } from "$/common/everything_registry.ts";
|
||||
import { BlockRegistry, EverythingRegistry } from "$/common/everything_registry.ts";
|
||||
import { PlayerComponent } from "../player.ts";
|
||||
|
||||
EverythingRegistry.register<TileRegistry>("blocks", "bworld:grass", {
|
||||
EverythingRegistry.register<BlockRegistry>("blocks", "bworld:grass", {
|
||||
texture_id: "bworld:grass",
|
||||
has_collision: false,
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
import { BlockRegistry, EverythingRegistry } from "$/common/everything_registry.ts";
|
||||
|
||||
EverythingRegistry.register<BlockRegistry>("blocks", "bworld:log", {
|
||||
texture_id: "bworld:log_side",
|
||||
has_collision: true,
|
||||
});
|
||||
|
||||
EverythingRegistry.register<BlockRegistry>("blocks", "bworld:leaves", {
|
||||
texture_id: "bworld:leaves",
|
||||
has_collision: true,
|
||||
transparent: true,
|
||||
});
|
||||
@@ -0,0 +1,6 @@
|
||||
import { BlockRegistry, EverythingRegistry } from "$/common/everything_registry.ts";
|
||||
|
||||
EverythingRegistry.register<BlockRegistry>("blocks", "bworld:sand", {
|
||||
texture_id: "bworld:sand",
|
||||
has_collision: true,
|
||||
});
|
||||
@@ -0,0 +1,6 @@
|
||||
import { BlockRegistry, EverythingRegistry } from "$/common/everything_registry.ts";
|
||||
|
||||
EverythingRegistry.register<BlockRegistry>("blocks", "bworld:snow", {
|
||||
texture_id: "bworld:snow",
|
||||
has_collision: true,
|
||||
});
|
||||
@@ -0,0 +1,6 @@
|
||||
import { BlockRegistry, EverythingRegistry } from "$/common/everything_registry.ts";
|
||||
|
||||
EverythingRegistry.register<BlockRegistry>("blocks", "bworld:stone", {
|
||||
texture_id: "bworld:stone",
|
||||
has_collision: true,
|
||||
});
|
||||
@@ -1,8 +1,8 @@
|
||||
import { EverythingRegistry, TileRegistry } from "$/common/everything_registry.ts";
|
||||
import { BlockRegistry, EverythingRegistry } from "$/common/everything_registry.ts";
|
||||
import { ItemStack } from "../inventory.ts";
|
||||
import { PlayerComponent } from "../player.ts";
|
||||
|
||||
EverythingRegistry.register<TileRegistry>("blocks", "bworld:tree", {
|
||||
EverythingRegistry.register<BlockRegistry>("blocks", "bworld:tree", {
|
||||
texture_id: "bworld:tree",
|
||||
has_collision: false,
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
import { BlockRegistry, EverythingRegistry } from "$/common/everything_registry.ts";
|
||||
|
||||
EverythingRegistry.register<BlockRegistry>("blocks", "bworld:water", {
|
||||
texture_id: "bworld:water",
|
||||
has_collision: false,
|
||||
});
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Component } from "$/common/ecs/mod.ts";
|
||||
import { EverythingRegistry, TileRegistry } from "$/common/everything_registry.ts";
|
||||
import { BlockRegistry, EverythingRegistry } from "$/common/everything_registry.ts";
|
||||
import { Faces } from "../../common/constants.ts";
|
||||
import { AssetManager } from "../assets.ts";
|
||||
import { generate_chunk } from "../generation.ts";
|
||||
@@ -53,7 +53,7 @@ export class Dimension extends Component {
|
||||
chunk = this.add_chunk(block_chunk_x, block_chunk_z);
|
||||
}
|
||||
|
||||
const [nid, block_info] = EverythingRegistry.get_full<TileRegistry>("blocks", block.id)!;
|
||||
const [nid, block_info] = EverythingRegistry.get_full<BlockRegistry>("blocks", block.id)!;
|
||||
|
||||
const lx = block.x - block_chunk_x * CHUNK_SIZE;
|
||||
const lz = block.z - block_chunk_z * CHUNK_SIZE;
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ import { ClientWorld } from "./client_world.ts";
|
||||
import { InputManager } from "./input_manager.ts";
|
||||
import { begin_drawing, end_drawing, init_font, init_window } from "./renderer/mod.ts";
|
||||
|
||||
await import("./tiles/mod.ts");
|
||||
await import("./blocks/mod.ts");
|
||||
await import("./items/mod.ts");
|
||||
|
||||
export class ClientLoop {
|
||||
|
||||
@@ -5,7 +5,7 @@ import { Camera, screen_to_world } from "../components/camera.ts";
|
||||
import { InputManager } from "../input_manager.ts";
|
||||
import { canvas } from "../renderer/mod.ts";
|
||||
import { TICK_DELTA, TILE_SIZE } from "$/common/constants.ts";
|
||||
import { EverythingRegistry, TileRegistry } from "$/common/everything_registry.ts";
|
||||
import { BlockRegistry, EverythingRegistry } from "$/common/everything_registry.ts";
|
||||
import { Position } from "$/common/components/position.ts";
|
||||
import { distance_point_rectangle } from "../../common/utils.ts";
|
||||
|
||||
@@ -77,7 +77,7 @@ export class DimensionLogicSystem extends System {
|
||||
handle_second(world: ClientWorld, dimension: Dimension) {
|
||||
const tickables = dimension.blocks.filter((t) => t.tickable);
|
||||
for (const tickable of tickables) {
|
||||
const tile_info = EverythingRegistry.get<TileRegistry>("blocks", tickable.id);
|
||||
const tile_info = EverythingRegistry.get<BlockRegistry>("blocks", tickable.id);
|
||||
if (tile_info && tile_info.on_second) {
|
||||
tile_info.on_second(world, tickable, dimension.second_timer);
|
||||
}
|
||||
@@ -88,7 +88,7 @@ export class DimensionLogicSystem extends System {
|
||||
handle_tick(world: ClientWorld, dimension: Dimension) {
|
||||
const tickables = dimension.blocks.filter((t) => t.tickable);
|
||||
for (const tickable of tickables) {
|
||||
const tile_info = EverythingRegistry.get<TileRegistry>("blocks", tickable.id);
|
||||
const tile_info = EverythingRegistry.get<BlockRegistry>("blocks", tickable.id);
|
||||
if (tile_info && tile_info.on_tick) {
|
||||
tile_info.on_tick(world, tickable, dimension.tick_timer);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { get_sprite_region } from "$/common/utils.ts";
|
||||
import { Chunk, CHUNK_AREA, CHUNK_SIZE, Dimension } from "$/client/components/dimension.ts";
|
||||
import { TEXTURE_SIZE } from "$/common/constants.ts";
|
||||
import { EverythingRegistry, TileRegistry } from "$/common/everything_registry.ts";
|
||||
import { BlockRegistry, EverythingRegistry } from "$/common/everything_registry.ts";
|
||||
import { flush_buffer, gl, push_cube_to_mesh, set_current_texture } from "$/client/renderer/mod.ts";
|
||||
import { Camera } from "$/client/components/camera.ts";
|
||||
|
||||
@@ -32,7 +32,7 @@ function render_chunk_opaque(chunk: Chunk) {
|
||||
function make_chunk_mesh(chunk: Chunk, dimension: Dimension, camera: Camera) {
|
||||
let vertices = new Float32Array(CHUNK_AREA * 24 * 6 * 9);
|
||||
let count = 0;
|
||||
const blocks_registry = EverythingRegistry.get_registry<TileRegistry>("blocks");
|
||||
const blocks_registry = EverythingRegistry.get_registry<BlockRegistry>("blocks");
|
||||
|
||||
const show_face = (x: number, y: number, z: number) => {
|
||||
const block = dimension.get_block(x, y, z);
|
||||
@@ -55,14 +55,14 @@ function make_chunk_mesh(chunk: Chunk, dimension: Dimension, camera: Camera) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const tile_info = blocks_registry[block_nid];
|
||||
const block_info = blocks_registry[block_nid];
|
||||
|
||||
let texture_id = "bworld:missing";
|
||||
if (tile_info?.texture_id) {
|
||||
if (typeof tile_info.texture_id === "string") {
|
||||
texture_id = tile_info.texture_id;
|
||||
if (block_info?.texture_id) {
|
||||
if (typeof block_info.texture_id === "string") {
|
||||
texture_id = block_info.texture_id;
|
||||
} else {
|
||||
// texture_id = tile_info.texture_id(tile);
|
||||
// texture_id = block_info.texture_id(block);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
import { EverythingRegistry, TileRegistry } from "$/common/everything_registry.ts";
|
||||
|
||||
EverythingRegistry.register<TileRegistry>("blocks", "bworld:log", {
|
||||
texture_id: "bworld:log_side",
|
||||
has_collision: true,
|
||||
});
|
||||
|
||||
EverythingRegistry.register<TileRegistry>("blocks", "bworld:leaves", {
|
||||
texture_id: "bworld:leaves",
|
||||
has_collision: true,
|
||||
transparent: true,
|
||||
});
|
||||
@@ -1,6 +0,0 @@
|
||||
import { EverythingRegistry, TileRegistry } from "$/common/everything_registry.ts";
|
||||
|
||||
EverythingRegistry.register<TileRegistry>("blocks", "bworld:sand", {
|
||||
texture_id: "bworld:sand",
|
||||
has_collision: true,
|
||||
});
|
||||
@@ -1,6 +0,0 @@
|
||||
import { EverythingRegistry, TileRegistry } from "$/common/everything_registry.ts";
|
||||
|
||||
EverythingRegistry.register<TileRegistry>("blocks", "bworld:snow", {
|
||||
texture_id: "bworld:snow",
|
||||
has_collision: true,
|
||||
});
|
||||
@@ -1,6 +0,0 @@
|
||||
import { EverythingRegistry, TileRegistry } from "$/common/everything_registry.ts";
|
||||
|
||||
EverythingRegistry.register<TileRegistry>("blocks", "bworld:stone", {
|
||||
texture_id: "bworld:stone",
|
||||
has_collision: true,
|
||||
});
|
||||
@@ -1,6 +0,0 @@
|
||||
import { EverythingRegistry, TileRegistry } from "$/common/everything_registry.ts";
|
||||
|
||||
EverythingRegistry.register<TileRegistry>("blocks", "bworld:water", {
|
||||
texture_id: "bworld:water",
|
||||
has_collision: false,
|
||||
});
|
||||
@@ -1,5 +1,4 @@
|
||||
export const TEXTURE_SIZE = 16;
|
||||
export const TILE_SIZE = 48;
|
||||
|
||||
export const TICKS_PER_SECOND = 20;
|
||||
export const TICK_DELTA = 1 / TICKS_PER_SECOND;
|
||||
|
||||
@@ -49,16 +49,16 @@ export class EverythingRegistry {
|
||||
}
|
||||
}
|
||||
|
||||
export interface TileRegistry<T = unknown | undefined> {
|
||||
texture_id: string | ((tile: Block<T>) => string);
|
||||
export interface BlockRegistry<T = unknown | undefined> {
|
||||
texture_id: string | ((block: Block<T>) => string);
|
||||
has_collision: boolean;
|
||||
transparent?: boolean;
|
||||
|
||||
on_create?(dimension: Dimension, tile: Block<T>): void;
|
||||
on_click?(dimension: Dimension, tile: Block<T>): void;
|
||||
on_interact?(dimension: Dimension, tile: Block<T>): void;
|
||||
on_tick?(dimension: Dimension, tile: Block<T>, tick_delta: number): void;
|
||||
on_second?(dimension: Dimension, tile: Block<T>, second_delta: number): void;
|
||||
on_create?(dimension: Dimension, block: Block<T>): void;
|
||||
on_click?(dimension: Dimension, block: Block<T>): void;
|
||||
on_interact?(dimension: Dimension, block: Block<T>): void;
|
||||
on_tick?(dimension: Dimension, block: Block<T>, tick_delta: number): void;
|
||||
on_second?(dimension: Dimension, block: Block<T>, second_delta: number): void;
|
||||
}
|
||||
|
||||
export interface ItemRegistry<T = unknown | undefined> {
|
||||
|
||||
Reference in New Issue
Block a user