- Revised the `getting-started.md` and `documentation-layout.md` files to improve clarity and organization of content. - Enhanced descriptions and added tables for better readability in the `getting-started.md` file. - Updated the `greg-hooks-registry.md` to reflect changes in the hook mapping and clarify the role of `greg_hooks.json`. - Adjusted the `fmf-hook-naming.md` and `fmf-hooks-catalog.md` to emphasize the transition from legacy naming conventions to the new `greg.*` format. This commit aims to improve the overall clarity and usability of the documentation, ensuring users have a better understanding of the framework and its components.
3.3 KiB
title, sidebar_label, description
| title | sidebar_label | description |
|---|---|---|
| Getting started | Getting started | Workspace-Layout (gregFramework), gregCore bauen, Hooks & erste Mod-Schritte. |
Der Workspace ist multi-repo: unter einem gemeinsamen Ordner gregFramework/ liegen mehrere Git-Repos flach nebeneinander. Logik: ModManager → Framework / SDK → Plugins → Mods — siehe System architecture & documentation principles.
| Ordner | Inhalt |
|---|---|
gregCore/ |
Framework: gregCore/FrikaMF.sln, Hauptprojekt gregCore/framework/FrikaMF.csproj; SDK unter framework/src/Sdk/; MCP unter gregCore/mcp-server/ |
gregMod.<Name>/ |
Gameplay-Mods (FMF.*-Assemblies üblich), flach neben gregCore/ (Umbrella gregMods/ ist veraltet) |
gregExt.<Name>/ |
Framework-Plugins (FFM.Plugin.* / greg.Plugin.*), ebenfalls flach (gregExtensions/ veraltet) |
gregModmanager/ |
GregModManager / Workshop-UI (WorkshopUploader.csproj) |
gregDataCenterExporter/ |
Exporter, Templates, Spiegel |
gregWiki/ |
Diese Doku (Docusaurus) |
Rust-/Native-Mods werden vom Core über die FFI-Schicht geladen; Bridge-Code lebt im framework/src/ModLoader/-Baum von gregCore.
Framework bauen
dotnet build gregCore/FrikaMF.sln -c Release
Oder gregCore/FrikaMF.sln in der IDE öffnen. Für CI ohne lokale Spiel-Installation oft: -p:CI=true (siehe jeweilige .csproj-Targets).
Voraussetzungen: MelonLoader net6-Assemblies und Il2Cpp-Interop des Spiels — entweder aus {Game}/MelonLoader/ oder aus gregCore/lib/references/MelonLoader (z. B. via python gregCore/tools/refresh_refs.py). Umgebungsvariable DATA_CENTER_GAME_DIR hilft beim Auflösen des Spielpfads.
Hooks & Registries
| Thema | Wo |
|---|---|
Kanonische greg.* (JSON, Il2Cpp) |
Repo-Root greg_hooks.json; Regeneration: gregCore/scripts/Generate-GregHooksFromIl2CppDump.ps1 |
EventId → greg.* (FFI / natives Pipeline) |
GregNativeEventHooks — greg hooks catalog, Quellcode gregCore/framework/src/Sdk/GregNativeEventHooks.cs |
Doku-Namenskonvention FMF.* |
FMF hook naming |
| Architektur Überblick | Greg hooks & event runtime |
| Legacy-Strings | GregCompatBridge lädt greg_hooks.json neben FrikaModdingFramework.dll |
Ersten Mod starten
- Neues Repo
gregMod.<Name>/untergregFramework/anlegen (oder Template klonen). ProjectReferenceaufgregCore/framework/FrikaMF.csprojsetzen (wiemods/GregShowcaseMod/).- API
gregFramework.Core(GregEventDispatcher,GregHookName,GregNativeEventHooks, …). - Vorlagen:
gregCore/Templates/greg.BasedModTemplate/oder gespiegelte Templates untergregDataCenterExporter/Templates/.
Referenz-Mod: mods/GregShowcaseMod/ — Greg hooks showcase.
Dokumentations-Site (gregWiki/)
- Markdown unter
gregWiki/docs/ - Docker: im
gregWiki/-Rootdocker build/docker run(siehegregWiki/README.md) - MCP: mcp-server — Server unter
gregCore/mcp-server/