/* * All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or * its licensors. * * For complete copyright and license terms please see the LICENSE at the root of this * distribution (the "License"). All use of this software is governed by the License, * or, if provided, by the license below or the license accompanying this file. Do not * remove or modify any license notices. This file is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * */ // Original file Copyright Crytek GMBH or its affiliates, used under license. #include "StdAfx.h" #include <platform.h> #include <platform_impl.h> #include <IEditor.h> #include <Include/IPlugin.h> #include <Include/IEditorClassFactory.h> #include <AzToolsFramework/API/ToolsApplicationAPI.h> #include <AzToolsFramework/API/ViewPaneOptions.h> #include "../Editor/LyViewPaneNames.h" #include "MainWindow.h" static const char* ViewPaneName = "Modular Behavior Tree Editor"; class Plugin : public IPlugin { enum { Version = 1, }; public: bool Init(IEditor* pEditor) { AzToolsFramework::ViewPaneOptions options; options.canHaveMultipleInstances = true; options.sendViewPaneNameBackToAmazonAnalyticsServers = true; options.isLegacy = true; AzToolsFramework::RegisterViewPane<MainWindow>(ViewPaneName, LyViewPane::CategoryOther, options); return true; } void Release() override { AzToolsFramework::UnregisterViewPane(ViewPaneName); delete this; } void ShowAbout() override {} const char* GetPluginGUID() override { return "{0AE29C33-36BB-4DB0-8596-DE662AFE0E98}"; } DWORD GetPluginVersion() override { return DWORD(Version); } const char* GetPluginName() override { return "Modular Behavior Tree Editor"; } bool CanExitNow() override { return true; } void OnEditorNotify(EEditorNotifyEvent aEventId) override {} }; PLUGIN_API IPlugin* CreatePluginInstance(PLUGIN_INIT_PARAM* pInitParam) { if (pInitParam->pluginVersion != SANDBOX_PLUGIN_SYSTEM_VERSION) { pInitParam->outErrorCode = IPlugin::eError_VersionMismatch; return nullptr; } ModuleInitISystem(GetIEditor()->GetSystem(), "Modular Behavior Tree Editor"); Plugin* pPlugin = new Plugin(); if (pPlugin->Init(GetIEditor())) { return pPlugin; } else { pPlugin->Release(); return NULL; } } #if defined(AZ_PLATFORM_WINDOWS) HINSTANCE g_hInstance = 0; BOOL __stdcall DllMain(HINSTANCE hinstDLL, ULONG fdwReason, LPVOID lpvReserved) { if (fdwReason == DLL_PROCESS_ATTACH) { g_hInstance = hinstDLL; } return TRUE; } #endif