Template:Code Reference: Difference between revisions

From Caves of Qud Wiki
Jump to navigation Jump to search
m (replace error category with Template:Template Error)
(add case parameter)
Line 9: Line 9:
| <code>class</code> || Yes || None – This must be specified or else the template will error.
| <code>class</code> || Yes || None – This must be specified or else the template will error.
|-
|-
| <code>method</code> || No || None – If omitted, a method name will not be included in the reference.
| <code>method</code> || No || None – If provided, a method name will be included in the reference.
|-
| <code>case</code> || No || None – If both this and <code>method</code> are provided, the context will be further narrowed down to a specific conditional case in the given method.
|}
|}


Line 56: Line 58:
}}
}}


[[Category:Templates]]</noinclude><includeonly>{{#if:{{{class|}}}|{{#tag:ref|<code>{{{namespace|XRL.World.Parts}}}.{{{class}}}{{#if:{{{method|}}}|, method {{{method}}}}}</code>}}|{{Template Error}}}}</includeonly>
If it's necessary to be even ''more'' specific for a particularly large method (such as a <code>FireEvent</code> method), you may use the <code>case</code> parameter:
 
<pre><nowiki>{{Code Reference
| namespace = Fake.Namespace
| class    = FakeClass
| method    = FakeMethod(GameObject, GameObject)
| case      = "Foo"
}}</nowiki></pre>{{Code Reference
| namespace = Fake.Namespace
| class    = FakeClass
| method    = FakeMethod(GameObject, GameObject)
| case      = "Foo"
}}
 
[[Category:Templates]]</noinclude><includeonly>{{#if:{{{class|}}}|{{#tag:ref|<code>{{{namespace|XRL.World.Parts}}}.{{{class}}}</code>{{#if:{{{method|}}}|, method <code>{{{method}}}</code>{{#if:{{{case|}}}|, in the <code>{{{case}}}</code> case}}}}}}|{{Template Error}}}}</includeonly>

Revision as of 00:41, 27 August 2020

Use this template instead of a <ref> tag if you are citing a class from the game's C# assemblies, such as Assembly-CSharp.dll. This is useful for cohesively formatting all such code references.

Template Parameter Required? Default Value
namespace No XRL.World.Parts
class Yes None – This must be specified or else the template will error.
method No None – If provided, a method name will be included in the reference.
case No None – If both this and method are provided, the context will be further narrowed down to a specific conditional case in the given method.

Usage Examples

Use the following form if you need to reference a part definition:

{{Code Reference
| class = FakePart
}}

[1]

Use the following form if you need to reference a class in a different namespace from XRL.World.Parts:

{{Code Reference
| namespace = Fake.Namespace
| class     = FakeClass
}}

[2]

In some cases, it may be useful to additionally specify which method the logic in question occurs in. In that case, use the following form:

{{Code Reference
| namespace = Fake.Namespace
| class     = FakeClass
| method    = FakeMethod
}}

[3]

If there are multiple method definitions with the same name, or it otherwise may help to be even more exact, you may append the parameter signature to the name of the method to specify an overload like so:

{{Code Reference
| namespace = Fake.Namespace
| class     = FakeClass
| method    = FakeMethod(GameObject, GameObject)
}}

[4]

If it's necessary to be even more specific for a particularly large method (such as a FireEvent method), you may use the case parameter:

{{Code Reference
| namespace = Fake.Namespace
| class     = FakeClass
| method    = FakeMethod(GameObject, GameObject)
| case      = "Foo"
}}

[5]

  1. XRL.World.Parts.FakePart
  2. Fake.Namespace.FakeClass
  3. Fake.Namespace.FakeClass, method FakeMethod
  4. Fake.Namespace.FakeClass, method FakeMethod(GameObject, GameObject)
  5. Fake.Namespace.FakeClass, method FakeMethod(GameObject, GameObject), in the "Foo" case