Generate overview based on subproject size
This commit is contained in:
parent
4053961357
commit
9790361f24
9 changed files with 109 additions and 24 deletions
|
|
@ -1,7 +1,8 @@
|
|||
import { mp5 } from '../../main';
|
||||
import store from '../store';
|
||||
import { Scenes } from './scenes';
|
||||
export class LegacyScene {
|
||||
|
||||
export class DetailScene {
|
||||
constructor() {}
|
||||
|
||||
draw() {
|
||||
|
|
@ -9,7 +10,8 @@ export class LegacyScene {
|
|||
}
|
||||
|
||||
onSceneClick() {
|
||||
console.log('Click on legacy scene');
|
||||
console.log('Click on detail scene');
|
||||
console.log('Changing back to overview');
|
||||
store.setState({ currentScene: Scenes.OVERVIEW });
|
||||
}
|
||||
}
|
||||
|
|
@ -2,21 +2,17 @@ import { mp5 } from '../../main';
|
|||
import { Player } from '../sketchObjects/Player';
|
||||
import { colors } from '../constants/colors';
|
||||
import { Edge } from '../sketchObjects/Edge';
|
||||
import { Scenes } from './scenes';
|
||||
import store from '../store';
|
||||
import { generateEdges } from '../helpers';
|
||||
import { Scenes } from './scenes';
|
||||
import projectMetadata from '../../metadata/project.json';
|
||||
|
||||
export class OverviewScene {
|
||||
player: Player;
|
||||
edgeData: Array<{ x: number; y: number; r: number; scene: Scenes }>;
|
||||
edges: Edge[];
|
||||
|
||||
constructor() {
|
||||
this.edgeData = [
|
||||
{ x: 100, y: 100, r: 50, scene: Scenes.LEGACY },
|
||||
{ x: 900, y: 400, r: 100, scene: Scenes.LEGACY },
|
||||
{ x: 300, y: 600, r: 75, scene: Scenes.LEGACY },
|
||||
];
|
||||
this.edges = this.edgeData.map((edge) => new Edge(edge.x, edge.y, edge.r));
|
||||
this.edges = generateEdges(projectMetadata.subprojects);
|
||||
this.player = new Player();
|
||||
}
|
||||
|
||||
|
|
@ -29,10 +25,10 @@ export class OverviewScene {
|
|||
}
|
||||
|
||||
public onSceneClick() {
|
||||
this.edgeData.forEach((edge, i) => {
|
||||
this.edges.forEach((edge, i) => {
|
||||
const dist = mp5.dist(mp5.mouseX, mp5.mouseY, edge.x, edge.y);
|
||||
if (dist < edge.r) {
|
||||
store.setState({ currentScene: edge.scene });
|
||||
store.setState({ currentScene: Scenes.DETAIL });
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,4 @@
|
|||
export enum Scenes {
|
||||
OVERVIEW = 'OVERVIEW',
|
||||
LEGACY = 'LEGACY',
|
||||
PACKAGES = 'PACKAGES',
|
||||
CONTRIBUTORS = 'CONTRIBUTORS',
|
||||
DETAIL = 'DETAIL',
|
||||
}
|
||||
|
|
|
|||
Reference in a new issue