Compare commits
2 Commits
5282adecfb
...
7a8cb80a8b
| Author | SHA1 | Date | |
|---|---|---|---|
| 7a8cb80a8b | |||
| 944f6e1cc8 |
+37
-3
@@ -1,13 +1,47 @@
|
||||
*
|
||||
|
||||
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
|
||||
# Build output
|
||||
bin/
|
||||
obj/
|
||||
node_modules/
|
||||
out/
|
||||
out_*/
|
||||
|
||||
# IDE
|
||||
.vs/
|
||||
.vscode/
|
||||
.idea/
|
||||
*.user
|
||||
*.suo
|
||||
*.swp
|
||||
|
||||
# NuGet
|
||||
packages/
|
||||
*.nupkg
|
||||
|
||||
# Test results
|
||||
TestResults/
|
||||
coverage/
|
||||
|
||||
# Logs
|
||||
*.log
|
||||
logs/
|
||||
|
||||
# Misc
|
||||
*.tmp
|
||||
*.bak
|
||||
MISSING.md
|
||||
**/MISSING.md
|
||||
|
||||
# Specifically allow reference DLLs for CI
|
||||
!gregLib/references/
|
||||
# Reference DLLs
|
||||
!lib/references/**
|
||||
!references/**
|
||||
|
||||
# Build artifacts
|
||||
publish/
|
||||
publish_out/
|
||||
publish_full/
|
||||
build/artifacts/
|
||||
@@ -0,0 +1,35 @@
|
||||
# AI Agent Instructions
|
||||
|
||||
This file is the primary source of truth for AI coding agents working in the gregCore repository.
|
||||
|
||||
## Repository Mission
|
||||
|
||||
gregCore is a .NET 6 MelonLoader mod framework for IL2CPP Unity games. The product name is gregCore.
|
||||
|
||||
## Source of Truth Hierarchy
|
||||
|
||||
1. **AGENTS.md** (this file) - Main instruction source
|
||||
2. **DEVELOPMENT.md** - Local setup and build
|
||||
3. **ARCHITECTURE.md** - Structural guidance
|
||||
4. **CONTRIBUTING.md** - Contribution workflow
|
||||
|
||||
## Allowed Changes
|
||||
|
||||
AI agents may propose:
|
||||
- Bug fixes in src/ files
|
||||
- Documentation improvements
|
||||
- Test additions in tests/
|
||||
- Build script improvements
|
||||
- Non-breaking enhancements
|
||||
|
||||
## Forbidden Changes
|
||||
|
||||
AI agents must NOT:
|
||||
- Modify `lib/references/` (game-specific DLLs)
|
||||
- Modify existing hook signatures (breaking)
|
||||
- Add external dependencies without discussion
|
||||
- Push directly to main branch
|
||||
- Modify release process without approval
|
||||
|
||||
---
|
||||
*Migrated from GameFramework/AGENTS.md*
|
||||
@@ -0,0 +1,23 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Added
|
||||
- Initial 2026-optimized repository structure
|
||||
|
||||
### Changed
|
||||
- Repository reorganized for 2026 standards
|
||||
|
||||
### Fixed
|
||||
- Documentation modernization
|
||||
|
||||
## [1.0.0] - Initial Release
|
||||
|
||||
### Added
|
||||
- gregCore mod framework
|
||||
- Multiple mods: WallRack, GridPlacement, UI, CommonShop, etc.
|
||||
- Harmony hooking system
|
||||
- Save engine with versioning
|
||||
- Unit tests
|
||||
@@ -0,0 +1,118 @@
|
||||
# gregCore
|
||||
|
||||
A .NET 6 MelonLoader mod framework for Data Center and similar Unity IL2CPP games.
|
||||
|
||||
## Product Name
|
||||
|
||||
The official product name is **gregCore**. This is a multi-project .NET 6 framework designed for MelonLoader-based modding.
|
||||
|
||||
## Project Purpose
|
||||
|
||||
This repository provides a modular modding framework for Unity-based games using MelonLoader. It includes hooks, patching systems, UI extensions, save handling, and core API services for building game modifications.
|
||||
|
||||
## Target Users
|
||||
|
||||
- Mod developers building extensions for Data Center or compatible IL2CPP Unity games
|
||||
- Contributors familiar with C#, MelonLoader, and Harmony patching
|
||||
- AI agents assisting with mod development workflows
|
||||
|
||||
## Major Capabilities
|
||||
|
||||
- Harmony-based runtime patching system
|
||||
- UI overlay and widget management
|
||||
- Save engine with versioning and migration support
|
||||
- Multi-mod architecture with dependency resolution
|
||||
- Wall rack and grid placement systems
|
||||
- Custom shop and employee management APIs
|
||||
- Logging and diagnostic infrastructure
|
||||
|
||||
## Repository Layout
|
||||
|
||||
```
|
||||
GameFramework/
|
||||
├─ src/ # Mod source code (multiple independent mods)
|
||||
├─ framework/ # Shared hook definitions
|
||||
├─ lib/ # Reference assemblies and dependencies
|
||||
├─ tests/ # Unit and integration tests
|
||||
├─ build/ # Build scripts and artifacts
|
||||
├─ docs/ # Documentation
|
||||
├─ .github/ # GitHub workflows and templates
|
||||
└─ [root files] # Solution, project, build config
|
||||
```
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- .NET 6 SDK (net6.0)
|
||||
- Visual Studio 2022+ or VS Code with C# extension
|
||||
- MelonLoaderinstalled game (default: Data Center)
|
||||
- Reference assemblies from target game (local paths required)
|
||||
|
||||
## Quick Start
|
||||
|
||||
```powershell
|
||||
# Restore and build
|
||||
./build.ps1
|
||||
|
||||
# Output goes to bin/Debug/net6.0/ or bin/Release/net6.0/
|
||||
# Deploy DLL to your game's MelonLoader Mods folder
|
||||
```
|
||||
|
||||
## Build Instructions
|
||||
|
||||
### Windows (PowerShell)
|
||||
|
||||
```powershell
|
||||
./build.ps1
|
||||
```
|
||||
|
||||
### Linux/macOS (Shell)
|
||||
|
||||
```bash
|
||||
./build.sh
|
||||
```
|
||||
|
||||
### Options
|
||||
|
||||
- `-Configuration Debug|Release` - Build configuration
|
||||
- `-Clean` - Clean before build
|
||||
|
||||
## MelonLoader Deployment
|
||||
|
||||
Built DLLs (`gregCore.dll`) go into your game's `Mods` folder:
|
||||
|
||||
```
|
||||
<Data Center>/Mods/gregCore.dll
|
||||
```
|
||||
|
||||
Ensure reference DLLs (MelonLoader, Harmony, Il2CppInterop) are in the game's MelonLoader directory.
|
||||
|
||||
## IL2CPP and AI-Assisted Modding
|
||||
|
||||
> **Important**: When using AI for mod development against IL2CPP-based games, an IL2CPP unpack/decompilation workflow is strongly recommended.
|
||||
|
||||
AI-assisted modding works best when you have readable game references and type information. For practical reverse-engineering and inspection:
|
||||
|
||||
1. **Decompile or unpack** relevant game assemblies into a browsable C#-oriented reference project
|
||||
2. Tools such as **dnSpy** or **dotPeek** may be useful in the inspection pipeline where applicable
|
||||
3. Note that pure IL2CPP targets require additional metadata extraction steps beyond ordinary managed assembly inspection
|
||||
|
||||
A **future dedicated helper tool** from this project is planned to simplify the IL2CPP reference extraction process.
|
||||
|
||||
## Contributing
|
||||
|
||||
See [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines.
|
||||
|
||||
## Security
|
||||
|
||||
See [SECURITY.md](SECURITY.md) for vulnerability reporting.
|
||||
|
||||
## Compatibility
|
||||
|
||||
- .NET 6.0 (net6.0)
|
||||
- MelonLoader compatible games
|
||||
- Unity 2020.3+ (IL2CPP backend)
|
||||
- Platform: Windows x64 (primary)
|
||||
|
||||
## License
|
||||
|
||||
See LICENSE file for details.
|
||||
+21
-8
@@ -1,13 +1,30 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.14.37111.16
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "gregCore", "gregCore.csproj", "{73B346A1-72BC-4F8C-BDAF-C2E88AB9CF69}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "gregFramework", "gregFramework", "{9A0CCAB9-4303-13B4-2371-F1B97FF5B728}"
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "gregCore.Abstractions", "src\gregCore.Abstractions\gregCore.Abstractions.csproj", "{A1B2C3D4-E5F6-4789-ABCD-EF1234567890}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "gregCore.Tests", "tests\gregCore.Tests.csproj", "{FAF3FBA7-1865-41EF-BA90-215D9E7BF597}"
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "gregCore.SDK", "src\gregCore.SDK\gregCore.SDK.csproj", "{B2C3D4E5-F678-49AB-CDEF-123456789012}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "gregCore.Core", "src\gregCore.Core\gregCore.Core.csproj", "{C3D4E567-89AB-4CDE-F123-456789012345}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "gregCore.Mod", "src\gregCore.Mod\gregCore.Mod.csproj", "{D4E56789-ABCD-4E12-3456-789012345678}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "gregCore.Hooks", "src\gregCore.Hooks\gregCore.Hooks.csproj", "{E56789AB-CDEF-4512-3456-789012345678}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "gregCore.Patches", "src\gregCore.Patches\gregCore.Patches.csproj", "{F6789ABC-DEF5-5123-4567-890123456789}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "gregCore.Compatibility", "src\gregCore.Compatibility\gregCore.Compatibility.csproj", "{89ABCD12-EF67-4123-4567-890123456789}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "gregCore.Bridge", "src\gregCore.Bridge\gregCore.Bridge.csproj", "{9ABCDE23-F678-4231-5678-901234567890}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "gregCore.UI", "src\gregCore.UI\gregCore.UI.csproj", "{ABCDEF34-5678-4321-6789-012345678901}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "gregCore.Shared", "src\gregCore.Shared\gregCore.Shared.csproj", "{BCDE1234-5678-5341-7890-123456789012}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "gregCore.Tests", "tests\gregCore.Tests\gregCore.Tests.csproj", "{FAF3FBA7-1865-41EF-BA90-215D9E7BF597}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
@@ -47,11 +64,7 @@ Global
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(NestedProjects) = preSolution
|
||||
{FAF3FBA7-1865-41EF-BA90-215D9E7BF597} = {9A0CCAB9-4303-13B4-2371-F1B97FF5B728}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {798E71F5-042F-4369-BFB3-984CC5DB2169}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
||||
EndGlobal
|
||||
Reference in New Issue
Block a user