Extension:OreDict

The OreDict extension mimics the Minecraft Forge OreDictionary using tag names, mod abbreviations, and item names. This is extension uses a lot of the features from the Tilesheets extension, making them go hand-in-hand.

Setup: Template:G/Cell
This extension, with Tilesheets, requires a template called  for the logic of rendering OreDict entries as grid icons. The arguments passed to the parser function will be passed on to the template, along with the default grid parameters of the entry, the tag name (parameter name "ore-dict-name"), mod name ("mod"). The item name will also be passed to the template, as the first numbered parameter. For example: If you call, with an entry at   (see ImportOreDict), this will in turn call.

For an example of how to set up, see:
 * Template:G/Cell on FTB (and its Grid module)
 * Template:G/O on FTB (used as a template interface into the #dict parser function) (and its OreDict module)

#dict
The  parser function displays all tiles (from the Tilesheets extension) registered to the specified OreDict tag.

Parameters

 * 1: The tag or item name to select by.
 * tag: Set to specify that it is being selected by tag name.
 * If this is not set, it will search for entries whose name — not tag — matches the first parameter. It will display multiple OreDict entries that match the same item and mod pairs but have different tag names.


 * mod: Set to a mod abbreviation to include only entries in this mod.
 * no-fallback: Set to prevent the fallback icon from showing for missing OreDict entries. This does not suppress OreDict entries from showing error tiles entirely. For example, calling  with ingotIron and this option set when there is no registered ingotIron OreDict entry would return nothing. However, if there was an entry at ingotIron pointing to Iron Ingot from V, but that tile itself did not exist, it would return the error icon.

Any other parameters will be passed directly to the  template through the OreDictOutput hook in the Tilesheets extension.

#grid_foreach
The  parser function displays the same output as , except for many different OreDict entries. The parameters are all the same, except they are separated by  instead of , while   separates each entry. For example,  would output the   output for   followed by the output for.

The  also takes "global parameters", in order to reduce duplicate parameters. These are passed using arrow keysets,, separated by pipes. With the previous example, it could be shortened by writing, because all of the entries used "V" as the mod.

ImportOreDict
The ImportOreDict special page is used to import OreDict entries in bulk. Each parameter is separated by a, and each entry is separated by a newline. There are five parameters for each entry, two of which can be left blank.

An example import line is:.

OreDictEntryManager
OreDictEntryManager is used to edit a single OreDict entry's values, create a single OreDict entry, or delete an entry, with an intuitive graphic user interface.

The initial special page only has a single search field and two buttons: Go and Create new entry. Go will find the entry at the ID that you have defined in the search field, and take you to its modification page. This field only takes integer values. Create new entry will redirect you to the entry creation page.

Entry creation
On this page, there are 5 new fields. Many of these are associated with various entry flag values.

Entry modification
This has all of the same parameters as the creation page, though its tag name is locked at the given ID's tag name, and its values are defaulted to the ones provided by that ID.

OreDictList
This lists all OreDict entries on a given wiki. It can be searched with entry IDs, prefixes, tag names, mod names, and the amount shown per page can be changed. It displays the entry in a table, with the ID, the tag name, item name, mod name, and default grid parameters. There is also an edit button that will take you to the entry manager modification page for that given entry.

API
The OreDict extensions provides MediaWiki API action modules for interacting with the extension. The parameters are prefixed with od.

action=neworedict
Creates a new OreDict entry.

Parameters

 * mod (String): (Required) The mod abbreviation for the new entry.
 * tag (String): (Required) The tag name for the new entry.
 * item (String): (Required) The item name for the new entry.
 * params (String): (Optional) The grid parameters for the new entry.
 * token (csrf)

Returns

 * edit
 * neworedict
 * result: New entry's ID

Possible errors

 * permissiondenied: User does not have editoredict permission.
 * entryexists: The entry for item, tag, and mod already exists.

action=deleteoredict
Deletes an OreDict entry from the table by its ID.

Parameters

 * ids (Integer, separate with "|", minimum value is "1"): (Required) A list of entry IDs to delete.
 * token (csrf)

Returns

 * edit
 * deleteoredict
 * entry ID => deletion success (boolean)
 * entry ID => deletion success (boolean)

Possible errors

 * permissiondenied: User does not have the editoredict permission.

action=editoredict
Updates the mod, tag, name, and/or params for a given entry.

Parameters

 * mod (String): (Optional) The new mod abbreviation for the entry.
 * tag (String): (Optional) The new tag name for the entry.
 * item (String): (Optional) The new item name for the entry.
 * params (String): (Optional) The new grid parameters for the entry.
 * id (Integer, minimum value is "1"): (Required) The entry ID, to determine which entry to update.
 * token (csrf)

Returns

 * edit
 * editoredict
 * entry ID => true

Possible errors

 * dbfail: Failed to edit the ID in the database.
 * nodiff: There was no change made for the entry.
 * entrynotexists: There is no entry for the provided ID.
 * permissiondenied: User does not have the editoredict permission.

action=query&prop=oredictentry
Get OreDict entry data.

Parameters

 * ids (Integer, separate with "|", minimum value is "1"): (Required) The IDs for the entries to obtain information for.

Returns

 * query
 * oredictentries
 * entry ID
 * tag_name => The tag name for this ID
 * mod_name => The mod name for this ID
 * item_name => The item name for this ID
 * grid_params => The grid parameters for this ID
 * id => The entry ID

Possible errors
There are no errors for this module.

action=query&list=oredictsearch
Searches for OreDict entries that meet specific criteria defined by the optional parameters.

Parameters

 * limit (Limit, minimum value is "1", maximum for users is "500", maximum for bots is "5000"): (Defaults to 10) The maximum number of entries to list.
 * prefix (String): ''(Defaults to "") Restricts results to those that have a tag alphabetically after the prefix.
 * mod (String): ''(Defaults to "") Restricts results to this mod.
 * tag (String): ''(Defaults to "") Restricts results to this tag name.
 * name (String): ''(Defaults to "") Restricts results to this item name.
 * from (Integer, minimum value is "0"): ''(Defaults to "0") The entry ID to start listing at.

Returns

 * query
 * totalhits => The number of entries returned
 * oredictentries
 * tag_name => The tag name for this ID
 * mod_name => The mod name for this ID
 * item_name => The item name for this ID
 * grid_params => The grid parameters for this ID
 * id => The entry ID

Possible errors
There are no errors for this module.