NQualityOfLife.XML.Invoke - Niilo007/RimWorld-NQoL GitHub Wiki
- Utils.Reflection_
- Utils.Reflection_.Invoker
- Utils.Reflection_.Invoker.Invoke_Method
- Utils.Reflection_.ComparisonHelper
- Vars
<Operation Class="NQualityOfLife.XML.Invoke">
<type>string</type>
<propertyGet>string</propertyGet>
<method>string</method>
<toVar>string</toVar> <!-- Optional -->
<parameters>
<li>string</li>
</parameters>
<done Class="PatchOperation"> <!-- Optional -->
</done>
<error Class="PatchOperation"> <!-- Optional -->
</error>
</Operation>
Currently allows invoking methods or property getters that do not take any input parameters.
If the invoked method or property has a return type other than void, and toVar
is given; the result will be converted to string and stored in toVar
If namespace is not specified, will default to Verse.
The parameter must end with f
or F
or contain .
to be parsed as a float
.
<parameters>
<li>0.5f</li>
<li>0.5F</li>
<li>0.5</li>
<li>500f</li>
<li>0f</li>
<li>500.0</li>
</parameters>
The parameter must not contain decimals to be parsed as an int
.
<parameters>
<li>5</li>
<li>500</li>
</parameters>
The parameter must end with d
or D
to be parsed as a double
.
<parameters>
<li>0.5d</li>
<li>0.5D</li>
<li>5000D</li>
<li>5000d</li>
</parameters>
The parameter must begin and end with "
to be parsed as a string
.
<parameters>
<li>"500"</li>
<li>"ABC"</li>
<li>"abc"</li>
<li>"0.5d"</li>
<li>"True"</li>
<li>"false"</li>
</parameters>
The parameter must begin and end with '
to be parsed as a char
.
<parameters>
<li>'A'</li>
<li>'b'</li>
<li>'c'</li>
<li>'5'</li>
<li>','</li>
<li>'.'</li>
</parameters>
<parameters>
<li>true</li>
<li>True</li>
<li>false</li>
<li>False</li>
</parameters>
- Invoke
- Verse.Log.Message
The below code will print the following message to the log -> 'Hello World!
'
<Operation Class="NQualityOfLife.XML.Invoke">
<type>Log</type>
<method>Message</method>
<parameters>
<li>"Hello World!"</li>
</parameters>
</Operation>
The below code will print the following message to the log -> 'NQoL - 0.6445323
'
<Operation Class="NQualityOfLife.XML.Invoke">
<type>Rand</type>
<propertyGet>Value</propertyGet>
<toVar>{Test}</toVar>
</Operation>
<Operation Class="NQualityOfLife.XML.Log">
<text>{Test}</text>
</Operation>
<Operation Class="NQualityOfLife.XML.ClearVariable">
<name>{Test}</name>
</Operation>
<Operation Class="NQualityOfLife.XML.Invoke">
<type>Rand</type>
<propertyGet>Value</propertyGet>
<toVar>{Test}</toVar>
<done Class="NQualityOfLife.XML.Log">
<text>{Test}</text>
<done Class="NQualityOfLife.XML.ClearVariable">
<name>{Test}</name>
</done>
</done>
</Operation>
The below code will print the following message to the log -> 'NQoL - 0.420460540899183
'
<Operation Class="NQualityOfLife.XML.Invoke">
<type>NQualityOfLife.Utils.Rand</type>
<propertyGet>Value</propertyGet>
<toVar>{Test}</toVar>
<done Class="NQualityOfLife.XML.Log">
<text>{Test}</text>
<done Class="NQualityOfLife.XML.ClearVariable">
<name>{Test}</name>
</done>
</done>
</Operation>
The below code will print one of the following message to the log -> 'NQoL - True
' or 'NQoL - False
'
<Operation Class="NQualityOfLife.XML.Invoke">
<type>NQualityOfLife.Utils.Rand</type>
<method>Chance</method>
<parameters>
<li>0.5f</li>
</parameters>
<toVar>{Test}</toVar>
<done Class="NQualityOfLife.XML.Log">
<text>{Test}</text>
<done Class="NQualityOfLife.XML.ClearVariable">
<name>{Test}</name>
</done>
</done>
</Operation>
The below code will print the following message to the log -> 'NQoL - .Testing.
'
<Operation Class="NQualityOfLife.XML.Invoke">
<type>NQualityOfLife.Utils.Common</type>
<method>SubstringInsideOf_Inclusive</method>
<parameters>
<li>"Invoke.Testing.Call"</li>
<li>'.'</li>
<li>'.'</li>
</parameters>
<toVar>{Test}</toVar>
<done Class="NQualityOfLife.XML.Log">
<text>{Test}</text>
<done Class="NQualityOfLife.XML.ClearVariable">
<name>{Test}</name>
</done>
</done>
</Operation>
The below code will print the following message to the log -> 'NQoL - Testing
'
<Operation Class="NQualityOfLife.XML.Invoke">
<type>NQualityOfLife.Utils.Common</type>
<method>SubstringInsideOf_Exclusive</method>
<parameters>
<li>"Invoke.Testing.Call"</li>
<li>'.'</li>
<li>'.'</li>
</parameters>
<toVar>{Test}</toVar>
<done Class="NQualityOfLife.XML.Log">
<text>{Test}</text>
<done Class="NQualityOfLife.XML.ClearVariable">
<name>{Test}</name>
</done>
</done>
</Operation>
The below code will print the following messages to the log -> 'NQoL - Testing
' -> 'NQoL - T
'
<Operation Class="NQualityOfLife.XML.Invoke">
<type>NQualityOfLife.Utils.Common</type>
<method>SubstringInsideOf_Exclusive</method>
<parameters>
<li>"Invoke.Testing.Call"</li>
<li>'.'</li>
<li>'.'</li>
</parameters>
<toVar>{Test}</toVar>
<done Class="NQualityOfLife.XML.Log">
<text>{Test}</text>
<done Class="NQualityOfLife.XML.Invoke">
<type>NQualityOfLife.Utils.Common</type>
<method>FirstSymbol</method>
<parameters>
<li>"{Test}"</li>
</parameters>
<toVar>{Test_Char}</toVar>
<done Class="NQualityOfLife.XML.Log">
<text>{Test_Char}</text>
<done Class="NQualityOfLife.XML.ClearVariable">
<names>
<li>{Test}</li>
<li>{Test_Char}</li>
</names>
</done>
</done>
</done>
</done>
</Operation>
- Invoke
- Log
- ClearVariable
- Common.SubstringAfter
- System.DateTime.Now
The below code will print the following message to the log -> 'NQoL - XML Patches Start: 10:36:42 PM
'
<Operation Class="NQualityOfLife.XML.Invoke">
<type>System.DateTime</type>
<propertyGet>Now</propertyGet>
<toVar>{now}</toVar>
<done Class="NQualityOfLife.XML.Invoke">
<type>NQualityOfLife.Utils.Common</type>
<method>SubstringAfter</method>
<toVar>{nowSub}</toVar>
<parameters>
<li>"{now}"</li>
<li>' '</li>
</parameters>
<done Class="NQualityOfLife.XML.Log">
<text>XML Patches Start: {nowSub}</text>
<done Class="NQualityOfLife.XML.ClearVariable">
<name>{nowSub}</name>
</done>
</done>
<error Class="NQualityOfLife.XML.Log">
<warning>Failed to get: 'SubstringAfter'!</warning>
</error>
</done>
<error Class="NQualityOfLife.XML.Log">
<warning>Failed to get: 'System.DateTime:Now'!</warning>
</error>
</Operation>
<Operation Class="NQualityOfLife.XML.ClearVariable">
<name>{now}</name>
</Operation>