
This guide outlines the process of developing ForgeSim packages within an active project. By converting Git-installed packages to local installations, you gain the flexibility to make live edits and test them effectively within your project environment.
Begin by navigating to your active project workspace. Here, within the John Deere project, you can make changes to either the ForgeSim Core or the ForgeSim Lesson package as needed.

Next, access GitHub to verify your ForgeSim Core local installation. Ensure there are no pending changes, that the correct branch is targeted, and that everything is up to date. Once confirmed, return to the John Deere project.

Go to Window, select Package Management, and then Package Manager. Verify that ForgeSim Core and ForgeSim Lesson are installed. Change the installation from Git to a local source. Select 'Install Package From Disk,' navigate to your Git repository, locate the ForgeSim Core package, and open it.

Select your package JSON file and proceed by clicking Open.

In the Package Manager, you will notice the ForgeSim Core is now labeled as 2.3.Local, indicating a successful transition to a local installation.

With ForgeSim Core transitioned, repeat the process for the Lesson package to enable concurrent editing. Again, select 'Install Package From Disk,' access your Git repositories, locate ForgeSim.Lesson, and choose the package JSON.

Now that both packages are locally installed, open your preferred IDE, such as Rider, to switch between different solutions. You can now access ForgeSim Core and ForgeSim Lesson for code modifications.

In this example, modify the abstract state class foundational to the state or state machine. Enhance it to facilitate object activation, then pause to implement the desired changes.

Having applied the changes, add a new list of game objects within the abstract state class to support dynamic state transitions.

These game objects will now activate upon state entry and deactivate upon exit. Additionally, methods have been revised to incorporate a strategy pattern or template method, transitioning 'enter' to a baseline supported feature across classes.

Revise relevant classes and document the updates in your change log. This ensures the new working copy functions within the John Deere project, highlighting any breaking changes due to method renaming.

Recognize the need to change method calls from 'enter' to 'on enter' and 'exit' to 'on exit.' Work through these modifications, noting that changes are present in your live project copy, even if not yet pushed.

Without opening the ForgeSim project, refresh your console and address any errors that arise from imported changes. This allows you to troubleshoot without prematurely publishing updates.

This method facilitates live editing within your active project, enabling you to implement and test changes in John Deere and subsequently push them to ForgeSim Core as needed.

Within the John Deere project, review your package manifest and package lock JSON files to ensure comprehensive package management. Before merging branches or pushing updates, revert to Git-based installations post-publication.

By adopting this strategy, previously read-only package references in John Deere become live copies, pointing to your active ForgeSim Core repository rather than cached local installations.

This approach enhances workflow efficiency when patching and editing ForgeSim. If uncertain about modifications affecting live projects, this swap-out technique allows multi-project testing.

Special thanks to Carl for highlighting this method, significantly enhancing the capacity to work simultaneously on multiple projects.

May this guide assist you in optimizing your development processes.
