mirror of
https://github.com/mleem97/gregWiki.git
synced 2026-04-11 11:39:18 +02:00
Merge Docusaurus site: all content under docs/, align with gregFramework split layout
- Move markdown and wiki-import tree into docs/; keep app shell at repo root - Point docusaurus docs path to docs/; edit links to mleem97/gregWiki - Sync and i18n scripts use gregWiki root and ../.wiki under gregFramework - Sidebars: workspace layout from root docs ids; plugins under mods/extensions - Fix redirects, module catalog URLs, release note paths, and wiki-import category keys - Update repo inventory for split repos; Dockerfile for single-repo context Made-with: Cursor
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
---
|
||||
title: Contributors (Debug) EN
|
||||
description: Framework contributor setup, hook workflow, conventions, CI behavior, and PR checklist.
|
||||
sidebar_position: 140
|
||||
tags:
|
||||
- audience:contributor
|
||||
---
|
||||
|
||||
## Contributors (Debug)
|
||||
|
||||
This page is for contributors working on FrikaMF itself.
|
||||
|
||||
For the complete and maintainable feature matrix with implementation use cases, see [`Framework Features & Use Cases`](/wiki/wiki-import/Framework-Features-Use-Cases).
|
||||
|
||||
## Dev setup
|
||||
|
||||
```powershell
|
||||
dotnet build .\framework\framework/FrikaMF.csproj -c Debug -nologo
|
||||
cargo build --release
|
||||
```
|
||||
|
||||
Optional game path override:
|
||||
|
||||
```powershell
|
||||
dotnet build .\framework\framework/FrikaMF.csproj /p:GameDir="C:\Path\To\Data Center"
|
||||
```
|
||||
|
||||
## Add a new hook workflow
|
||||
|
||||
1. Find target in dnSpy/dotPeek.
|
||||
2. Update `HOOKS.md`.
|
||||
3. Add Harmony patch.
|
||||
4. Add event id + dispatch wiring.
|
||||
5. Add/update Rust ABI event handling if needed.
|
||||
6. Test locally.
|
||||
7. Open PR.
|
||||
|
||||
## Conventions
|
||||
|
||||
- Keep ABI structs blittable.
|
||||
- Keep wrappers in framework, gameplay policy in mods.
|
||||
- Use stable event names and explicit contracts.
|
||||
|
||||
## IL2CPP pitfalls
|
||||
|
||||
- `b###` compiler-generated members are unstable.
|
||||
- Coroutine state-machine types (`d##`) are unstable.
|
||||
- Prefer Postfix first unless behavior blocking is required.
|
||||
|
||||
## Lua/Python/Web FFI contributor notes
|
||||
|
||||
Current core status:
|
||||
|
||||
- Rust native FFI bridge: implemented.
|
||||
- Built-in Lua runtime host: not implemented.
|
||||
- Built-in Python runtime host: not implemented.
|
||||
- Built-in generic HTTP/WebSocket FFI transport: not implemented.
|
||||
|
||||
Contribution guidance:
|
||||
|
||||
- Treat Lua/Python as sidecar integration work unless core runtime hosting is explicitly added.
|
||||
- Keep Unity and IL2CPP access constrained to C#/Rust boundaries.
|
||||
- If adding transport, define strict command schemas, authentication for non-local access, and rate limits.
|
||||
|
||||
## CI behavior
|
||||
|
||||
- CI runs without game installation.
|
||||
- `$(CI)=true` skips local game reference validation.
|
||||
- Local builds require MelonLoader-generated interop files.
|
||||
|
||||
## PR checklist
|
||||
|
||||
- [ ] `HOOKS.md` updated
|
||||
- [ ] Build passes locally
|
||||
- [ ] Docs updated
|
||||
- [ ] Conventional Commits used
|
||||
|
||||
## Example pair
|
||||
|
||||
### 🦀 Rust
|
||||
|
||||
```rust
|
||||
#[repr(C)]
|
||||
pub struct MoneyChanged {
|
||||
pub old_value: i32,
|
||||
pub new_value: i32,
|
||||
}
|
||||
```
|
||||
|
||||
### 🔷 C\#
|
||||
|
||||
```csharp
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public struct MoneyChanged
|
||||
{
|
||||
public int OldValue;
|
||||
public int NewValue;
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"label": "Contributors (typo path — prefer Contributors/)",
|
||||
"position": 60,
|
||||
"key": "wiki-import-root-contributors-typo"
|
||||
}
|
||||
Reference in New Issue
Block a user