Skip to content

Releases: PalmForest0/BloomEngine

Beta 0.3.2

07 Mar 06:22
4c5f17e

Choose a tag to compare

Beta 0.3.2 Pre-release
Pre-release

Overview

This patch mainly updates the way config inputs are created and how additional functionality is added to them. Below is a before and after comparison. Additionally, OnValueChanged and OnInputChanged are now events, meaning you can add multiple actions to them.

Before

public static StringConfigInput TestStringInput = ConfigService.CreateString("Test String", "Cooler description.", "ABCDEFG", new()
{
    OnValueChanged = val => Melon<BloomEngine>.Logger.Msg($"Value of {nameof(TestStringInput)} updated to \"{val}\""),
    OnInputChanged = () => TestStringInput.Textbox.SetTextWithoutNotify(TestStringInput.Textbox.text.ToUpperInvariant()),
    TransformValue = val => val.ToUpperInvariant(),
    ValidateValue = val => !string.IsNullOrWhiteSpace(val)
});

After

public static StringConfigInput TestStringInput = ConfigService.CreateString("Test String", "Cooler description.", "ABCDEFG")
    .WithOnValueChanged(val => Melon<BloomEngine>.Logger.Msg($"Value of {nameof(TestStringInput)} updated to \"{val}\""))
    .WithOnInputChanged(() => TestStringInput.Textbox.SetTextWithoutNotify(TestStringInput.Textbox.text.ToUpperInvariant()))
    .WithTransformFunc(val => val.ToUpperInvariant())
    .WithValidateFunc(val => !string.IsNullOrWhiteSpace(val));

Changes

  • Removed ConfigInputOptions.cs in favor of new methods (see Overview above)
  • Made OnValueChanged and OnInputChanged actions into events
  • Moved ConfigService.cs and ModConfig.cs to BloomEngine.Config
  • Moved ModMenuService.cs and ModMenuEntry.cs to BloomEngine.ModMenu
  • Fixed minor inconsistencies and cleaned up some of the code

Beta 0.3.1

28 Feb 04:19

Choose a tag to compare

Beta 0.3.1 Pre-release
Pre-release

Overview

This patch mostly updates the internal organization and structure of the project, as well as fixing a few bugs. Additionally, there have been some utility improvements to make integrating with the BloomEngine library smoother. This means that some references might need to be updated due to classes being moved.

Changes

  • Updated EnumConfigInput to use a generic enum type
  • Fixed enum config inputs not loading saved value
  • Improved code documentation in multiple places
  • Improved internal mod menu organization
  • Updated UIHelper and reworked internal bootstrap
  • Cleaned up AssetHelper and added Assembly type markers
  • Cleaned up and improved utility classes
  • Updated folders and moved certain classes
  • Added attribute for automatically registering MonoBehaviour types in Il2Cpp

Beta 0.3.0

05 Jan 01:04
cb4b627

Choose a tag to compare

Beta 0.3.0 Pre-release
Pre-release

Overview

This beta includes some major changes to the UI and backend of the BloomEngine config manager. Mainly, it is now easier to register a config and it will be automatically saved using MelonPreferences, A full list of changes with screenshots can be found below.

Changes

  • Buttons for resetting to default and showing the description for config inputs.
  • Static ConfigService class for easier config input creation
  • New ConfigInputOptions class to further simplify input creation.
  • Internal structure changes (will require you to update your using statements)
  • Automatic config saving and loading with MelonPreferences
  • More documentation for config and mod menu systems
  • New UI utilities such as creation of a CustomPopup through the UIHelper class

Usage

Due to the major changes to the BloomEngine library structure, you will need to update some of your code. The new usage guide with examples can be found in the README.

Screenshots

ModMenu ConfigPanel

Beta 0.2.0

21 Dec 23:46

Choose a tag to compare

Beta 0.2.0 Pre-release
Pre-release

Changes

This version updated a couple of things and added more features:

  • Custom mod icons which can be added by mod developers
  • A config icon that appears when you hover over a mod with a registered config
  • Larger mod entries with more space for bigger icons and description
  • Behind the scenes changes within the mod menu structure

Stability

BloomEngine is currently stable and there aren't any known bugs. However this mod is still in beta, so if you run into any issues, I would ask you to join the discord server. Additionally, any suggestions for future developments are welcome.

Installation

Installing the mod

If you are looking to use the mod in-game, all you need to do is downlod BloomEngine.dll below and place it into your Mods folder after installing MelonLoader. If you don't have MelonLoader installed, the latest release can be found here.

Using the library

If you want to use BloomEngine as a library for your own PvZ Replanted mod, please check the README for an installation and usage guide.

Screenshots

Below you'll find screenshots of the updated mod menu UI.

Screenshot_1

Updated mod menu UI with custom icons

Screenshot_2

New config icon overlay on hover

Alpha 0.1.0

10 Dec 05:05

Choose a tag to compare

Alpha 0.1.0 Pre-release
Pre-release

Mod Features

  • Working mod menu
  • Displays both registered and non-registered mods
  • Custom entry display name and description
  • Working config panel with multi-page support

Developer Features

  • Register your mod by referencing this library and running ModMenu.CreateEntry()
  • Mod config registration with support for string, int, float, bool and enum input fields
  • Documentation available (place .xml file in the same folder as .dll)
  • Static helper classes for things like UI and Il2Cpp

For more information on registering your mod, check the README.md

Future Plans

  • Enabling and disabling mods
  • Custom mod icons in the mod menu
  • More intuitive way of opening config menu (currently you must press the mod entry icon)
  • Add more documentation

Screenshots

Screenshot_1 Screenshot_2 Screenshot_3