mirror of
https://github.com/Jacobwasbeast/LegacyWeaveLoader.git
synced 2026-06-17 02:02:11 +00:00
Rename across entire codebase: - LegacyForge -> WeaveLoader (identifiers, namespaces, classes, DLLs) - LegacyForgeRuntime -> WeaveLoaderRuntime (C++ project) - LegacyForge.API/Core/Launcher -> WeaveLoader.API/Core/Launcher (C# projects) - [LegacyForge] -> [WeaveLoader] (log prefixes) - legacyforge -> weaveloader (config files, log files, backup suffixes) - Display name "Weave Loader" in README, CONTRIBUTING, LICENSE
1.4 KiB
1.4 KiB
Contributing to Weave Loader
Thank you for your interest in contributing to Weave Loader!
Project Structure
- WeaveLoader.Launcher/ -- C# console app that launches the game and injects the runtime DLL
- WeaveLoaderRuntime/ -- C++ DLL injected into the game process (hooks, .NET hosting, native exports)
- WeaveLoader.Core/ -- C# assembly loaded inside the game process (mod discovery, lifecycle management)
- WeaveLoader.API/ -- C# class library that mod authors reference (IMod, Registry, Events)
- ExampleMod/ -- Sample mod demonstrating the API
Building
Prerequisites
- Visual Studio 2022+ with C++ Desktop Development and .NET 8 workloads
- CMake 3.24+
- .NET 8.0 SDK
C++ Runtime
cd WeaveLoaderRuntime
cmake -B build -A x64
cmake --build build --config Release
C# Projects
dotnet build Weave Loader.sln -c Release
Guidelines
- Keep game source modifications at zero -- all integration is via injection and hooking
- Test hooks against the latest game build with PDB symbols
- Use namespaced string IDs (
"modid:name") for all registered content - Catch exceptions from mod code to prevent crashes
- Document public API methods with XML doc comments
Pull Requests
- Fork the repository and create a feature branch
- Include a clear description of what your PR does
- Make sure the C# projects build without warnings
- Test DLL injection on a real game build if possible