Code Monkey home page Code Monkey logo

elgeditorscripting's Introduction

ElgEditorScripting

ElgEditorScripting is an Unreal Engine 4.25.1 editor only plugin created to extend the possibilities of Editor Utility Widgets.

The plugin add basic Level Editor events like OnActorAdded/Deleted/Selected, OnBegin/EndPIE, OnMouseClick, OnInputKey and more.
For the Content Browser it has events like OnAssetCreated/Removed/Renamed and Selected/Deselected.

It also add nodes to get the MousePosition, Read/Write to config files, Load/Reload/Compile Modules, Show the SlowTask UI, Add/Remove Components/Interfaces. Open/Close EditorWidgets* and set the EditorWidget tab Label and tooltip.

ElgSoft.com, Unreal Forum thread

1.0.4 Added support to get an Editor Widget instace so tyou can access it and do cool stuff. GetEditorWidget

1.0.2 Exposed Notifications to Blueprints.
Notifications

1.0.1 Exposed PluginManager to Blueprints.

Here is a Custom PluginBrowser created in EditorWidgets using the new PluginManager nodes. PluginBrowser

Level Editor Context

Thru the Level Editor Context object, you can bind events and query level editor specific data like mouse position or if the level editor viewport are in focus.

LevelEditorContext
Examples can be found in EW_EditorContexts_LevelEditor.

Events that are exposed in the plugin are:
OnLevelActorAdded, OnLevelActorDeleted, OnLevelActorAttached, OnLevelActorDetached, OnActorMoved, OnActorSelectionChanged, OnActorSelected, OnActorDeselected, OnWorldAdded, OnWorldDestroyed, OnMapOpened, OnMapChanged, OnEditorModeChanged, OnEnterMode, OnExitMode, OnEditorCameraMoved, OnFocusViewportOnActors, OnBeginPIE, OnPausePIE, OnResumePIE, OnEndPIE, OnBeginStandaloneLocalPlay, OnLeftMouseClick, OnMiddleMouseClick, OnRightMouseClick, OnInputKey.

Blueprint Nodes:
GetMousePosition, GetMousePositionWorld, GetActorUnderMouse, LineTrace, HasFocus, GetEditorMode, IsInPIE, IsInEditor, IsViewportRealtime, SetViewportRealtime, RestoreViewportRealtime, MoveViewportCameraToActor.

Example of spawning and actor on the mouse cursor position in the level editor on middle mouse click. LevelEditorContext_spawn

Asset Browser Context

Thru the Asset Browser Context object, you can bind asset related events.

OnAssetAdded
Examples can be found in EW_EditorContexts_AssetBrowser.

Events that are exposed in the plugin are:
OnAssetCreated, OnAssetRemoved, OnAssetRenamed, OnAssetSelectionChanged, OnAssetSelected, OnAssetDeselected

Config Context

The Config Context let you read/write to config ini files in the "Project/Config/" folder by specifying the Config filename and the config section.

ConfigContext
Examples can be found in EW_EditorContexts_Config.

Supported data types are:
String, Int, Float, Text, Bool, StringArray, Color, Vector2d, Vector, Vector4, Rotator.

Module Manager

The plugin expose Module Manager functionality to blueprints so you can Load/Unload/Recompile module from Editor Widgets.

ModuleManager
Examples can be found in EW_BlueprintNodes_ModuleManager and EW_ToolbarButton_Compiler.

GetModuleNames, GetModulesStatus, GetModuleStatus, RecompileModule, LoadModule, UnloadModule, ReloadModule, CanShutdownModule, CanRecompileModule, IsModuleLoaded, CanHotReloadModule, CanDynamicReloadModule.

Slow Task

The plugin exposes the SlowTask progress bar UI so your tool can show the progress. It has an option if the user should be able to cancel the progress.

SlowTask
Examples can be found in EW_ToolbarButton_SlowTask.

BeginSlowTask, EndSlowTask, StatusUpdate, UpdateProgress, RecivedUserCancel.

UBlueprint

The plugin has a bunch of helper blueprint nodes to work on Blueprint Objects, like the possibility to add/remove Components, add/remove Interfaces and Compile them.

UBlueprint
Examples can be found in EW_BlueprintNodes_UBlueprint.

AddComponent, RemoveComponent, GetInterfaces, ImplementInerface, AddInterface, RemoveInterface, CompileBlueprint, GetBlueprintFromAssetData, GetComponents, GetComponentsOfClass, GetComponentOfClass.

Assets

Helper blueprint nodes for working with AssetData and AssetObject.

Assets
Examples can be found in EW_BlueprintNodes_Assets.

FixRedirectors, GetAssetDateModified, GetAssetDiskPath, GetAssetObjects, GetAssetObjectsMetaData, GetAssetObjectsWithMetaDataKey, GetMetaDataBranch, GetAssetMetaData.

EditorWidget

Blueprint nodes that add the possibility to change the tab name, open or close another Editor Widget.

  • Opening and closing of Editor Widgets only work if the widget has been Run before.

EditorWidget

EditorWidgetOpen

Examples can be found in EW_BlueprintNodes_EditorWidget.

OpenEditorWidget*, CloseEditorWidget*, ToggleEditorWidget*, IsEditorWidgetOpen, IsEditorWidgetRegistered, SetEditorWidgetLabel, GetEditorWidgetLabel, SetEditorWidgetToolTip, EditorWidgetDrawAttention.

LevelActor

If you modify a Level Actors transformation in an Editor Widget the editor won't be notified about the change and wont prompt if you want to save the change when closing the map, so the plugin comes with the MarkActorAsDirty node that will fix that.

LevelActor
Examples can be found in EW_ToolbarButton_MoveSelectedToMouse and EW_ToolbarButton_RunConstructionScript.

RunConstructionScript, MarkActorAsDirty

Plugin Manager

Expose plugin functionality to blueprints so you can Enable/Disable plugins, Package a plugin or get the description with information about the plugin.

PluginManager
Examples can be found in EW_BlueprintNodes_PluginManager.

EnablePlugin, DisablePlugin, SetPluginEnabled, GetPluginIconTexture, GetPluginDescription, GetPluginDescriptions, GetPluginCategory, PackagePlugin.

Notifications

Expose Notification functionality to blueprints so you can show notifications from blueprint nodes.

Notifications
NotificationsSetup

Usage

Just drag the Plugins/ElgEditorScripting folder into your /Plugins/ folder (create it at the same level as your content folder if you don't have one already) and open your project.

Legal

Copyright © 2019, Elg Soft. Licensed under the MIT License, see the file LICENSE for details.

elgeditorscripting's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.