Sfoglia il codice sorgente

Support drag and drop on sub mesh material fields, Material Inspector cleanups and additional techniques

Josh Engebretson 10 anni fa
parent
commit
92f7e04c87

+ 1 - 1
Script/AtomicEditor/ui/frames/inspector/AttributeInfoEdit.ts

@@ -208,7 +208,7 @@ class StringAttributeEdit extends AttributeInfoEdit {
         field.skinBg = "TBAttrEditorField";;
         field.fontDescription = AttributeInfoEdit.fontDesc;
         var lp = new Atomic.UILayoutParams();
-        lp.width = 140;
+        lp.width = 160;
         field.layoutParams = lp;
 
         field.subscribeToEvent(field, "UIWidgetEditComplete", (ev) => this.handleUIWidgetEditCompleteEvent(ev));

+ 30 - 0
Script/AtomicEditor/ui/frames/inspector/ComponentAttributeUI.ts

@@ -168,6 +168,36 @@ class SubmeshAttributeEdit extends AttributeInfoEdit {
             }.bind(this));
         }
 
+        // handle dropping of component on field
+        o.editField.subscribeToEvent(o.editField, "DragEnded", (ev: Atomic.DragEndedEvent) => {
+
+            if (ev.target == o.editField) {
+
+                var dragObject = ev.dragObject;
+
+                var importer;
+
+                if (dragObject.object && dragObject.object.typeName == "Asset") {
+
+                    var asset = <ToolCore.Asset>dragObject.object;
+
+                    if (asset.importerTypeName == importerName) {
+                        importer = asset.importer;
+                    }
+
+                }
+
+                if (importer) {
+
+                    var resource = asset.getResource(resourceTypeName);
+
+                    this.editType.onAttributeInfoEdited(this.attrInfo, resource, materialIndex);
+                    this.refresh();
+                }
+            }
+
+        });
+
     }
 
     createEditWidget() {

+ 7 - 8
Script/AtomicEditor/ui/frames/inspector/MaterialInspector.ts

@@ -17,8 +17,10 @@ var solidSource = new Atomic.UIMenuItemSource();
 solidSource.addItem(new Atomic.UIMenuItem("Diffuse", "Diffuse"));
 solidSource.addItem(new Atomic.UIMenuItem("Diffuse Emissive", "Diffuse Emissive"));
 solidSource.addItem(new Atomic.UIMenuItem("Diffuse Normal", "Diffuse Normal"));
+solidSource.addItem(new Atomic.UIMenuItem("Diffuse Specular", "Diffuse Specular"));
 solidSource.addItem(new Atomic.UIMenuItem("Diffuse Normal Specular", "Diffuse Normal Specular"));
 solidSource.addItem(new Atomic.UIMenuItem("Diffuse Unlit", "Diffuse Unlit"));
+solidSource.addItem(new Atomic.UIMenuItem("No Texture", "No Texture"));
 
 var tranSource = new Atomic.UIMenuItemSource();
 tranSource.addItem(new Atomic.UIMenuItem("Alpha", "Alpha"));
@@ -49,11 +51,13 @@ var techniqueLookup = {
     "Techniques/Diff.xml": "Diffuse",
     "Techniques/DiffEmissive.xml": "Diffuse Emissive",
     "Techniques/DiffNormal.xml": "Diffuse Normal",
+    "Techniques/DiffSpec.xml": "Diffuse Specular",
     "Techniques/DiffNormalSpec.xml": "Diffuse Normal Specular",
     "Techniques/DiffUnlit.xml": "Diffuse Unlit",
     "Techniques/DiffAlpha.xml": "Alpha",
     "Techniques/DiffAlphaMask.xml": "Alpha Mask",
-    "Techniques/DiffAdd.xml": "Additive"
+    "Techniques/DiffAdd.xml": "Additive",
+    "Techniques/NoTexture.xml": "No Texture"
 }
 
 var techniqueReverseLookup = {};
@@ -388,15 +392,10 @@ class MaterialInspector extends ScriptWidget {
         field.skinBg = "TBAttrEditorField";;
         field.fontDescription = this.fd;
         var lp = new Atomic.UILayoutParams();
-        lp.width = 140;
+        lp.width = 160;
         field.layoutParams = lp;
 
-        field.text = material.name;
-
-        var texture = material.getTexture(Atomic.TU_DIFFUSE);
-
-        if (texture)
-            field.text = texture.name;
+        field.text = Atomic.splitPath(material.name).fileName;
 
         nameLayout.addChild(field);