Fixed up color selector.

This commit is contained in:
Michael Mainguy 2023-08-22 16:28:45 -05:00
parent 95899878c7
commit be8306141f
3 changed files with 13 additions and 0 deletions

View File

@ -51,6 +51,9 @@ export class DiagramManager {
if (this.onDiagramEventObservable.hasObservers()) { if (this.onDiagramEventObservable.hasObservers()) {
this.logger.warn("onDiagramEventObservable already has Observers, you should be careful"); this.logger.warn("onDiagramEventObservable already has Observers, you should be careful");
} }
this.toolbox.colorChangeObservable.add((evt) => {
this.persistenceManager.changeColor(Color3.FromHexString(evt.oldColor), Color3.FromHexString(evt.newColor));
}, -1, true, this, false);
this.onDiagramEventObservable.add(this.onDiagramEvent, -1, true, this); this.onDiagramEventObservable.add(this.onDiagramEvent, -1, true, this);
this.logger.debug("DiagramManager constructed"); this.logger.debug("DiagramManager constructed");
scene.onMeshRemovedObservable.add((mesh) => { scene.onMeshRemovedObservable.add((mesh) => {

View File

@ -174,6 +174,9 @@ export class EditMenu {
const template = mesh.metadata.template; const template = mesh.metadata.template;
const newBase = this.getTool(template, const newBase = this.getTool(template,
Color3.FromHexString(this.paintColor)); Color3.FromHexString(this.paintColor));
if (!newBase) {
return;
}
const newMesh = (mesh as InstancedMesh).clone(mesh.name, mesh.parent, false, newBase); const newMesh = (mesh as InstancedMesh).clone(mesh.name, mesh.parent, false, newBase);
newMesh.id = mesh.id; newMesh.id = mesh.id;
newMesh.physicsBody = mesh.physicsBody; newMesh.physicsBody = mesh.physicsBody;

View File

@ -4,6 +4,7 @@ import {
InstancedMesh, InstancedMesh,
Mesh, Mesh,
MeshBuilder, MeshBuilder,
Observable,
Scene, Scene,
StandardMaterial, StandardMaterial,
TransformNode, TransformNode,
@ -33,6 +34,8 @@ export class Toolbox {
private readonly addPanel: StackPanel3D; private readonly addPanel: StackPanel3D;
private readonly controllers: Controllers; private readonly controllers: Controllers;
private xObserver; private xObserver;
public readonly colorChangeObservable: Observable<{ oldColor: string, newColor: string }> =
new Observable<{ oldColor: string; newColor: string }>()
constructor(scene: Scene, controllers: Controllers) { constructor(scene: Scene, controllers: Controllers) {
this.scene = scene; this.scene = scene;
@ -212,6 +215,10 @@ export class Toolbox {
material.name = "material-" + newColorHex; material.name = "material-" + newColorHex;
mesh.id = "toolbox-color-" + newColorHex; mesh.id = "toolbox-color-" + newColorHex;
mesh.name = "toolbox-color-" + newColorHex; mesh.name = "toolbox-color-" + newColorHex;
this.colorChangeObservable.notifyObservers({
oldColor: oldColor.toHexString(),
newColor: newColor.toHexString()
});
}); });
colorPickerTexture.addControl(colorPicker); colorPickerTexture.addControl(colorPicker);