Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
root = true

[*.cs]
# Core formatting rules
indent_style = space
indent_size = 4

# --- LINTING RULES ---

# IDE0005: Remove unnecessary using directives
# Options: suggestion (dots), warning (yellow squiggly), error (red squiggly/build fails)
dotnet_diagnostic.IDE0005.severity = warning

# IDE0001: Simplify names (e.g., use 'string' instead of 'System.String')
dotnet_diagnostic.IDE0001.severity = warning

# CS8019: Unnecessary using directive (Compiler specific rule)
dotnet_diagnostic.CS8019.severity = warning
49 changes: 16 additions & 33 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,48 +2,31 @@
"version": "0.2.0",
"configurations": [
{
"name": "🚀 Build, Deploy & Launch",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "[1.5] Build and Launch",
"program": "dotnet",
"args": [],
"cwd": "${workspaceFolder}",
"console": "internalConsole",
"stopAtEntry": false
},
{
"name": "🔨 Build & Deploy 1.5",
"name": "▶️ Launch RimWorld [1.5]",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "[1.5] Build and Deploy",
"program": "dotnet",
"args": [],
"preLaunchTask": "🚀 Deploy [1.5]",
"program": "${config:rimworld.paths.v15}",
"args": [
// Tip: Add "-savedatafolder=${workspaceFolder}/.rimworld-save" here
// to keep your dev colony saves isolated from your actual game saves
],
"cwd": "${workspaceFolder}",
"console": "internalConsole",
"stopAtEntry": false
"stopAtEntry": false,
"requireExactSource": false
},
{
"name": "🔥 [1.6] Build, Launch",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "[1.6] Build and Launch",
"program": "dotnet",
"args": [],
"cwd": "${workspaceFolder}",
"console": "internalConsole",
"stopAtEntry": false
},
{
"name": "🔨 [1.6] Build",
"name": "▶️ Launch RimWorld [1.6]",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "[1.6] Build and Deploy",
"program": "dotnet",
"preLaunchTask": "🚀 Deploy [1.6]",
"program": "${config:rimworld.paths.v16}",
"args": [],
"cwd": "${workspaceFolder}",
"console": "internalConsole",
"stopAtEntry": false
}
"stopAtEntry": false,
"requireExactSource": false
},
]
}
}
13 changes: 11 additions & 2 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"dotnet.defaultSolution": "RimApi.sln",
"dotnet.defaultSolution": "Source/RIMAPI/RimApi.sln",
"dotnet.preferCSharpExtension": true,
"files.exclude": {
"**/bin": true,
"**/obj": true,
Expand All @@ -9,5 +10,13 @@
"**/bin": true,
"**/obj": true
},
"dotnet.preferCSharpExtension": true

"editor.codeActionsOnSave": {
"source.organizeImports": "explicit"
},

// --- RIMWORLD ENVIRONMENT VARIABLES ---
"rimworld.paths.v15": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\RimWorld\\RimWorldWin64.exe",
"rimworld.paths.v16": "E:\\Games\\RimWorld\\RimWorldWin64.exe",
"rimworld.mod.deployPath": "E:\\Program Files\\Steam\\steamapps\\common\\RimWorld\\Mods\\3593423732"
}
126 changes: 35 additions & 91 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -1,127 +1,71 @@
{
"version": "2.0.0",
"tasks": [
// --- 1.5 TASKS ---
{
"label": "[1.5] Build and Deploy",
"label": "🔨 Build [1.5]",
"command": "dotnet",
"type": "process",
"args": [
"build",
"${workspaceFolder}/Source/RIMAPI/RimApi.csproj",
"--configuration", "Release-1.5",
"--verbosity", "normal",
"--verbosity", "minimal",
"/p:CopyLocalLockFileAssemblies=true"
],
"group": "build",
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared",
"showReuseMessage": false,
"clear": true
},
"problemMatcher": "$msCompile"
},
{
"label": "[1.6] Build and Deploy",
"label": "🚀 Deploy [1.5]",
"type": "shell",
"command": "xcopy",
"args": [
"/Y", "/E", "/I", "/Q",
"${workspaceFolder}\\1.5\\Assemblies\\*",
"${config:rimworld.mod.deployPath}\\1.5\\Assemblies\\"
],
"dependsOn": "🔨 Build [1.5]",
"presentation": { "reveal": "silent" }
},

// --- 1.6 TASKS ---
{
"label": "🔨 Build [1.6]",
"command": "dotnet",
"type": "process",
"args": [
"build",
"${workspaceFolder}/Source/RIMAPI/RimApi.csproj",
"--configuration", "Release-1.6",
"--verbosity", "normal",
"--verbosity", "minimal",
"/p:CopyLocalLockFileAssemblies=true"
],
"group": "build",
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared",
"showReuseMessage": false,
"clear": true
},
"problemMatcher": "$msCompile"
},
{
"label": "clean-build",
"label": "🚀 Deploy [1.6]",
"type": "shell",
"command": "xcopy",
"args": [
"/Y", "/E", "/I", "/Q",
"${workspaceFolder}\\1.6\\Assemblies\\*",
"${config:rimworld.mod.deployPath}\\1.6\\Assemblies\\"
],
"dependsOn": "🔨 Build [1.6]",
"presentation": { "reveal": "silent" }
},

// --- UTILITY ---
{
"label": "🧹 Clean",
"command": "dotnet",
"type": "process",
"args": [
"clean",
"${workspaceFolder}/Source/RIMAPI/RimApi.csproj"
],
"group": "build"
},
{
"label": "[1.5] Launch RimWorld",
"type": "shell",
"command": "cmd",
"args": [
"/c",
"start",
"\"E:\\Games\\RimWorld\\RimWorldWin64.exe\""
],
"group": "build",
"presentation": {
"echo": false,
"reveal": "silent"
}
},
{
"label": "[1.6] Launch RimWorld",
"type": "process",
"command": "E:\\Program Files\\Steam\\steamapps\\common\\RimWorld\\RimWorldWin64.exe",
"group": "build",
"presentation": {
"echo": false,
"reveal": "silent"
}
},
{
"label": "[1.5] Build and Launch",
"dependsOrder": "sequence",
"dependsOn": ["[1.5] Build and Deploy", "[1.5] Launch RimWorld"],
"group": "build",
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared",
"clear": true
}
},
{
"label": "[1.6] Copy To Mods",
"type": "shell",
"command": "xcopy",
"args": [
"/Y",
"/E",
"/I",
"${workspaceFolder}\\1.6\\Assemblies\\*",
"E:\\Program Files\\Steam\\steamapps\\common\\RimWorld\\Mods\\3593423732\\1.6\\Assemblies\\"
],
"group": "build",
"presentation": {
"echo": false,
"reveal": "silent"
}
},
{
"label": "[1.6] Build and Launch",
"dependsOrder": "sequence",
"dependsOn": ["[1.6] Build and Deploy", "[1.6] Copy To Mods", "[1.6] Launch RimWorld"],
"group": "build",
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared",
"clear": true
}
]
}
]
}
1 change: 0 additions & 1 deletion Source/RIMAPI/RIMAPI_GameComponent.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
using System;
using RIMAPI.Core;
using UnityEngine;
using Verse;

namespace RIMAPI
Expand Down
26 changes: 13 additions & 13 deletions Source/RIMAPI/RimApi.sln
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RimApi", "RimApi.csproj", "{A077C903-8CBC-474C-9D24-877D06ADECC8}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RimApi", "RimApi.csproj", "{7C37F0D8-B533-4F83-A559-00503E1DC46F}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand All @@ -15,18 +15,18 @@ Global
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A077C903-8CBC-474C-9D24-877D06ADECC8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A077C903-8CBC-474C-9D24-877D06ADECC8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A077C903-8CBC-474C-9D24-877D06ADECC8}.Debug|x64.ActiveCfg = Debug|Any CPU
{A077C903-8CBC-474C-9D24-877D06ADECC8}.Debug|x64.Build.0 = Debug|Any CPU
{A077C903-8CBC-474C-9D24-877D06ADECC8}.Debug|x86.ActiveCfg = Debug|Any CPU
{A077C903-8CBC-474C-9D24-877D06ADECC8}.Debug|x86.Build.0 = Debug|Any CPU
{A077C903-8CBC-474C-9D24-877D06ADECC8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A077C903-8CBC-474C-9D24-877D06ADECC8}.Release|Any CPU.Build.0 = Release|Any CPU
{A077C903-8CBC-474C-9D24-877D06ADECC8}.Release|x64.ActiveCfg = Release|Any CPU
{A077C903-8CBC-474C-9D24-877D06ADECC8}.Release|x64.Build.0 = Release|Any CPU
{A077C903-8CBC-474C-9D24-877D06ADECC8}.Release|x86.ActiveCfg = Release|Any CPU
{A077C903-8CBC-474C-9D24-877D06ADECC8}.Release|x86.Build.0 = Release|Any CPU
{7C37F0D8-B533-4F83-A559-00503E1DC46F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7C37F0D8-B533-4F83-A559-00503E1DC46F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7C37F0D8-B533-4F83-A559-00503E1DC46F}.Debug|x64.ActiveCfg = Debug|Any CPU
{7C37F0D8-B533-4F83-A559-00503E1DC46F}.Debug|x64.Build.0 = Debug|Any CPU
{7C37F0D8-B533-4F83-A559-00503E1DC46F}.Debug|x86.ActiveCfg = Debug|Any CPU
{7C37F0D8-B533-4F83-A559-00503E1DC46F}.Debug|x86.Build.0 = Debug|Any CPU
{7C37F0D8-B533-4F83-A559-00503E1DC46F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7C37F0D8-B533-4F83-A559-00503E1DC46F}.Release|Any CPU.Build.0 = Release|Any CPU
{7C37F0D8-B533-4F83-A559-00503E1DC46F}.Release|x64.ActiveCfg = Release|Any CPU
{7C37F0D8-B533-4F83-A559-00503E1DC46F}.Release|x64.Build.0 = Release|Any CPU
{7C37F0D8-B533-4F83-A559-00503E1DC46F}.Release|x86.ActiveCfg = Release|Any CPU
{7C37F0D8-B533-4F83-A559-00503E1DC46F}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@
using System.Net;
using RIMAPI.Core;
using RIMAPI.Http;
using RIMAPI.Models;
using RIMAPI.Services;
using System;

namespace RIMAPI.Controllers
{
Expand Down
7 changes: 7 additions & 0 deletions Source/RIMAPI/RimworldRestApi/Controllers/AI/.info.meta
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Domain: AI

Description:
Handles artificial intelligence systems, group behaviors, and automated decision-making processes.

Controllers:
- LordController: Manages 'Lords' (group AI) which dictate the behavior of raids, caravans, parties, and other coordinated entity gatherings.
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
using System.Threading.Tasks;
using System.Net;
using RIMAPI.Core;
using RIMAPI.Http;
using RIMAPI.Models;
using RIMAPI.Services;

Expand Down
13 changes: 13 additions & 0 deletions Source/RIMAPI/RimworldRestApi/Controllers/Client/.info.meta
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Domain: Client

Description:
Handles all interactions with the local player's visual perspective, user interface, and engine rendering.

Controllers:
- CameraController: Manipulates the viewport, zoom levels, and captures screenshots.
- ImagesController: Extracts game textures, materials, and renders visual assets.
- OverlayController: Manages drawing custom graphics, labels, and lines on top of the game world.
- UIController: Reads game alerts, messages, active windows, and menus.

Dependencies:
Requires execution on the main Unity thread (GameThreadUtility) for all rendering and IMGUI-layer calls.
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
using System;
using System.Linq;
using System.Net;
using System.Threading.Tasks;
using RIMAPI.CameraStreamer;
Expand All @@ -8,7 +6,6 @@
using RIMAPI.Models;
using RIMAPI.Models.Camera;
using RIMAPI.Services;
using Verse;

namespace RimworldRestApi.Controllers
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
using System.Threading.Tasks;
using System.Net;
using RIMAPI.Core;
using RIMAPI.Http;
using RIMAPI.Models;
using RIMAPI.Services;

Expand Down
Loading