input handler only checks canvas updates (prevents accidental attacks when clicking a button.)

This commit is contained in:
evanpelle
2024-09-20 13:19:43 -07:00
parent a0353066c9
commit c47aa9b949
3 changed files with 12 additions and 12 deletions
+4 -2
View File
@@ -11,13 +11,15 @@ import {and, bfs, dist, manhattanDist} from "../core/Util";
import {TerrainLayer} from "./graphics/layers/TerrainLayer";
import {WinCheckExecution} from "../core/execution/WinCheckExecution";
import {SendAllianceRequestUIEvent} from "./graphics/layers/UILayer";
import {createCanvas} from "./graphics/Utils";
export function createClientGame(name: string, clientID: ClientID, playerID: PlayerID, ip: string | null, gameID: GameID, config: Config, terrainMap: TerrainMap): ClientGame {
let eventBus = new EventBus()
let game = createGame(terrainMap, eventBus, config)
let gameRenderer = createRenderer(game, eventBus, clientID)
const canvas = createCanvas()
let gameRenderer = createRenderer(canvas, game, eventBus, clientID)
return new ClientGame(
name,
@@ -28,7 +30,7 @@ export function createClientGame(name: string, clientID: ClientID, playerID: Pla
eventBus,
game,
gameRenderer,
new InputHandler(eventBus),
new InputHandler(canvas, eventBus),
new Executor(game, gameID)
)
}
+7 -8
View File
@@ -53,17 +53,16 @@ export class InputHandler {
private pointerDown: boolean = false
constructor(private eventBus: EventBus) { }
constructor(private canvas: HTMLCanvasElement, private eventBus: EventBus) { }
initialize() {
document.addEventListener("pointerdown", (e) => this.onPointerDown(e));
document.addEventListener("pointerup", (e) => this.onPointerUp(e));
document.addEventListener("wheel", (e) => this.onScroll(e), {passive: false});
document.addEventListener('pointermove', this.onPointerMove.bind(this));
document.addEventListener('contextmenu', (e: MouseEvent) => {
this.onRightClick(e)
this.canvas.addEventListener("pointerdown", (e) => this.onPointerDown(e));
this.canvas.addEventListener("pointerup", (e) => this.onPointerUp(e));
this.canvas.addEventListener("wheel", (e) => this.onScroll(e), {passive: false});
this.canvas.addEventListener('pointermove', this.onPointerMove.bind(this));
this.canvas.addEventListener('contextmenu', (e: MouseEvent) => {
this.onRightClick(e);
});
this.pointers.clear()
}
+1 -2
View File
@@ -11,8 +11,7 @@ import {Layer} from "./layers/Layer";
import {EventsDisplay} from "./layers/EventsDisplay";
export function createRenderer(game: Game, eventBus: EventBus, clientID: ClientID): GameRenderer {
const canvas = createCanvas()
export function createRenderer(canvas: HTMLCanvasElement, game: Game, eventBus: EventBus, clientID: ClientID): GameRenderer {
const transformHandler = new TransformHandler(game, eventBus, canvas)
const layers: Layer[] = [