[1.4] YADA: Yet Another Dev Assitant

Started by zed_0xff, May 14, 2023, 02:37:15 PM

Previous topic - Next topic

zed_0xff


YADA: Yet Another Dev Assistant

0. XML Harmony patches!
So simple!

<YADA.PatchDef>
    <defName>YADA_freezeNeedsAtHalf</defName>
    <className>Need</className>
    <methodName>get_CurLevel</methodName>
    <postfix>
      <setResult>0.5</setResult>
    </postfix>
</YADA.PatchDef>
Or a bit more complex:
``` xml
<YADA.PatchDef>
    <defName>YADA_freezeNeedsAtMax</defName>
    <label>Freeze needs at max</label>

<className>Need</className>
<methodName>get_CurLevel</methodName>
<postfix>
  <arguments>
    <li>ref __result</li>
    <li>__instance</li>
  </arguments>
  <opcodes>
    <!-- checkbox code is added automagically -->
    <li>Ldarg_0</li>
    <li>Ldarg_1</li>
    <li>Callvirt RimWorld.Need::get_MaxLevel</li>
    <li>Stind_R4</li>
    <!-- ret is added automagically -->
  </opcodes>
</postfix>

<debugSettingsCheckbox/>
</YADA.PatchDef>
```
See the Patches dir for more examples.

I bet you've dreamt of writing the CIL opcodes in XML )) Can be done now!

And as a bonus you'd get a free checkbox if <debugSettingsCheckbox/> is there. Category and default value is configurable.




1. .rimignore
Now you can filter files you upload to Steam, similar to .gitignore.

Add default .rimignore file to your mod with a single click.


2. mod size is now shown before upload




3. All dev flags are now saved with the game
Like "god mode", "unlimited power", all draw flags, etc etc.
Only if dev mode is on.




4. Add translucent debug log overlay
toggled by "ยง" key, totally configurable.




5. Hediff severity +/- buttons
standard ctrl/shift modifier keys are honored





Links:

License: MIT