Template:Code Reference

From Caves of Qud Wiki
Jump to: navigation, 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.
property No (None) If provided, a property name will be included in the reference. This parameter cannot be used in combination with method.
comment No (None) A freeform natural-language addendum that further clarifies or explains the reference.
name No (None) If this is present, the citation will be named so that it can be referred to again later by the same name with <ref name="the-name-you-chose" />

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]

In other cases, it may be useful to specify a property (instead of a method). In that case, use the following form:

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

[6]

  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
  6. Fake.Namespace.FakeClass, property FakeProperty