NQualityOfLife.XML.Invoke - Niilo007/RimWorld-NQoL GitHub Wiki

Invoke

Related:


XML

<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>

Usage

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.


Parameter Formatting

Float

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>

Int

The parameter must not contain decimals to be parsed as an int.

<parameters>
    <li>5</li>
    <li>500</li> 
</parameters>

Double

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>

String

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>

Char

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>

Bool

<parameters>
    <li>true</li>
    <li>True</li>
    <li>false</li>
    <li>False</li>
</parameters>

Errors


Examples

Used In Example:

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>

Used In Example:

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>

Used In Example:

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>

Used In Example:

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>

Used In Example:

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>

Used In Example:

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>

Used In Example:

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>

Used In Example:

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>

⚠️ **GitHub.com Fallback** ⚠️