فهرست منبع

fix datablock display to sync to selected instance.
tie in frame selector frontend

AzaezelX 3 ماه پیش
والد
کامیت
3c7b16306d

+ 2 - 1
Templates/BaseGame/game/tools/decalEditor/decalEditorActions.tscript

@@ -74,7 +74,8 @@ function ActionEditNodeDetails::doit(%this)
       %pos = getwords(%this.newTransformData,0,2);
       %tan = getwords(%this.newTransformData,3,5);
       %size = getword(%this.newTransformData,6);
-      %uvID = DecalEditorGui.getDecalFrame(%this.instanceId);
+      //%uvID = DecalEditorGui.getDecalFrame(%this.instanceId);
+      %uvID = DecalEditorDetailContainer-->frame.getText();
       DecalEditorGui.editDecalDetails( %this.instanceId, %pos, %tan, %size, %uvID  );
       DecalEditorGui.syncNodeDetails();
       DecalEditorGui.selectDecal( %this.instanceId );

+ 19 - 1
Templates/BaseGame/game/tools/decalEditor/decalEditorGui.gui

@@ -677,7 +677,7 @@ $guiContent = new GuiDecalEditorCtrl(DecalEditorGui) {
                   
                   new GuiContainer(DecalEditorDetailContainer){
                      Position = "0 202";
-                     Extent = "202 79";
+                     Extent = "202 100";
                      HorizSizing = "width";
                      VertSizing = "bottom";
                      isContainer = "1";
@@ -753,6 +753,24 @@ $guiContent = new GuiDecalEditorCtrl(DecalEditorGui) {
                         Extent = "128 18";
                         text = "";
                      };
+                     new GuiTextCtrl(){ 
+                        Profile = "ToolsGuiTextRightProfile";
+                        HorizSizing = "right";
+                        VertSizing = "bottom";
+                        Position = "3 80";
+                        Extent = "47 16";
+                        text = "frame";
+                     };
+                     new GuiTextEditCtrl(){ // instance frame
+                        Profile = "ToolsGuiTextEditProfile";
+                        internalName = "frame";
+                        HorizSizing = "width";
+                        VertSizing = "bottom";
+                        AltCommand = "DecalEditorGui.editNodeDetails();";
+                        Position = "54 80";
+                        Extent = "128 18";
+                        text = "";
+                     };
                   };
                };
             };

+ 9 - 2
Templates/BaseGame/game/tools/decalEditor/decalEditorGui.tscript

@@ -291,6 +291,9 @@ function DecalEditorGui::onSelectInstance( %this, %decalId, %lookupName )
    %item = DecalEditorTreeView.findItemByName( %name );
    DecalEditorTreeView.selectItem( %item );
    DecalEditorGui.syncNodeDetails();
+   
+   %dbListID = DecalDataList.findItemText(%lookupName);
+   DecalDataList.setCurSel( %dbListID );
 }
 
 function DecalEditorGui::onCreateInstance( %this, %decalId, %lookupName )
@@ -363,6 +366,7 @@ function DecalEditorGui::syncNodeDetails( %this )
    DecalEditorDetailContainer-->nodePosition.setText(getWords(%transformData, 0, 2));
    DecalEditorDetailContainer-->nodeTangent.setText(getWords(%transformData, 3, 5));
    DecalEditorDetailContainer-->nodeSize.setText(getWord(%transformData, 6));
+   DecalEditorDetailContainer-->frame.setText(DecalEditorGui.getDecalFrame(DecalEditorGui.selDecalInstanceId));
 }
 
 function DecalEditorGui::paletteSync( %this, %mode )
@@ -386,7 +390,8 @@ function DecalDataList::onSelect( %this, %id, %text )
    $Tools::materialEditorList = %data.getId();
    
    //Canvas.pushDialog( DecalEditDlg );
-   DecalInspector.inspect( %data );
+   DecalInspector.inspect( %data );   
+   DecalEditorDetailContainer-->frame.setText(%obj.frame);
    DecalEditorGui.updateDecalPreview( %data.materialAsset );
 }
 
@@ -560,7 +565,9 @@ function DecalInspector::onInspectorFieldModified( %this, %object, %fieldName, %
       DecalEditorGui.updateDecalPreview( %newValue );
       
    // Same work to do as for the regular WorldEditor Inspector.
-   Inspector::onInspectorFieldModified( %this, %object, %fieldName, %arrayIndex, %oldValue, %newValue );   
+   Inspector::onInspectorFieldModified( %this, %object, %fieldName, %arrayIndex, %oldValue, %newValue );
+   
+   warn( "modified "@ DecalEditorGui.selDecalInstanceId); //this is an array id, not an objectid
    
    if (%oldValue != %newValue || %oldValue !$= %newValue)
       %this.setDirty(%object);