26 lines
1.2 KiB
TypeScript
26 lines
1.2 KiB
TypeScript
import {Point} from '@flatten-js/core';
|
|
import {Actor} from 'xstate';
|
|
import type {ScreenCanvasDrawController} from '../../src/drawControllers/screenCanvas.drawController';
|
|
import {InputController} from '../../src/inputController/input-controller';
|
|
import {setActiveToolActor, setEntities, setInputController, setScreenCanvasDrawController,} from '../../src/state';
|
|
import {Tool} from '../../src/tools';
|
|
import {TOOL_STATE_MACHINES} from '../../src/tools/tool.consts';
|
|
import {ScreenCanvasDrawController as ScreenCanvasDrawControllerMock} from '../mocks/drawControllers/screenCanvas.drawController';
|
|
import {CANVAS_HEIGHT, CANVAS_WIDTH} from './tests.consts';
|
|
|
|
export function initApplication(): InputController {
|
|
const inputController = new InputController();
|
|
setInputController(inputController);
|
|
setEntities([], true); // Creates the first undo entry
|
|
|
|
const canvasSize = new Point(CANVAS_WIDTH, CANVAS_HEIGHT);
|
|
|
|
const lineToolActor = new Actor(TOOL_STATE_MACHINES[Tool.LINE]);
|
|
lineToolActor.start();
|
|
setActiveToolActor(lineToolActor);
|
|
setScreenCanvasDrawController(
|
|
new ScreenCanvasDrawControllerMock(null, canvasSize) as unknown as ScreenCanvasDrawController
|
|
);
|
|
return inputController;
|
|
}
|