Template:Code Reference

From Caves of Qud Wiki
Revision as of 17:54, 21 October 2020 by Sol (talk | contribs) (add whitespace to increase code readability)
Jump to navigation Jump to search

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 Notes
assembly No Assembly-CSharp.dll This is currently unused, but ought to be specified anyway if the relevant code is not in the default assembly.
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{{#if : |, in the {{{case}}} case}}
  4. Fake.Namespace.FakeClass, method FakeMethod(GameObject, GameObject){{#if : |, in the {{{case}}} case}}
  5. Fake.Namespace.FakeClass, method FakeMethod(GameObject, GameObject){{#if : "Foo" |, in the "Foo" case}}