Commit Graph

170 Commits

Author SHA1 Message Date
Jaroslaw Palczynski
adecd4aaad UHT: Allows defining multiple UCLASSes in one header file.
[CL 2412156 by Jaroslaw Palczynski in Main branch]
2015-01-20 09:33:54 -05:00
Jamie Dale
55c3728d11 Added support for showing game and engine classes in the Content Browser
UE-7184 - Show game c++ classes and engine c++ classes in the content browser

The Content Browser now has extra entries for "Game C++ Classes" and "Engine C++ Classes" (with "Game" and "Engine" being renamed to "Game Content" and "Engine Content" respectively). These new folders serve as hosts for the list of available C++ modules, with each module internally mirroring the folder structure on disk.

For example:
- Game C++ Classes
    - ShooterGame
        - Classes
            - Bots
                - ShooterBot
                - ShooterAIController
                - [...]
            - [...]

The Content Browser allows you to navigate and search these classes like you can with assets, and provides convenient access to either edit an existing class, or create a new class (either within a selected folder, or derived from a selected class).

As the Content Browser only shows you known UClass types, any new classes need to be compiled into a loaded module before they will appear. This means that adding a new class will now automatically hot-reload your target module. Should you prefer to handle building and loading your modules manually, you can disable the automatic hot-reload via "Editor Settings" -> "Miscellaneous" -> "Hot Reload" -> "Automatically Hot Reload New Classes" (see UEditorUserSettings::bAutomaticallyHotReloadNewClasses).

[CL 2409386 by Jamie Dale in Main branch]
2015-01-16 15:39:47 -05:00
Ben Marsh
1f5b1222c2 Remove GenerateNewProjectFile from IProjectManager.
[CL 2401854 by Ben Marsh in Main branch]
2015-01-09 08:08:13 -05:00
Steve Robb
0756ef15b9 Delegate comparisons deprecated, lots of other associated code deprecated, and lots of warning fixups:
* Multicast delegate Add* calls now return FDelegateHandles, and Remove* calls are now all deprecated, except for a new Remove function which takes a FDelegateHandle.
* New FConsoleManager::RegisterConsoleVariableSink_Handle and UnregisterConsoleVariableSink_Handle functions which work in terms of FConsoleVariableSinkHandle.
* Timer calls which don't take FTimerHandles are deprecated.
* FTicker::AddTicker now returns an FDelegateHandle and is removed by an overloaded Remove function.
* DEFINE_ONLINE_DELEGATE* macros now define _Handle variants of the Add/Remove functions which return/take handles.
* Various other handle-based registration changes.
* Some unity build fixes.
* Some simplification of delegate code.
* Fixes for lots of existing code to use handle-based registration and unregistration.

#codereview robert.manuszewski

[CL 2400883 by Steve Robb in Main branch]
2015-01-08 09:29:27 -05:00
Michael Noland
5bc29b81a6 Editor: Add some verbose logging to help diagonse issues when creating new project templates
[CL 2387348 by Michael Noland in Main branch]
2014-12-12 15:38:16 -05:00
James Golding
1e88566029 Fix non-unity in GameProjectUtils.cpp
#codereview ben.marsh
#lockdown Zachary.EdgertonJones

[CL 2387090 by James Golding in Main branch]
2014-12-12 12:30:06 -05:00
Ben Marsh
4d275b2721 Immediately compile and open new code projects (rather than opening the IDE and requiring the user do it themselves).
#codereview lauren.ridge

[CL 2386116 by Ben Marsh in Main branch]
2014-12-11 16:39:39 -05:00
Robert Manuszewski
cb091bcd80 Hot-Reload improvements:
- CDO property values that have changed after hot-reload will now be propagated to the existing instances
- Adding code to a non-code project will no longer require restarting the editor to be able to work with new code (the new module will automatically be compiled and loaded)

[CL 2385307 by Robert Manuszewski in Main branch]
2014-12-11 06:03:58 -05:00
Ben Marsh
149375b14b Update copyright notices to 2015.
[CL 2379638 by Ben Marsh in Main branch]
2014-12-07 19:09:38 -05:00
bruce nesbit
bc6eed42ca Reverted Starter Content change.
[CL 2373006 by bruce nesbit in Main branch]
2014-12-01 19:04:12 -05:00
bruce nesbit
473df14d28 Revised starter content to use asset pack
Moved starter content assets
Added mobile starter content assets
Starter content uses mobile starter content based on target platform

[CL 2372343 by bruce nesbit in Main branch]
2014-12-01 08:44:00 -05:00
Richard TalbotWatkin
44e138164a Added additional checks in the New Class Dialog to disallow creating classes whose generated headers would clash with existing engine headers.
#jira UE-4770 - LIVE: Users are able to name a new class "Platform" even though there is already a class by that name in the Engine.

[CL 2357149 by Richard TalbotWatkin in Main branch]
2014-11-12 11:31:40 -05:00
Mikolaj Sieluzycki
51f5333986 Prepare cpp files for header cleanup.
#codereview Robert.Manuszewski

[CL 2356864 by Mikolaj Sieluzycki in Main branch]
2014-11-12 04:58:53 -05:00
Ben Marsh
b613fcb834 When creating new projects, only set the engine association if they're foreign.
[CL 2355130 by Ben Marsh in Main branch]
2014-11-10 17:04:43 -05:00
Dmitry Rekman
02bd8563a2 Improvements to code projects on Linux.
- Changes from PR #560 (contributed by salamanderrake).
- KDevelop accessor plugin added (switched to it in settings).
- Closes UE-4724.

[CL 2348971 by Dmitry Rekman in Main branch]
2014-11-04 16:37:36 -05:00
Wes Hunt
31e2bb00ac Removed a bunch of stuff from Slate standard include, created SlateBasics.h
* Moved Slate.h into SlateBasics.h and began shifting less commonly used headers into SlateExtras.h.
* Slate.h now simply includes SlateBasics.h and SlateExtras.h.
* Slate.h includes a deprecated warning now to indicate that SlateBasics.h + specific includes should be used instead.
* Moved dozens of inlined functions using Slate widgets into .cpp files to avoid header dependencies.
* All code samples now include SlateBasics.h and SlateExtras.h so future shifts will not break most those projects, but not trigger the deprecation warning of including Slate.h.
#BUN

[CL 2329610 by Wes Hunt in Main branch]
2014-10-14 22:50:06 -04:00
Robert Manuszewski
55f4bd6581 Removed [URL] GameName=Name from ini as we no longer need it for anything else than fixing the game name case (passed from command line)
#change Removed GGameName usage from code and replaced it with FApp::*GameName API
#change Added FApp::SetGameName(), FApp::IsGameNameEmpty()
#change Added IFileManager::GetFilenameOnDisk to get the correct case of a filename on disk
#change Renamed GGameName to GInternalGameName

[CL 2328446 by Robert Manuszewski in Main branch]
2014-10-14 10:31:43 -04:00
Marc Audy
2077f3a586 Expose ProjectHasCodeFiles, GenerateBasicSourceCode, GetCurrentProjectModules and DetermineModuleIncludePath from GameProjectGenerationModule
[CL 2327274 by Marc Audy in Main branch]
2014-10-13 11:47:21 -04:00
Michael Noland
74fec032b6 Editor: Fix hardware target settings being written into the wrong config file when creating a new project (and thus not taking effect)
- HW target settings now write to DefaultEngine.ini instead of DefaultEditor.ini when generating a project
- HW target settings now write their enum value as a string instead of an integer when generating a project
#Integrate change 2326075 from 4.5 to main

[CL 2326077 by Michael Noland in Main branch]
2014-10-10 18:18:31 -04:00
Jaroslaw Palczynski
cc0f6d9a4e UObject custom constructors.
In order to use new feature user have to change GENERATED_UCLASS_BODY() macro to the new GENERATED_BODY(). Then no constructor is implicitly declared. If there is no constructor declared in UCLASS then PCIP one is declared and defined that passes PCIP down to super-class. On the other hand if there is a constructor declared then UObject system expects to have one of the default or PCIP constructor to initialize a class during loading from disk, default object creation, etc. and it expects that user will declare and define one.

There is a possibility now to create UCLASS with the default constructor (i.e. no PCIP).

New macro is encouraged by standard classes and in-editor wizards templates.

#codereview Robert.Manuszewski

[CL 2325282 by Jaroslaw Palczynski in Main branch]
2014-10-10 04:34:56 -04:00
Andrew Rodham
4ad1b987fc Improved progress reporting in the editor
FScopedSlowTask has been refactored to better allow for nesting of slow operations. This allows us to cascade nested scopes and provide accurate feedback on slow tasks. FScopedSlowTasks now work together when nested inside sub functions. Break up long functions that contain calls to multiple nested FScopedSlowTasks with FScopedSlowTask::EnterProgressFrame().

Example Usage:
void DoSlowWork()
{
    FScopedSlowTask Progress(2.f, LOCTEXT("DoingSlowWork", "Doing Slow Work..."));
    // Optionally make this show a dialog if not already shown
    Progress.MakeDialog();

    // Indicate that we are entering a frame representing 1 unit of work
    Progress.EnterProgressFrame(1.f);

    // DoFirstThing() can follow a similar pattern of creating a scope divided into frames. These contribute to their parent's progress frame proportionately.
    DoFirstThing();

    Progress.EnterProgressFrame(1.f);
    DoSecondThing();
}

This addresses TTP#338602 - NEEDS REVIEW: Editor progress bars nearly always just show 100%, don't offer useful indication of progress

[CL 2322391 by Andrew Rodham in Main branch]
2014-10-08 04:42:34 -04:00
Andrew Rodham
5a37b2dcfe Added hardware targeting options and starter content to project creation analytics event
#codereview Michael.Noland

[CL 2318356 by Andrew Rodham in Main branch]
2014-10-03 05:17:13 -04:00
bruce nesbit
8d8bd2250c Revised behaviour of GenerateConfigFiles so that it will extract the EditorStartupMap and GameDefaultMap from the ini files in the startercontent config folder if they exist
#codereview Marc.Audy

[CL 2315973 by bruce nesbit in Main branch]
2014-10-01 10:58:58 -04:00
Ben Marsh
5a461554bd Added a cancel button to Convert project -> Open a copy, so that you have an option to cancel project copying/duplication process.
GitHub PR 445, authored by nejclesek.

[CL 2310948 by Ben Marsh in Main branch]
2014-09-26 11:29:33 -04:00
Ben Marsh
0f78891b7d Add a program to bootstrap packaged games, which checks for dependencies being installed (an option to include prerequisites in the game is in the packaging settings), then starts the engine with the right commandline for the project. Takes an icon from Build/Windows/Application.ico if present (which allows setting the icon for content-only projects) or the game executable being launched. Resource files added to code projects now use this icon instead.
[CL 2307139 by Ben Marsh in Main branch]
2014-09-23 13:55:06 -04:00