Skip to content
lawremi edited this page Aug 20, 2013 · 26 revisions

This page contains notes and ideas related to the design of Custom Ore Generation.

Dimension tag

A <Dimension> tag could limit a distribution to a given dimension, like <Biome> does for biomes. This would require either an id, name, isSurface, or symbol attribute. If a <Dimension> tag is not specified, then wildcard is assumed. Note that the wildcard means every world, including Mystcraft dimensions, which might be undesirable. To support different settings depending on the dimension, this could have <Setting> elements as its children. This is probably simpler in many cases to using inheritance.

Mystcraft integration

The original COG supported the original Mystcraft design, where symbols were added in some quantity to a book, and distributions were sensitive to the symbol count, through expressions. Now that Mystcraft books are written according to a grammar, with modifier symbols, etc, it has become more complicated.

We would need the following:

  • A <MystcraftSymbolModifier> element that defines a modifier symbol, with child <Setting> elements with expressions that transform the _default_ value,
  • A <MystcraftSymbol> element with instability (as before), rarity, and a list of modifier element references that apply to the symbol,
  • Each distribution would have one or more references to symbols that generate the distribution.

Adjacency-based Replacement

Extend <Replaces> to add the attributes above, below, north, south, west and east. They will be block descriptors that restrict on the type of block one space over in the given direction. This would allow things like placing a block on a surface (e.g., rock below, air above), or ensuring that an ore deposit is hidden in stone.

Block sets

Like the biome sets, except define a set of block descriptors. The <BlockSet> elements could be referenced from distributions using <ReplaceSet> and <OreBlockSet>.

Clone this wiki locally