Browse Source

L3D: clear cdb props

trethaller 7 năm trước cách đây
mục cha
commit
86e9fb2f7d
1 tập tin đã thay đổi với 15 bổ sung8 xóa
  1. 15 8
      hide/view/l3d/Level3D.hx

+ 15 - 8
hide/view/l3d/Level3D.hx

@@ -228,7 +228,7 @@ private class Level3DSceneEditor extends hide.comp.SceneEditor {
 		var sheet = Level3D.getCdbModel(e);
 		var sheet = Level3D.getCdbModel(e);
 		var group = new hide.Element('
 		var group = new hide.Element('
 			<div class="group" name="CDB">
 			<div class="group" name="CDB">
-				<dl><dt>Type</dt><dd><select><option value="">-- Choose --</option></select></dd>
+				<dl><dt>Type</dt><dd><select><option value="">- No props -</option></select></dd>
 			</div>
 			</div>
 		');
 		');
 
 
@@ -242,17 +242,24 @@ private class Level3DSceneEditor extends hide.comp.SceneEditor {
 		if(sheet != null) {
 		if(sheet != null) {
 			select.val(sheet.name.split("@").pop());
 			select.val(sheet.name.split("@").pop());
 		}
 		}
-		select.change(function(v) {
-			var typeId = select.val();
-			var cdbSheet = Level3D.resolveCdbType(typeId);
-			if(cdbSheet == null)
-				return;
 
 
+		function changeProps(props: Dynamic) {
 			properties.undo.change(Field(e, "props", e.props), ()->edit.rebuildProperties());
 			properties.undo.change(Field(e, "props", e.props), ()->edit.rebuildProperties());
-			e.props = cdbSheet.getDefaults();
-			Reflect.setField(e.props, "$cdbtype", typeId);
+			e.props = props;
 			edit.onChange(e, "props");
 			edit.onChange(e, "props");
 			edit.rebuildProperties();
 			edit.rebuildProperties();
+		}
+
+		select.change(function(v) {
+			var typeId = select.val();
+			if(typeId == null || typeId == "") {
+				changeProps(null);
+				return;
+			}
+			var cdbSheet = Level3D.resolveCdbType(typeId);
+			var props = cdbSheet.getDefaults();
+			Reflect.setField(props, "$cdbtype", typeId);
+			changeProps(props);
 		});
 		});
 
 
 		edit.properties.add(group);
 		edit.properties.add(group);