Editing Modding Tutorials/Decompiling source code
Jump to navigation
Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
{{BackToTutorials}} | {{BackToTutorials}} | ||
+ | {{Credit|[[User:Alistaire|Alistaire]]}}<br/> | ||
− | The base game provides a bunch of code snippets in ''../Source/'', relative to your Rimworld installation. Since this isn't a lot, one might want to take a look at the game's full source code | + | The base game provides a bunch of code snippets in ''../Source/'', relative to your Rimworld installation. Since this isn't a lot, one might want to take a look at the game's full source code:<br/><br/> |
− | |||
− | |||
=Decompiling source code= | =Decompiling source code= | ||
Line 9: | Line 8: | ||
===ILSpy=== | ===ILSpy=== | ||
− | ILSpy is | + | One method is to use ILSpy. This software is recommended because its settings are correct on a clean install. It is Windows only, though.<br/> |
− | # Download [http://ilspy.net/ ILSpy] ( | + | # Download [http://ilspy.net/ ILSpy] (Download Binaries) and extract it to a directory of your choosing. Optionally create a desktop shortcut; |
# '''Either''': associate the .dll extension with ILSpy: | # '''Either''': associate the .dll extension with ILSpy: | ||
− | ## Navigate to ''Assembly-CSharp.dll'' in ''../Rimworld***_Data/Managed/'', relative to your Rimworld installation and with *** being a version number | + | ## Navigate to ''Assembly-CSharp.dll'' in ''../Rimworld***_Data/Managed/'', relative to your Rimworld installation and with *** being a version number; |
## Right-click "Open with" and select a standard program. Navigate to your ILSpy installation and double-click ''ILSpy.exe'', tick the checkbox and accept; | ## Right-click "Open with" and select a standard program. Navigate to your ILSpy installation and double-click ''ILSpy.exe'', tick the checkbox and accept; | ||
## Double-click ''Assembly-CSharp.dll'', | ## Double-click ''Assembly-CSharp.dll'', | ||
# '''Or''': open ILSpy and open a .dll: | # '''Or''': open ILSpy and open a .dll: | ||
## Open ILSpy; | ## Open ILSpy; | ||
− | ## Go to File -> Open or press Ctrl+O, navigate to ''../Rimworld***_Data/Managed/'', relative to your Rimworld installation and with *** being a version number | + | ## Go to File -> Open or press Ctrl+O, navigate to ''../Rimworld***_Data/Managed/'', relative to your Rimworld installation and with *** being a version number; |
## Select ''Assembly-CSharp.dll'' and confirm, | ## Select ''Assembly-CSharp.dll'' and confirm, | ||
# Click the "+" next to ''Assembly-CSharp (***)'', you will now see a list including the items ''Rimworld'' and ''Verse''; | # Click the "+" next to ''Assembly-CSharp (***)'', you will now see a list including the items ''Rimworld'' and ''Verse''; | ||
Line 24: | Line 23: | ||
## Ctrl+Shift+F or Ctrl+E opens the search bar which can be used to search through all loaded assemblies; | ## Ctrl+Shift+F or Ctrl+E opens the search bar which can be used to search through all loaded assemblies; | ||
## Ctrl+F opens a search bar for the currently opened decompiled class.<br/><br/> | ## Ctrl+F opens a search bar for the currently opened decompiled class.<br/><br/> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
===MonoDevelop=== | ===MonoDevelop=== | ||
Line 54: | Line 30: | ||
# Download [http://www.monodevelop.com/download/ MonoDevelop] and install it; | # Download [http://www.monodevelop.com/download/ MonoDevelop] and install it; | ||
# '''Either''': associate the .dll extension with MonoDevelop: | # '''Either''': associate the .dll extension with MonoDevelop: | ||
− | ## Navigate to ''Assembly-CSharp.dll'' in ''../Rimworld***_Data/Managed/'', relative to your Rimworld installation and with *** being a version number | + | ## Navigate to ''Assembly-CSharp.dll'' in ''../Rimworld***_Data/Managed/'', relative to your Rimworld installation and with *** being a version number; |
## Right-click "Open with" and select MonoDevelop as standard program; | ## Right-click "Open with" and select MonoDevelop as standard program; | ||
## Double-click ''Assembly-CSharp.dll'', | ## Double-click ''Assembly-CSharp.dll'', | ||
# '''Or''': open MonoDevelop and open a .dll: | # '''Or''': open MonoDevelop and open a .dll: | ||
## Open MonoDevelop; | ## Open MonoDevelop; | ||
− | ## Go to File -> Open, navigate to ''../Rimworld***_Data/Managed/'', relative to your Rimworld installation and with *** being a version number | + | ## Go to File -> Open, navigate to ''../Rimworld***_Data/Managed/'', relative to your Rimworld installation and with *** being a version number; |
## Select ''Assembly-CSharp.dll'' and confirm, | ## Select ''Assembly-CSharp.dll'' and confirm, | ||
# '''Very important''': search for a dropdown called "Visibility" and change it from "Only public members" to "All members"; | # '''Very important''': search for a dropdown called "Visibility" and change it from "Only public members" to "All members"; | ||
Line 65: | Line 41: | ||
# Click the "+" next to ''Assembly-CSharp (***)'', you will now see a list including the items ''Rimworld'' and ''Verse''; | # Click the "+" next to ''Assembly-CSharp (***)'', you will now see a list including the items ''Rimworld'' and ''Verse''; | ||
# Take your time to look through the source code, to make yourself familiar. If you ever need the source code, open ''Assembly-CSharp.dll'' again.<br/><br/> | # Take your time to look through the source code, to make yourself familiar. If you ever need the source code, open ''Assembly-CSharp.dll'' again.<br/><br/> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=See also= | =See also= |