Revised multiple documentation files to replace instances of "FrikaMF" with "gregCore," reflecting the updated naming conventions and project structure. This change enhances consistency and clarity across the documentation, ensuring that users and contributors have accurate information regarding the framework and its components.
3.6 KiB
id, title, slug, description
| id | title | slug | description |
|---|---|---|---|
| greg-hooks-registry | greg.* hooks registry (IL2CPP) | /reference/greg-hooks-registry | greg_hooks.json, Harmony-Quellen unter gregCore, Regeneration, Überschneidung mit Hand-Patches. |
greg.* hooks registry (IL2CPP)
Diese Seite beschreibt die kanonische MelonLoader-Hook-Oberfläche für Data Center (IL2CPP): stabile String-IDs, JSON-Registry, erzeugte Harmony-Stubs und das Zusammenspiel mit handgeschriebenen Patches (z. B. HarmonyPatches.cs).
Kanonische Hook-IDs
greg.<DOMAIN>.<Action>
greg— fester Präfix für neue APIs.<DOMAIN>— u. a. ausGregDomain(PLAYER,NETWORK,SYSTEM, …).<Action>—PascalCase.
In Mods vorzugsweise GregHookName.Create(GregDomain.*, "Action") oder Konstanten aus GregNativeEventHooks verwenden.
Lua-Zugriff auf dieselben Hooks
Lua-Skripte (MoonSharp, greg.*) können dieselben greg.*-Strings nutzen:
greg.on(hookName, fn)— Callback amGregEventDispatcher(beliebige registriertegreg.*-Events).greg.hook.before(hookName, fn)/greg.hook.after(hookName, fn)— Harmony-Prefix bzw. -Postfix über den HookBinder (Patches parallel zur Registry).
Details zum Laufzeitmodell, Payloads und Katalog: Greg hooks & event runtime. API-Tabellen: Language Bridges README.
Registry-Datei greg_hooks.json
| Ort | Rolle |
|---|---|
Repo-Root greg_hooks.json |
Eincheckter Katalog (name, patchTarget, strategy, payloadSchema, optional legacy). |
Neben gregCore.dll |
Build-Kopie für GregCompatBridge. |
Code-Layout (gregFramework-Repo)
| Pfad | Zweck |
|---|---|
gregCore/framework/Sdk/ |
gregFramework.Core: GregEventDispatcher, GregHookName, GregDomain, GregPayload, GregCompatBridge, GregNativeEventHooks |
gregCore/framework/ModLoader/ |
EventDispatcher, HarmonyPatches, FFI, GregHookIntegration, Services |
gregCore/framework/harmony/ |
Optional: generierte Domain-Harmony-Klassen (Skript Generate-GregHooksFromIl2CppDump.ps1) |
Das Projekt gregCore/framework/gregCore.csproj fasst diese Quellen zusammen; Harmony erkennt alle [HarmonyPatch]-Typen in der Assembly.
Regeneration
pwsh -NoProfile -File gregCore/scripts/Generate-GregHooksFromIl2CppDump.ps1
Anschließend gregCore neu bauen.
Generator (Kurz)
- Emittiert Postfix-Stubs mit
GregEventDispatcher.Emit, filtert häufige Unity-Loops und Lärm. - Harmony-Ausschluss: Das Skript wertet
framework/ModLoader/HarmonyPatches.csaus, damit z. B.Player.UpdateCoinnicht doppelt generiert wird (Hand-Patch +InvokeCancelable/GregHookIntegration).
Mod-Autor:innen
- Greg hooks showcase — Beispielmod
mods/GregShowcaseMod - FMF hook naming —
FMF.*-Doku-Konvention - greg hooks catalog — EventId →
greg.*(GregNativeEventHooks) - FMF hooks catalog — Hinweis/Redirect auf die neue Quelle
Legacy
GregCompatBridge lädt legacy → name aus greg_hooks.json. Zusätzlich gibt es eingebaute Alias-Tabellen für ältere Schreibweisen — siehe Quellcode GregCompatBridge.