Editing Modding Tutorials/GameComponent
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 27: | Line 27: | ||
RimWorld will automatically create an instance of all classes that inherit from Map-, World- or GameComponent. | RimWorld will automatically create an instance of all classes that inherit from Map-, World- or GameComponent. | ||
− | To implement a Map-, | + | To implement a Map-, WorldComponent, we need to inherit from their respective Map- or WorldComponent class and implement their parametered constructor inheriting from base. See [[Modding Tutorials/GameComponent#Example Code|example]]. This constructor gives an object reference to the respective components. In other worlds, it tells your Map or WorldComponent what Map or World they're tied to. And vice versa. |
− | Note that you'll need ''using RimWorld.Planet;'' for WorldComponents. | + | Note that you'll need ''using RimWorld.Planet;'' for WorldComponents. A constructor is not enforced for GameComponent, as there's only ever one instance of Game. |
== Example Code == | == Example Code == | ||
Line 101: | Line 101: | ||
Current.Game.GetComponent<MyExampleGameComponent>(); | Current.Game.GetComponent<MyExampleGameComponent>(); | ||
</source> | </source> | ||
− | |||
− | |||
Note the difference in Current vs Find for Game vs Map- and World Components. | Note the difference in Current vs Find for Game vs Map- and World Components. | ||
Line 126: | Line 124: | ||
===FinalizeInit=== | ===FinalizeInit=== | ||
− | Called when RimWorld is done instantiating the TYPE | + | Called when RimWorld is done instantiating the TYPE. |
− | |||
− | |||
===StartedNewGame=== | ===StartedNewGame=== |