Browse Source

[scene-editor] Don't load camera2D if not a 2d scene

Clément Espeute 1 year ago
parent
commit
51fb3c1e31
2 changed files with 21 additions and 13 deletions
  1. 14 9
      hide/comp/SceneEditor.hx
  2. 7 4
      hide/view/FXEditor.hx

+ 14 - 9
hide/comp/SceneEditor.hx

@@ -1944,17 +1944,20 @@ class SceneEditor {
 		scene.s2d.defaultSmooth = true;
 		root2d.x = scene.s2d.width >> 1;
 		root2d.y = scene.s2d.height >> 1;
+
 		cameraController2D = makeCamController2D();
 		cameraController2D.onClick = cameraController.onClick;
-		var cam2d = @:privateAccess view.getDisplayState("Camera2D");
-		if( cam2d != null ) {
-			root2d.x = scene.s2d.width*0.5 + cam2d.x;
-			root2d.y = scene.s2d.height*0.5 + cam2d.y;
-			root2d.setScale(cam2d.z);
-		}
-		cameraController2D.loadFromScene();
-		if (camera2D)
+		
+		if (camera2D) {
+			var cam2d = @:privateAccess view.getDisplayState("Camera2D");
+			if( cam2d != null ) {
+				root2d.x = scene.s2d.width*0.5 + cam2d.x;
+				root2d.y = scene.s2d.height*0.5 + cam2d.y;
+				root2d.setScale(cam2d.z);
+			}
+			cameraController2D.loadFromScene();
 			resetCamera();
+		}
 
 		root2d.addChild(cameraController2D);
 		scene.setCurrent();
@@ -4042,7 +4045,9 @@ class SceneEditor {
 	function update(dt:Float) {
 		saveCam3D();
 
-		@:privateAccess view.saveDisplayState("Camera2D", { x : sceneData.shared.root2d.x - scene.s2d.width*0.5, y : sceneData.shared.root2d.y - scene.s2d.height*0.5, z : sceneData.shared.root2d.scaleX });
+		if (camera2D) {
+			@:privateAccess view.saveDisplayState("Camera2D", { x : sceneData.shared.root2d.x - scene.s2d.width*0.5, y : sceneData.shared.root2d.y - scene.s2d.height*0.5, z : sceneData.shared.root2d.scaleX });
+		}
 		if(gizmo != null) {
 			if(!gizmo.moving) {
 				moveGizmoToSelection();

+ 7 - 4
hide/view/FXEditor.hx

@@ -399,10 +399,7 @@ class FXEditor extends hide.view.FileView {
 		var content = sys.io.File.getContent(getPath());
 		var json = haxe.Json.parse(content);
 
-		if (json.type == "fx2d") {
-			is2D = true;
-			sceneEditor.is2D = true;
-		}
+
 		data = cast(PrefabElement.createFromDynamic(json), hrt.prefab.fx.BaseFX);
 		currentSign = ide.makeSignature(content);
 
@@ -459,6 +456,12 @@ class FXEditor extends hide.view.FileView {
 		tools = new hide.comp.Toolbar(null,element.find(".tools-buttons"));
 		var tabs = new hide.comp.Tabs(null,element.find(".tabs"));
 		sceneEditor = new FXSceneEditor(this, cast(data, hrt.prefab.Prefab));
+
+		if (json.type == "fx2d") {
+			is2D = true;
+			sceneEditor.is2D = true;
+		}
+
 		element.find(".hide-scenetree").first().append(sceneEditor.tree.element);
 		element.find(".render-props-edition").find('.hide-scenetree').append(sceneEditor.renderPropsTree.element);
 		element.find(".hide-scroll").first().append(sceneEditor.properties.element);