Skip to content

Commit

Permalink
Merge pull request #93 from PassivePicasso/v8-composition-2
Browse files Browse the repository at this point in the history
V8 composition 2
  • Loading branch information
PassivePicasso authored May 2, 2023
2 parents ae1540c + 1b4767f commit 31b1379
Show file tree
Hide file tree
Showing 406 changed files with 4,582 additions and 21,882 deletions.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

90 changes: 90 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,93 @@
## 8.0.0

### New Features

* Add Addressable Prefab Preview stages for all Unity Versions.
This feature allows you to inspect Prefab objects in a SceneView style
environment. Allowing you to look at the Transform Hierarchy of prefabs, and
inspect their configuration. In Unity 2018 this is a custom
SceneView, while newer Unity versions make use of the PreviewSceneStage
* Add Limited Support for SpaceDock as a PackageSource. This will allow KSP mod
developers to utilize SpaceDock to download mod packages from for supporting
their projects, however discovering and resolving dependencies is currently
not supported
* Add Log Level Filtering to Pipeline Log window
* Add Loading indicators to loading PackageSources in the Package Manager
* Add Log Cache details and cache clear button to ThunderKitSettings
* Add Markdown Image Cache details and cache clear button to ThunderKitSettings
* Add Disable Assembly Updater ImportExtension to encourage disabling it
* Add Unity Version Check ImportExtension to assist in troubleshooting and
complex environment configurations. **This should generally not be disabled.
Disabling this to specifically use a verison of Unity that does not match an
imported game is unsupported**

### Improvements

* Improve the way Packages are listed in the Package Manager
* Add PackageManager resizing between the package list and view
* Improve load times and consistency of PackageSources
* Create LoadingSpinner, a reusable UIToolkit loading indicator
* Improve package selection highlighting for Dark and Light themes
* Improve Package Loading to incrementally populate as results are provided
* Improve PackageSource re-usability by abstracting auto-loading
* Improve PackageView to utilize MarkdownElements for the Package Header, Body,
and Footer sections so that their content is more customizable per
PackageSource. Additional work needs to be done here to improve the workflow
and modularity of this feature
* Improve the Browse button to open in the selected path if it is not empty
* Improve image caching solution in MarkdownElement system
* Improve Pipeline Log View to with log level filtering
* Update Copy PipelineJob documentation
* Improve logging and code design of Copy
* Add OptionalExecutor documentation
* Improve some documentation navigation
* Improve addressable integration to avoid interfering with normal addressable
package usage
* Change PromptRestart to an OptionalExecutor for consistency
* Change Beep on import completion to an OptionalExecutor for consistency
* Generally improve code quality

### Fixes

* Fix ImportExtensions not updating correctly when extensions are added or
removed
* Fix ImportExtensions erasing serialized data in some circumstances
* Fix issue where import could fail for certain build layouts
* Fix an issue in the latest version of Unity 2022.2 that would cause package
installs to fail
* Fix MarkdownElement not loading all images correctly or consistently due to
over aggressive cancelling and object clean up
* Fix a memory leak in the Markdown system tied to not releasing displayed
images

### Community Contributions

Thanks to @KingEnderbine for these improvements

#### Features

* Add ability to include unity meta files to the Files PipelineJob and Manifest
This improves support for source re-distribution and asset redistribution via
packages

#### Improvements

* Improve ImportConfiguration system to reduce the occurrence of unnecessary
work

#### Fixes

* Fix ComposableObject not properly removing elements in some versions of Unity
This fixes a pesky issue that affected some users where it would cause
Missing Script errors in ComposableObjects such as PipelineJobs and Manifests
* Fix ThunderKitSettings sometimes overwriting itself during domain
initialization
* Fix ImportConfiguration not saving the last ConfigurationIndex used leading
to the ImportSystem repeating final steps
* Fix Quick Access selections not saving correctly
* Fix Quick Access Toolbar not initializing correctly


## 7.1.2

### Fixes
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,17 @@

---

{ .cfw200 .bb1 .bdblack }[Source](assetlink://GUID/dca7ed776a90eea49a7bd29ccedcec51)

ThunderKit's game import process is extensible, providing the ability to rework
the entire import process to suit your projects needs.

Import extensions can be created to import Unity Packages, ThunderKit Packages,
Import additional game files, modify assemblies before import, and much more.
Import additional game files, modify assemblies before import, and anything else.


ThunderKit comes with some base classes for some of these processes.
ThunderKit comes with some base classes for some of these processes, however all
ImportExtensions are built ontop of the [OptionalExecutor](documentation://GUID/e80287c690b4c0742a39805bede11894)

Adding a new import extension is simple, follow this short guide to make an
importer which simply logs "Hello World" to the unity console at the beggining
Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1 +1,112 @@
# Markdown File
---
{
"title" : "OptionalExecutor",
"headerClasses" : [ "bm4", "page-header-container" ],
"titleClasses" : [ "page-header" ],
"iconClasses" : [ "header-icon", "TK_ThunderKitSetting_2X_Icon" ]
}

---
[Source](assetlink://GUID/a87a9f1780c348d4080afaf9971d3a7e){ .absolute .pat0 .par0 }
[Import Extensions](documentation://GUID/00b9d411fd716fd4893e9cb7c7811f0c) >
[OptionalExecutor](documentation://GUID/e80287c690b4c0742a39805bede11894)

## Description

Base class which provides the ability to make import extensions that can be
enabled and disabled by users and code.



## Derived
- { .cfw200 }[ImportAssemblies](documentation://GUID/b216ba4bf77cd2b4eacfed464cc6540e)
[Source](assetlink://GUID/a87a9f1780c348d4080afaf9971d3a7e)

- { .cfw200 }[ImportProjectSettings](documentation://GUID/f6ef601f07def774daf73785ec0540ea)
[Source](assetlink://GUID/3b40885578be10f4785f1fa347e9fefa)

- { .cfw200 }[CreateGamePackage](documentation://GUID/c72319cdfed39d34caab9a31e63e23ad)
[Source](assetlink://GUID/a4e66fd1b2f0a6b4e951af502eba5a2b)

- { .cfw200 }[UnityPackageInstaller](documentation://GUID/03891ed5d95f7ab48886fac5c76769b2)
[Source](assetlink://GUID/213e13d5b2469964d921c60eadde042c)

- { .cfw200 }[UnityPackageUninstaller](documentation://GUID/741f8e5d5c63e5640bbf7c9334a597a9)
[Source](assetlink://GUID/469f8ad306016a44e877a98c0db1d815)

- { .cfw200 }[ManagedAssemblyPatcher](documentation://GUID/ce92779cb49e6bb448fd6987a24d4296)
[Source](assetlink://GUID/c0960d561d36deb4aac684c83e4f0e74)

- { .cfw200 }[PromptRestart](documentation://GUID/82266e1ea1d3dbe44bf55f96c4d240ea)
[Source](assetlink://GUID/52610fcf3c7c01e43ad95185897e1eb5)

- { .cfw200 }[Beep](documentation://GUID/9b2e0ee349f56304b8d636039c4a8451)
[Source](assetlink://GUID/0cf0398e0ff60b641a1c9a78c649cbae)

- { .cfw200 }[GetBitness](documentation://GUID/087669654ec3c5445ac7bb8e79b56a3f)
[Source](assetlink://GUID/8840720793112784295b7c9b06af7493)


## Fields

* **enabled**
- When true, allows the OptionalExecutor to run when the user triggers import

## Properties

* **Description** (**virtual**)
- A description of the OptionalExector. This is displayed in the tooltip on
the Import Configuration Settings page.

* **UITemplatePath** (**virtual**)
- Path used by `CreateProperties()` to load a UIToolkit UXML file which will be loaded and used for rendering
on the Import Configuration Settings Page. Use this to build more complex
UIs for advanced Import Extensions.

## Methods

* **CreateProperties** (**virtual**)
- Loads UITemplatePath

## Inherited Properties

* **Name** (**virtual**)
- Name of ImportExtension, Displayed on the Import Configuration page

* **Priority** (**abstract**)
- Integer which indicates the priority at which this extension will run. Import Extensions are ordered by their priority in descending order.

## Remarks

The OptionalExecutor is the base class for all ImportExtensions. It is an
abstract class can be extend to make new import extensions. All
OptionalExecutors have the ability to be enabled or disabled to modify the
setup of a project.

OptionalExecutors enable the ability to easily reproduce setup steps in for a
project.

The following is an example of an OptionalExecutor implementation. This
extension will display on the ThunderKit Settings Import Configuration page.
While enabled, each time the Import process is run the HelloWorldImporter will
log "Hello world" to the Unity [Console.](menulink://Window/General/Console)
```cs
using ThunderKit.Core.Config;
using UnityEngine;

namespace HelloWorldImporter
{
public class HelloWorldImporter : OptionalExecutor
{
public override int Priority => int.MaxValue;

public override string Description => "Logs Hello World";

public override bool Execute()
{
Debug.Log("Hello world");
return true;
}
}
}
```

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
{
"title" : "Beep",
"headerClasses" : [ "bm4", "page-header-container" ],
"titleClasses" : [ "page-header" ],
"iconClasses" : [ "header-icon", "TK_ThunderKitSetting_2X_Icon" ]
}

---
[Source](assetlink://GUID/0cf0398e0ff60b641a1c9a78c649cbae){ .absolute .pat0 .par0 }
[OptionalExecutor](documentation://GUID/e80287c690b4c0742a39805bede11894) >
[Beep](documentation://GUID/9b2e0ee349f56304b8d636039c4a8451)

Executes `UnityEditor.EditorApplication.Beep()` which plays the default system chime.

This extension executes at int.MinValue priority.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
{
"title" : "Create Game Package",
"headerClasses" : [ "bm4", "page-header-container" ],
"titleClasses" : [ "page-header" ],
"iconClasses" : [ "header-icon", "TK_ThunderKitSetting_2X_Icon" ]
}

---
[Source](assetlink://GUID/a4e66fd1b2f0a6b4e951af502eba5a2b){ .absolute .pat0 .par4 }
[OptionalExecutor](documentation://GUID/e80287c690b4c0742a39805bede11894) >
[CreateGamePackage](documentation://GUID/c72319cdfed39d34caab9a31e63e23ad)


Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
{
"title" : "Get Bitness",
"headerClasses" : [ "bm4", "page-header-container" ],
"titleClasses" : [ "page-header" ],
"iconClasses" : [ "header-icon", "TK_ThunderKitSetting_2X_Icon" ]
}

---
[Source](assetlink://GUID/8840720793112784295b7c9b06af7493){ .absolute .pat0 .par4 }
[OptionalExecutor](documentation://GUID/e80287c690b4c0742a39805bede11894) >
[GetBitness](documentation://GUID/087669654ec3c5445ac7bb8e79b56a3f)


Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
{
"title" : "Import Assemblies",
"headerClasses" : [ "bm4", "page-header-container" ],
"titleClasses" : [ "page-header" ],
"iconClasses" : [ "header-icon", "TK_ThunderKitSetting_2X_Icon" ]
}

---
[Source](assetlink://GUID/a87a9f1780c348d4080afaf9971d3a7e){ .absolute .pat0 .par0 }
[OptionalExecutor](documentation://GUID/e80287c690b4c0742a39805bede11894) >
[ImportAssemblies](documentation://GUID/b216ba4bf77cd2b4eacfed464cc6540e)


Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
{
"title" : "AssemblyProcessor",
"headerClasses" : [ "bm4", "page-header-container" ],
"titleClasses" : [ "page-header" ],
"iconClasses" : [ "header-icon", "TK_ThunderKitSetting_2X_Icon" ]
}

---

Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
{
"title" : "BlacklistProcessor",
"headerClasses" : [ "bm4", "page-header-container" ],
"titleClasses" : [ "page-header" ],
"iconClasses" : [ "header-icon", "TK_ThunderKitSetting_2X_Icon" ]
}

---

Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
{
"title" : "WhitelistProcessor",
"headerClasses" : [ "bm4", "page-header-container" ],
"titleClasses" : [ "page-header" ],
"iconClasses" : [ "header-icon", "TK_ThunderKitSetting_2X_Icon" ]
}

---

Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
{
"title" : "Import Assemblies",
"headerClasses" : [ "bm4", "page-header-container" ],
"titleClasses" : [ "page-header" ],
"iconClasses" : [ "header-icon", "TK_ThunderKitSetting_2X_Icon" ]
}

---

[OptionalExecutor](documentation://GUID/e80287c690b4c0742a39805bede11894) >
[ImportProjectSettings](documentation://GUID/f6ef601f07def774daf73785ec0540ea)

{ .cfw200 .bb1 .bdblack }[Source](assetlink://GUID/a87a9f1780c348d4080afaf9971d3a7e)
Loading

0 comments on commit 31b1379

Please sign in to comment.