|
@@ -156,7 +156,9 @@ export class PropertyTabComponent extends React.Component<IPropertyTabComponentP
|
|
let decoder = new TextDecoder("utf-8");
|
|
let decoder = new TextDecoder("utf-8");
|
|
SerializationTools.Deserialize(JSON.parse(decoder.decode(data)), this.props.globalState);
|
|
SerializationTools.Deserialize(JSON.parse(decoder.decode(data)), this.props.globalState);
|
|
|
|
|
|
- this.changeMode(this.props.globalState.nodeMaterial!.mode, true, false);
|
|
|
|
|
|
+ if (!this.changeMode(this.props.globalState.nodeMaterial!.mode, true, false)) {
|
|
|
|
+ this.props.globalState.onResetRequiredObservable.notifyObservers();
|
|
|
|
+ }
|
|
this.props.globalState.onSelectionChangedObservable.notifyObservers(null);
|
|
this.props.globalState.onSelectionChangedObservable.notifyObservers(null);
|
|
}, undefined, true);
|
|
}, undefined, true);
|
|
}
|
|
}
|
|
@@ -243,21 +245,22 @@ export class PropertyTabComponent extends React.Component<IPropertyTabComponentP
|
|
|
|
|
|
NodeMaterial.ParseFromSnippetAsync(snippedID, scene, "", material).then(() => {
|
|
NodeMaterial.ParseFromSnippetAsync(snippedID, scene, "", material).then(() => {
|
|
material.build();
|
|
material.build();
|
|
- this.changeMode(this.props.globalState.nodeMaterial!.mode, true, false);
|
|
|
|
- this.props.globalState.onResetRequiredObservable.notifyObservers();
|
|
|
|
|
|
+ if (!this.changeMode(this.props.globalState.nodeMaterial!.mode, true, false)) {
|
|
|
|
+ this.props.globalState.onResetRequiredObservable.notifyObservers();
|
|
|
|
+ }
|
|
}).catch((err) => {
|
|
}).catch((err) => {
|
|
alert("Unable to load your node material: " + err);
|
|
alert("Unable to load your node material: " + err);
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
- changeMode(value: any, force = false, loadDefault = true) {
|
|
|
|
|
|
+ changeMode(value: any, force = false, loadDefault = true): boolean {
|
|
if (this.props.globalState.mode === value) {
|
|
if (this.props.globalState.mode === value) {
|
|
- return;
|
|
|
|
|
|
+ return false;
|
|
}
|
|
}
|
|
|
|
|
|
if (!force && !confirm('Are your sure? You will lose your current changes (if any) if they are not saved!')) {
|
|
if (!force && !confirm('Are your sure? You will lose your current changes (if any) if they are not saved!')) {
|
|
this._modeSelect.current?.setValue(this.props.globalState.mode);
|
|
this._modeSelect.current?.setValue(this.props.globalState.mode);
|
|
- return;
|
|
|
|
|
|
+ return false;
|
|
}
|
|
}
|
|
|
|
|
|
if (force) {
|
|
if (force) {
|
|
@@ -267,27 +270,36 @@ export class PropertyTabComponent extends React.Component<IPropertyTabComponentP
|
|
if (loadDefault) {
|
|
if (loadDefault) {
|
|
switch (value) {
|
|
switch (value) {
|
|
case NodeMaterialModes.Material:
|
|
case NodeMaterialModes.Material:
|
|
- this.props.globalState.previewType = PreviewType.Sphere;
|
|
|
|
this.props.globalState.nodeMaterial!.setToDefault();
|
|
this.props.globalState.nodeMaterial!.setToDefault();
|
|
break;
|
|
break;
|
|
case NodeMaterialModes.PostProcess:
|
|
case NodeMaterialModes.PostProcess:
|
|
this.props.globalState.nodeMaterial!.setToDefaultPostProcess();
|
|
this.props.globalState.nodeMaterial!.setToDefaultPostProcess();
|
|
break;
|
|
break;
|
|
case NodeMaterialModes.Particle:
|
|
case NodeMaterialModes.Particle:
|
|
- this.props.globalState.previewType = PreviewType.Bubbles;
|
|
|
|
this.props.globalState.nodeMaterial!.setToDefaultParticle();
|
|
this.props.globalState.nodeMaterial!.setToDefaultParticle();
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
|
|
+ }
|
|
|
|
|
|
- this.props.globalState.listOfCustomPreviewFiles = [];
|
|
|
|
- (this.props.globalState.previewFile as any) = undefined;
|
|
|
|
-
|
|
|
|
- DataStorage.WriteNumber("PreviewType", this.props.globalState.previewType);
|
|
|
|
|
|
+ switch (value) {
|
|
|
|
+ case NodeMaterialModes.Material:
|
|
|
|
+ this.props.globalState.previewType = PreviewType.Sphere;
|
|
|
|
+ break;
|
|
|
|
+ case NodeMaterialModes.Particle:
|
|
|
|
+ this.props.globalState.previewType = PreviewType.Bubbles;
|
|
|
|
+ break;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ this.props.globalState.listOfCustomPreviewFiles = [];
|
|
|
|
+ (this.props.globalState.previewFile as any) = undefined;
|
|
|
|
+
|
|
|
|
+ DataStorage.WriteNumber("PreviewType", this.props.globalState.previewType);
|
|
|
|
+
|
|
this.props.globalState.mode = value as NodeMaterialModes;
|
|
this.props.globalState.mode = value as NodeMaterialModes;
|
|
|
|
|
|
this.props.globalState.onResetRequiredObservable.notifyObservers();
|
|
this.props.globalState.onResetRequiredObservable.notifyObservers();
|
|
|
|
+
|
|
|
|
+ return true;
|
|
}
|
|
}
|
|
|
|
|
|
render() {
|
|
render() {
|