Only interact with tiles ~2 tile distances away
This commit is contained in:
@@ -6,6 +6,8 @@ import { InputManager } from "../input_manager.ts";
|
||||
import { canvas } from "../renderer.ts";
|
||||
import { TICK_DELTA, TILE_SIZE } from "$/common/constants.ts";
|
||||
import { EverythingRegistry, TileRegistry } from "$/common/everything_registry.ts";
|
||||
import { Position } from "$/common/components/position.ts";
|
||||
import { distance_point_rectangle } from "../../common/utils.ts";
|
||||
|
||||
export class DimensionLogicSystem extends System {
|
||||
update(world: ClientWorld, delta: number): void {
|
||||
@@ -23,6 +25,7 @@ export class DimensionLogicSystem extends System {
|
||||
}
|
||||
|
||||
const [player] = world.get_tag("player")!;
|
||||
const player_position = player.get(Position)!;
|
||||
const camera = player.get(Camera)!;
|
||||
|
||||
const mouse = InputManager.get_mouse_position();
|
||||
@@ -47,6 +50,19 @@ export class DimensionLogicSystem extends System {
|
||||
return;
|
||||
}
|
||||
|
||||
const distance_to_player = distance_point_rectangle(
|
||||
tile.x * TILE_SIZE,
|
||||
tile.y * TILE_SIZE,
|
||||
player_position.x,
|
||||
player_position.y,
|
||||
72,
|
||||
72,
|
||||
);
|
||||
console.log(distance_to_player);
|
||||
if (distance_to_player > TILE_SIZE * 2) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (tile_info.on_interact || tile_info.on_click) {
|
||||
if (tile_info.on_interact && InputManager.is_mouse_pressed(2)) {
|
||||
InputManager.consume_mouse(2);
|
||||
|
||||
Reference in New Issue
Block a user