Refactor detail scene elements to single class

This commit is contained in:
Dennis Schoepf 2021-07-31 16:27:07 +02:00
parent 85214fad3f
commit d084511c6b
11 changed files with 162 additions and 335 deletions

View file

@ -4,25 +4,22 @@ import { Contributor } from '../sketchObjects/Contributor';
import { Legacy } from '../sketchObjects/Legacy';
import { Package } from '../sketchObjects/Package';
import { Player } from '../sketchObjects/Player';
import { Revealable, RevealableInterface } from '../sketchObjects/Revealable';
import store from '../store';
import { Scenes } from './scenes';
export class DetailScene {
player: Player;
contributors: any[];
legacy: any[];
packages: any[];
revealables: RevealableInterface[];
revealableObjects: Revealable[];
constructor() {
this.player = new Player();
store.subscribe((state) => {
this.contributors = state.currContributors.map(
(contributor) => new Contributor(100, 200, 50)
);
this.legacy = state.currLegacy.map((legacy) => new Legacy(200, 300, 100));
this.packages = state.currPackages.map(
(currPackage) => new Package(400, 300, 50, 'react', '<h3>Test</h3>')
this.revealables = state.revealables;
this.revealableObjects = this.revealables.map(
(revealable) => new Revealable(revealable, { x: 100, y: 200, w: 100 })
);
});
}
@ -33,25 +30,18 @@ export class DetailScene {
this.player.drawOnReveal();
this.player.follow();
this.contributors.forEach((contributor) => {
contributor.draw();
});
this.legacy.forEach((legacyObj) => {
legacyObj.place();
});
this.packages.forEach((packageObj) => {
packageObj.draw();
this.revealableObjects.forEach((revObj) => {
revObj.draw();
});
this.player.move();
}
onSceneClick() {
// store.setState({ currentScene: Scenes.OVERVIEW });
this.player.reveal();
this.packages.forEach((packageObj) => {
packageObj.onClick();
this.revealableObjects.forEach((revObj) => {
revObj.onClick();
});
}
}