Kaynağa Gözat

add a generic fallback for gamebaseObject spawning via the "add" menu that fills in a generalized datablkock dropdown popup based on class name if a specified one does not exist

AzaezelX 1 yıl önce
ebeveyn
işleme
373508f622

+ 8 - 0
Templates/BaseGame/game/tools/worldEditor/gui/objectBuilderGui.ed.gui

@@ -1079,6 +1079,14 @@ function ObjectBuilderGui::buildObject(%this, %className)
    %this.process();
 }
 
+function ObjectBuilderGui::buildGameBaseObject(%this, %className)
+{
+   %this.objectClassName = %className;
+   //assumes we fgollow the pattern of class is instance, classData is datablock
+   %this.addField("dataBlock", "TypeDataBlock", "Data block", %className @"Data");
+
+   %this.process();
+}
 //------------------------------------------------------------------------------
 // Environment
 //------------------------------------------------------------------------------

+ 8 - 3
Templates/BaseGame/game/tools/worldEditor/scripts/menus.ed.tscript

@@ -507,10 +507,15 @@ function EditorGui::buildMenus(%this)
       %class = %class;
       %method = "build" @ %buildfunc;
       if( !ObjectBuilderGui.isMethod( %method ) )
-         %method = "build" @ %class;
-
+         %method = "build" @ %class;         
+         
       if( !ObjectBuilderGui.isMethod( %method ) )
-         %cmd = "return new " @ %class @ "();";
+      {
+         if (isMemberOfClass(%class,"gameBase"))
+            %cmd = "ObjectBuilderGui.buildGameBaseObject("@ %class @");";
+         else
+            %cmd = "return new " @ %class @ "();";
+      }
       else
          %cmd = "ObjectBuilderGui." @ %method @ "();";