Bläddra i källkod

Adds in a GameObjects folder that lists all available game objects to the Scripted objects tab in the creator panel in the editor.

Areloch 9 år sedan
förälder
incheckning
fb7e4f92ef
1 ändrade filer med 46 tillägg och 0 borttagningar
  1. 46 0
      Templates/Full/game/tools/worldEditor/scripts/editors/creator.ed.cs

+ 46 - 0
Templates/Full/game/tools/worldEditor/scripts/editors/creator.ed.cs

@@ -304,6 +304,36 @@ function EWCreatorWindow::navigate( %this, %address )
                %this.addShapeIcon( %obj );
          }
       }
+      
+      //Add a separate folder for Game Objects
+      if(isClass("Entity"))
+      {
+          if(%address $= "")
+          {
+              %this.addFolderIcon("GameObjects");
+          }
+          else
+          {
+              //find all GameObjectAssets
+              %assetQuery = new AssetQuery();
+              if(!AssetDatabase.findAssetType(%assetQuery, "GameObjectAsset"))
+                 return 0; //if we didn't find ANY, just exit
+
+              %count = %assetQuery.getCount();
+
+              for(%i=0; %i < %count; %i++)
+              {
+                 %assetId = %assetQuery.getAsset(%i);
+
+                 %gameObjectAsset = AssetDatabase.acquireAsset(%assetId);
+
+                 if(isFile(%gameObjectAsset.TAMLFilePath))
+                 {
+                    %this.addGameObjectIcon( %gameObjectAsset.gameObjectName );
+                 }
+              }
+          }
+      }
    }
    
    if ( %this.tab $= "Meshes" )
@@ -734,6 +764,22 @@ function EWCreatorWindow::addPrefabIcon( %this, %fullPath )
    %this.contentCtrl.addGuiControl( %ctrl );   
 }
 
+function EWCreatorWindow::addGameObjectIcon( %this, %gameObjectName )
+{
+   %ctrl = %this.createIcon();
+
+   %ctrl.altCommand = "spawnGameObject( \"" @ %gameObjectName @ "\", true );";
+   %ctrl.iconBitmap = EditorIconRegistry::findIconByClassName( "Prefab" );
+   %ctrl.text = %gameObjectName;
+   %ctrl.class = "CreatorGameObjectIconBtn";
+   %ctrl.tooltip = "Spawn the " @ %gameObjectName @ " GameObject";
+   
+   %ctrl.buttonType = "radioButton";
+   %ctrl.groupNum = "-1";   
+   
+   %this.contentCtrl.addGuiControl( %ctrl );   
+}
+
 function CreatorPopupMenu::onSelect( %this, %id, %text )
 {   
    %split = strreplace( %text, "/", " " );