diff --git a/Templates/BaseGame/game/data/UI/UI.tscript b/Templates/BaseGame/game/data/UI/UI.tscript index ee2c111e7..9dae2fe5d 100644 --- a/Templates/BaseGame/game/data/UI/UI.tscript +++ b/Templates/BaseGame/game/data/UI/UI.tscript @@ -85,6 +85,9 @@ function UI::initClient(%this) %this.queueExec("./scripts/help"); %this.queueExec("./scripts/cursors"); %this.queueExec("./scripts/utility"); + + if(isToolBuild()) + %this.queueExec("./tools/creator.tscript"); } function UI::onCreateClientConnection(%this){} diff --git a/Templates/BaseGame/game/data/UI/tools/creator.tscript b/Templates/BaseGame/game/data/UI/tools/creator.tscript new file mode 100644 index 000000000..c8322106b --- /dev/null +++ b/Templates/BaseGame/game/data/UI/tools/creator.tscript @@ -0,0 +1,61 @@ +function UI::loadModuleCreatorClasses(%this) +{ + AssetBrowser.beginCreatorGroup( "BaseUI", "GuiEditor" ); + AssetBrowser.addCreatorClass("GuiContainer", "UINavigation Container", "UINavContainer" ); + AssetBrowser.addCreatorClass("GuiContainer", "Menu List", "GUIMenuList" ); + AssetBrowser.addCreatorClass("GuiStackControl", "Stack Menu List", "GuiStackMenuList" ); + AssetBrowser.addCreatorClass("GuiContainer", "Menu Input Button Handler", "MenuInputBtnHandler" ); + AssetBrowser.addCreatorClass("GuiIconButtonCtrl", "Menu Input Button", "MenuInputBtn" ); + AssetBrowser.endCreatorGroup(); +} + + +function ObjectBuilderGui::buildUINavContainer(%this) +{ + %ctrl = new GuiContainer() + { + superClass = "UINavigation"; + }; + + return %ctrl; +} + +function ObjectBuilderGui::buildGUIMenuList(%this) +{ + %ctrl = new GuiContainer() + { + superClass = "MenuList"; + }; + + return %ctrl; +} + +function ObjectBuilderGui::builduiStackMenuList(%this) +{ + %ctrl = new GuiStackControl() + { + superClass = "MenuList"; + }; + + return %ctrl; +} + +function ObjectBuilderGui::buildMenuInputBtnHandler(%this) +{ + %ctrl = new GuiContainer() + { + class = "MenuInputButtonContainer"; + }; + + return %ctrl; +} + +function ObjectBuilderGui::buildMenuInputBtn(%this) +{ + %ctrl = new GuiIconButtonCtrl() + { + class = "MenuInputButton"; + }; + + return %ctrl; +} \ No newline at end of file diff --git a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.tscript b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.tscript index 0c7270d10..bea15c084 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.tscript +++ b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.tscript @@ -2517,7 +2517,14 @@ function GuiEditor::onControlDropped(%this, %payload, %position) else { %className = %payload.assetName; + if(%payload.altCommand !$= "") + { + %cmd = %payload.altCommand; + } + else + { %cmd = "return new " @ %className @ "();"; + } %ctrl = eval( %cmd ); } diff --git a/Templates/BaseGame/game/tools/assetBrowser/scripts/creator.tscript b/Templates/BaseGame/game/tools/assetBrowser/scripts/creator.tscript index c6b279d35..f4e78daf3 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/scripts/creator.tscript +++ b/Templates/BaseGame/game/tools/assetBrowser/scripts/creator.tscript @@ -130,6 +130,8 @@ function AssetBrowser::loadCreatorClasses(%this) %this.creatorClassArray.sort(true); %guiClasses.delete(); + + callOnModules("loadModuleCreatorClasses"); } function AssetBrowser::beginCreatorGroup(%this, %group, %editor) @@ -185,7 +187,14 @@ function AssetBrowser::addCreatorClass(%this, %class, %name, %buildfunc) %cmd = "ObjectBuilderGui.build" @ %buildfunc @ "();"; } - %buildfunc = "ObjectBuilderGui.newObjectCallback = \"AssetBrowser.onFinishCreateObject\"; ObjectCreator.createObject( \"" @ %cmd @ "\" );"; + if(GuiEditorIsActive()) + { + %buildfunc = "return " @ %cmd; + } + else + { + %buildfunc = "ObjectBuilderGui.newObjectCallback = \"AssetBrowser.onFinishCreateObject\"; ObjectCreator.createObject( \"" @ %cmd @ "\" );"; + } %args = new ScriptObject(); %args.val[0] = %class;