Skip to content

Releases: PassivePicasso/ThunderKit

Package Management and Onboarding Update

25 Mar 01:58
8ca9da4
Compare
Choose a tag to compare

Returning users

This is a major version update, and is significantly breaking. Back up your projects before updating.

Initial Setup

A Welcome window has been added to ThunderKit to help users set up their project.
This window can be disabled by a toggle it provides.

ThunderKit Installer - Removed

The ThunderKit installer has been removed. The installer caused many development issues and lost
work during the development of ThunderKit. While this issue may not have affected end users, the
risk associated with the cost of lost work makes this feature dangerous to continue to maintain.

Unity 2018.1-2019.2 users will need to add the Thunderkit dependency to their projects Packages/manifest.json

For Unity 2019.3+ users can add ThunderKit using the Git url and use the Install from Git option in the Unity Package Manager.

ThunderKit Settings

ThunderKit Settings now get a dedicated window from ThunderKit and can be accessed from the main menu under Tools/ThunderKit/Settings.
These settings will no longer show up in the Project Settings window.

Debugging Features

ComposableObjects now support some debugging features to provide an easy access interface to implementations of Composable Object to report errors in the UI.

ComposableElements now have 2 members, IsErrored and ErrorMessage. The ComposableObjectEditor will change the header color of ComposableElements to red if IsErrored is true, signalling where a problem may be.

Implementations of ComposableObject are responsible for setting the values in IsErrored and ErrorMessage.

For examples see Pipeline
and PathReference

If a pipeline encounters a problem it will halt its execution and highlight the step that it faulted on.
The PipelineJobs and Pipeline itself are setup to log exceptions to the Unity console like normal, with these two pieces of information you should be able to quickly identify and rectify problems.

ThunderKit Manifests do not utilize these debugging features as they are only Data Containers, however if worth while usage for debugging issues can be identified then support will be added.

Dependencies

Dependency Management in the 3.0.0 update has changed significantly. Instead of Manifests installing and managing dependencies in its entirety, Manifests will now only
be responsible for containing dependency references.

Instead a user will now install packages via the Package Manager, and then
add the Manifest from the Packages folder to the Manifest that requires the dependency

Package Manager

ThunderKit now includes a complete Package Manager, available from the main menu under Tools/ThunderKit/Packages

The ThunderKit Package Manager is how you will add and remove all mod dependencies for your project.
If a mod in your project needs to depend on a Mod, Loader, or Library, you have the ability to install these dependencies through the Package Manager.

Currently the Package Manager comes with support for Thunderstore by default, select your Thunderstore community by setting the url from the ThunderKit Settings.

You can also create a Local Thunderstore source where you can specify a folder to examine for zip files.
Zip files in Local Thunderstore Sources must conform to Thunderstore's file naming schemes in order to be resolved correctly.

This scheme is: Author-ModName-Version.zip

Documentation

Documentation is a major issue for new users and as such ThunderKit now comes with integrated documentation to help onboard new users.
The documentation available from the main menu under Tools/ThunderKit/Documentation

Documentation is a work in progress and improvements will be made as a better understanding is gained about users needs for information.

Assembly Reference stabilization

04 Feb 21:15
f9c53d0
Compare
Choose a tag to compare

With Every update of ThunderKit it is currently recommended to back up your project to allow you the ability to recover from a failed upgrade.
When ThunderKit reaches a point of stability where I feel confident upgrades may not result in damaged projects it will be made as a special announcement.

This update fixes an issue with Assembly referencing that could cause project stability issues.

In order to make use of these fixes, the simplest solution may be to build a new project from scratch and transfer your assets.
You can alternatively use your existing project, and remove all dependencies and game assemblies that were added to the project via ThunderKit.
Once removed you can re-configure the project to pull in game libraries and other dependencies you've loaded using ThunderKit.

User Experience

03 Feb 01:46
ebe0668
Compare
Choose a tag to compare

This update aims to fix a number of issues in the initial release as well as establish some additional core features.
Many of these features have been released already over the past few days, this is a summary of changes.
There have been a number of issues that should improve the general user experience and increase the flexibility of how you interact with ThunderKit.

The next major focus of ThunderKit updates will be focused around generalizing the Manifest system to a more flexible way to add and manage dependencies.

New Features

  • Establish base for documentation system
  • Establish Package management as a core system
  • Add support to drag and drop Thunderstore package zip files into ThunderstoreManifest dependencies
  • Components of ComposableObjects now provide Copy, Paste, and Duplicate from their menus
  • Ensure a Scripting Define is always added for packages installed by ThunderKit, Define will be the name of the package

Improvements

  • Clean and organize systems for managing the loading process of ThunderKit
  • Improve the design of the ThunderKit Installer package to support more versions
  • Use built in Asset Package (unityPackage) options
  • ComposableObject now has an array of ComposableElements instead of ScrtipableObjects

Fixes

  • Sort add component options
  • Fix cases where directories are not created when needed
  • Fix some problems with the Thunderstore - BepInEx templates

ThunderKit - Pillars Update

29 Jan 03:00
64baf1f
Compare
Choose a tag to compare

Now with an Installer!
Download the unityPackage below to easily add ThunderKit to a new Unity project.

Establishes the 3 core systems of ThunderKit as Composable systems.

Manifests now can re-use many features and also be extended to include Store specific features or additional asset referencing systems as developers need.
Pipelines can now be used to configure build systems that are flexible and can respond to a game's modding requirements
PathReferences is a component based code driven system that allows the establishment of complex and simple rules for Path and file lookup and referencing

These three system work in combination to provide a highly flexible framework that should be adaptable to any games modding requirements, contributions of new Templates and Components that add support for additional stores, modding frameworks and build needs are welcome.

There are now templates instead of hard coded classes that add support for BepInEx plugin development.

Thunderstore specific code has been moved into the Integrations Namespace, along with 1 BepInEx PathComponent for the PathReference system.

Pipelines, Manifests and PathReferences are each component driven systems with a specific required component base type.
Pipelines use PipelineJobs
Manifests use ManifestDatums
PathReferences use PathComponents

You can add custom scripts for each of these component types to extend these systems to fill in missing needs you may find.
Documentation covering this new ThunderKit is under way that aims to cover these three systems and the currently implemented component types.