Difference between revisions of "Modding Tutorials/Writing custom code"
Jump to navigation
Jump to search
(Made more in line with other tutorials) |
|||
Line 1: | Line 1: | ||
{{BackToTutorials}} | {{BackToTutorials}} | ||
+ | {{Credit|[[User:TheTynan|TheTynan]]}}<br/> | ||
− | + | This tutorial gives you a broad idea how to work on a C# solution.<br/><br/> | |
− | In addition to creating data for the game to use, you can also write code. You could probably write in any .NET language, but I’ve only tested C#.<br/><br/> | + | =Requirements= |
+ | |||
+ | * This tutorial requires you to have [[Modding Tutorials/Setting up a solution|set up a solution]].<br/><br/> | ||
+ | |||
+ | =Writing custom code= | ||
+ | <!-- ### THE FOLLOWING TEXT was stripped from the page because it's not in line with the tone of the article | ||
+ | |||
+ | In addition to creating data for the game to use, you can also write code. You could probably write in any .NET language, but I’ve only tested C#.<br/><br/>--> | ||
# Create a new class in a new code file: | # Create a new class in a new code file: | ||
Line 20: | Line 28: | ||
# The game should load your class now;<br/><br/> | # The game should load your class now;<br/><br/> | ||
− | + | =See also= | |
− | |||
− | |||
− | * | + | * [[Modding_Tutorials/Distribution|Distribution]] details how to release your mod. |
+ | * [[Modding Tutorials/Assembly Modding Example|Assembly modding example]] contains a small modding example.<br/> | ||
[[Category:Modding tutorials]] | [[Category:Modding tutorials]] |
Revision as of 10:44, 25 August 2015
This page was originally created by TheTynan.
This tutorial gives you a broad idea how to work on a C# solution.
Requirements
- This tutorial requires you to have set up a solution.
Writing custom code
- Create a new class in a new code file:
- In your IDE project file browser, right-click (YourProjectName), Add -> New item -> C# or .NET -> Class;
- Rename the class to what you want the class name to be, e.g DamageWorker_FlameExtension,
- You’ll want to add these namespace to the top of each of your .cs source files as necessary;
using UnityEngine; //For all Unity functionality, rendering, resource management using AI; //RimWorld AI using Sound; //RimWorld sound subsystem using UI; //RimWorld GUI
- Write your class;
- Decompile source code to take a look at the game's existing code;
- If you still get stuck on anything, any modding questions can be asked on the subforum,
- Compile your class into a .dll;
- Make sure your project's output type is "class library";
- Note: by default, Visual Studio will compile all the references of the project as well, so you’ll get a copy of UnityEngine.dll and Assembly-CSharp.dll and some others. You don’t need these. Just take YourModName.dll,
- Place the .dll in the YourModName/Assemblies folder of your mod;
- Reference the classes in your .dll from the xml data in the YourModName/Defs folder;
- Example: Create a new ThingDef with a <thingClass> that points to a class in your .dll,
- The game should load your class now;
See also
- Distribution details how to release your mod.
- Assembly modding example contains a small modding example.