Refactor scene management with store

This commit is contained in:
Dennis Schoepf 2021-07-18 14:41:53 +02:00
parent f9079e4823
commit 871b4116ff
10 changed files with 69 additions and 59 deletions

27
main.ts
View file

@ -1,24 +1,41 @@
import p5 from 'p5';
import { SCREEN_WIDTH, SCREEN_HEIGHT } from './src/constants/screen';
import { SceneManager } from './src/scenes/SceneManager';
import { LegacyScene } from './src/scenes/LegacyScene';
import { OverviewScene } from './src/scenes/OverviewScene';
import { Scenes } from './src/scenes/scenes';
import store from './src/store';
const sketch = (s: p5) => {
let sm: SceneManager;
// Scenes
let overviewScene: OverviewScene;
let legacyScene: LegacyScene;
s.setup = () => {
s.createCanvas(SCREEN_WIDTH, SCREEN_HEIGHT);
s.noCursor();
sm = new SceneManager();
overviewScene = new OverviewScene();
legacyScene = new LegacyScene();
};
s.draw = () => {
sm.draw();
const { currentScene } = store.getState();
if (currentScene === Scenes.OVERVIEW) {
overviewScene.draw();
} else if (currentScene === Scenes.LEGACY) {
legacyScene.draw();
}
};
s.mousePressed = () => {
sm.handleClick();
const { currentScene } = store.getState();
if (currentScene === Scenes.OVERVIEW) {
overviewScene.onSceneClick();
} else if (currentScene === Scenes.LEGACY) {
legacyScene.onSceneClick();
}
};
};