Compare commits

...

2 Commits

Author SHA1 Message Date
Marvin 7a8cb80a8b Merge branch 'main' of ssh://git.datacentermods.com:2222/teamGreg/gregCore
gregCore CI / build (push) Has been cancelled
2026-04-25 02:47:33 +02:00
Marvin 944f6e1cc8 Remove outdated documentation and references
- Deleted `moonsharp-lua-integration.md` as it is no longer relevant.
- Removed `scripting-language-support.md` to streamline documentation.
- Eliminated `game_assembly_analysis.md` to avoid confusion with current architecture.
- Cleared `README.md` in `lib/references` to prevent outdated instructions.
- Removed `modding_core_architecture_summary.md` to simplify the documentation structure.
- Deleted `CHANGELOG.md` in `publish_full` to maintain a clean repository.
- Cleared `README.md` in `publish_full` to remove obsolete information.

Update project structure and versioning

- Updated `gregCore.csproj` to version `1.0.0.40-pre`.
- Modified `gregCore.sln` to include new project structure with multiple components.
2026-04-25 02:46:52 +02:00
5 changed files with 234 additions and 11 deletions
+37 -3
View File
@@ -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/
+35
View File
@@ -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*
+23
View File
@@ -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
+118
View File
@@ -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
View File
@@ -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