feat: finished adding painting features, added eraser
This commit is contained in:
@@ -24,7 +24,6 @@ export default class TrackView extends Rung implements ISubscriber<EventTypeSubs
|
||||
private title: HTMLHeadingElement;
|
||||
private trackUnitViews: TrackUnitView[] = [];
|
||||
private trackUnitViewBlock: HTMLElement | null = null;
|
||||
private lastHoveredTrackUnitView: TrackUnitView | null = null;
|
||||
private sub: ISubscription | null = null;
|
||||
private state: AppState;
|
||||
static deselectingUnits = false;
|
||||
@@ -79,8 +78,8 @@ export default class TrackView extends Rung implements ISubscriber<EventTypeSubs
|
||||
} else {
|
||||
view = new TrackUnitView({ trackUnit });
|
||||
this.trackUnitViews.push(view);
|
||||
view.onHover(() => this.onTrackUnitViewHover(view));
|
||||
view.onMouseDown((event: MouseEvent) => this.onTrackUnitClick(event.button, i));
|
||||
view.onHover(() => this.applyCurrentToolToTrackUnit(view));
|
||||
view.onMouseDown((event: MouseEvent) => this.onTrackUnitClick(event.button, view));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -88,28 +87,32 @@ export default class TrackView extends Rung implements ISubscriber<EventTypeSubs
|
||||
deadViews.forEach(trackUnitView => trackUnitView.setUnit(null));
|
||||
}
|
||||
|
||||
private onTrackUnitClick(button: number, index: number) {
|
||||
private onTrackUnitClick(button: number, view: TrackUnitView) {
|
||||
if (button === 0) {
|
||||
TrackView.selectingUnits = true;
|
||||
} else if (button === 2) {
|
||||
TrackView.deselectingUnits = true;
|
||||
}
|
||||
this.applyCurrentToolToTrackUnit(view);
|
||||
}
|
||||
|
||||
private onTrackUnitViewHover(trackUnitView: TrackUnitView) {
|
||||
this.lastHoveredTrackUnitView = trackUnitView;
|
||||
if (TrackView.selectingUnits) {
|
||||
if (this.state.selectedTool === 'sticking') {
|
||||
this.lastHoveredTrackUnitView.setStickingType(this.state.activeStickingType);
|
||||
} else if (this.state.selectedTool === 'track-unit-type') {
|
||||
this.lastHoveredTrackUnitView.turnOn();
|
||||
this.lastHoveredTrackUnitView.setType(this.state.activeTrackUnitType);
|
||||
private applyCurrentToolToTrackUnit(trackUnitView: TrackUnitView) {
|
||||
if (this.state.selectedTool === "sticking") {
|
||||
if (TrackView.selectingUnits) {
|
||||
trackUnitView.setStickingType(this.state.activeStickingType);
|
||||
} else if (TrackView.deselectingUnits) {
|
||||
trackUnitView.setStickingType("none");
|
||||
}
|
||||
} else if (TrackView.deselectingUnits) {
|
||||
if (this.state.selectedTool === 'sticking') {
|
||||
this.lastHoveredTrackUnitView.setStickingType("none");
|
||||
} else if (this.state.selectedTool === 'track-unit-type') {
|
||||
this.lastHoveredTrackUnitView.turnOff();
|
||||
} else if (this.state.selectedTool === "track-unit-type") {
|
||||
if (TrackView.selectingUnits) {
|
||||
trackUnitView.turnOn();
|
||||
trackUnitView.setType(this.state.activeTrackUnitType);
|
||||
} else if (TrackView.deselectingUnits) {
|
||||
trackUnitView.turnOff();
|
||||
}
|
||||
} else if (this.state.selectedTool === "eraser") {
|
||||
if (TrackView.selectingUnits || TrackView.deselectingUnits) {
|
||||
trackUnitView.turnOff();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user