mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-06-21 10:32:41 +00:00
input handler only checks canvas updates (prevents accidental attacks when clicking a button.)
This commit is contained in:
@@ -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)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
|
||||
@@ -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[] = [
|
||||
|
||||
Reference in New Issue
Block a user