Procházet zdrojové kódy

add few models for preview

MonkeyFirst před 10 roky
rodič
revize
6b927e8533

+ 48 - 2
bin/Data/Scripts/Editor/EditorMaterial.as

@@ -22,10 +22,11 @@ void CreateMaterialEditor()
     materialWindow.opacity = uiMaxOpacity;
 
     InitMaterialPreview();
+    InitModelPreviewList();
     RefreshMaterialEditor();
 
-    int height = Min(ui.root.height - 60, 500);
-    materialWindow.SetSize(300, height);
+    int height = Min(ui.root.height - 60, 600);
+    materialWindow.SetSize(400, height);
     CenterDialog(materialWindow);
 
     HideMaterialEditor();
@@ -101,6 +102,15 @@ void InitMaterialPreview()
     SubscribeToEvent(materialPreview, "DragMove", "RotateMaterialPreview");
 }
 
+void InitModelPreviewList()
+{
+    DropDownList@ modelPreview = materialWindow.GetChild("ModelPreview", true);
+    
+    SubscribeToEvent(materialWindow.GetChild("ModelPreview", true), "ItemSelected", "EditModelPreviewChange");
+    
+
+}
+
 void EditMaterial(Material@ mat)
 {
     if (editMaterial !is null)
@@ -473,6 +483,42 @@ void SaveMaterialAsDone(StringHash eventType, VariantMap& eventData)
     }
 }
 
+void EditModelPreviewChange(StringHash eventType, VariantMap& eventData)
+{
+    if (materialPreview is null)
+        return;
+        
+    previewModelNode.scale = Vector3(1.0, 1.0, 1.0);
+    
+    DropDownList@ element = eventData["Element"].GetPtr();
+    
+    switch (element.selection)
+    {
+        case 0:
+            previewModel.model = cache.GetResource("Model", "Models/Box.mdl");
+            break;
+        case 1:
+            previewModel.model = cache.GetResource("Model", "Models/Sphere.mdl");
+            break;
+        case 2:
+            previewModel.model = cache.GetResource("Model", "Models/Plane.mdl");
+            break;
+        case 3:
+            previewModel.model = cache.GetResource("Model", "Models/Cylinder.mdl");
+            previewModelNode.scale = Vector3(0.8, 0.8, 0.8);
+            break;
+        case 4:
+            previewModel.model = cache.GetResource("Model", "Models/Cone.mdl");
+            break;
+        case 5:
+            previewModel.model = cache.GetResource("Model", "Models/TeaPot.mdl");
+            break;
+    }
+        
+    materialPreview.QueueUpdate();
+    
+}
+
 void EditShaderParameter(StringHash eventType, VariantMap& eventData)
 {
     if (editMaterial is null)

+ 40 - 0
bin/Data/UI/EditorMaterialWindow.xml

@@ -25,6 +25,46 @@
         <attribute name="Is Resizable" value="true" />
         <attribute name="Fixed Height Resizing" value="true" />
         <attribute name="Resize Border" value="0 6 0 6" />
+        <element type="DropDownList">
+                            <attribute name="Name" value="ModelPreview" />
+                            <attribute name="Min Size" value="80 16" />
+                            <attribute name="Max Size" value="80 16" />
+                            <attribute name="Resize Popup" value="true" />
+                            <attribute name="Horiz Alignment" value="Right" />
+                            <attribute name="Vert Alignment" value="Bottom" />
+                            <element type="Window" internal="true" popup="true" style="none">
+                                    <element type="ListView" internal="true" style="none">
+                                        <element type="BorderImage" internal="true" style="none">
+                                            <element internal="true" style="none">
+                                                <element type="Text" style="FileSelectorFilterText">
+                                                    <attribute name="Text" value="Box" />
+                                                    <attribute name="Text Alignment" value="Center" />
+                                                </element>
+                                                <element type="Text" style="FileSelectorFilterText">
+                                                    <attribute name="Text" value="Sphere" />
+                                                    <attribute name="Text Alignment" value="Center" />
+                                                </element>
+                                                <element type="Text" style="FileSelectorFilterText">
+                                                    <attribute name="Text" value="Plane" />
+                                                    <attribute name="Text Alignment" value="Center" />
+                                                </element>
+                                                <element type="Text" style="FileSelectorFilterText">
+                                                    <attribute name="Text" value="Cylinder" />
+                                                    <attribute name="Text Alignment" value="Center" />
+                                                </element>
+                                                <element type="Text" style="FileSelectorFilterText">
+                                                    <attribute name="Text" value="Cone" />
+                                                    <attribute name="Text Alignment" value="Center" />
+                                                </element>
+                                                <element type="Text" style="FileSelectorFilterText">
+                                                    <attribute name="Text" value="TeaPot" />
+                                                    <attribute name="Text Alignment" value="Center" />
+                                                </element>
+                                            </element>
+                                        </element>
+                                    </element>
+                                </element>                           
+         </element>
     </element>
     <element type="BorderImage" style="EditorDivider" />
     <element>