%YAML 1.2
# Mineral Deposit Synthesizer Configuration File
# Copyright � 2011 Jonathan Neufeld
#
# This file describes how minerals are generated in the world
# Legend:
# - Plaxel: A unit of measurement used by the game's world generator.  
#           A plaxel is associated with a pixel in a DEM.  
#           One plaxel = 1 in-game world units.
# - (x, y]: Between x and y including y but not x
# - (x, y): Between x and y not including x and y
# - [x, y): Between x and y including x but not y
# - Chunk: Deposits are made-up of what are called sphere-packs, 
#			a series of contiguous balls of variable size randomly packed 
#			together in 3D-space to form a geometric boundary suitable for mineral deposits.
#			Some spherepacks resemble a cluster of grapes.
#			The definition of chunk used here is simply one of those balls in a spherepack.
# - Parabolic Factors: Some parameters are properties of parabolic functions used in the 
#			world generator.  The parabolic function is based on choosing a value that is the 
#			integral of a standard parabolic function normalized by the bounded range.
#			Look I don't even understand what my brain comes up with half the time.  It's like
#			it has a mind of its own.  I guess that would make it a fractal, 
#			something like z = z^2 + c.  That's it then, my brain is z = z^2 + c, QED.
#		   
---
strata:									# Configuration properties for the mineral boilerplate
  count: 5									# Number of vertical layers of general mineral classifications
  classes: [4, 8]							# Min/max number of mineral classifications per layer
  coarseness: 0.5							# How rough are the layers? default is 0.5, allowed range (0, 1]
  silica: [ "ultra-mafic", "felsic" ]		# Range of silica for the world, possible values (in order) are: "na", "ultra-mafic", "mafic", "intermediate", "inter-felsic", "felsic"
  thickness: 30								# The base thickness of each layer of strata (in plaxels)
  thickfactor: 0.4							# Value between (0, 1] that determines how quickly strata thickness grows from layer to layer deep
  thickscale: 80							# A scaling factor for layer thickness over and above the base.  The largest and thickest layer will be close to <thickness> + <thickscale>.
deposits:								# Configuration properties for mineral deposits
  frequency: 5								# Determines frequency of minerals, how many per 1000x1000x1000 cube of plaxels
  neighborhood: [ 50, 400 ]					# Minimum/maximum radius of plaxels in a neighborhood in the world that is sought for surrounding minerals used to determine what minerals are appropriate for such a neighborhood (i.e. mineral associations)
  abundancefactor: 0.5						# A factor between (0, 1] applied to an exponential formula used to help determine the abundance of deposits.  A small value will result in very little difference in abundances between typically rare and abundant minerals whereas a large value will result in rare minerals being virtually non-existent and abundant minerals appearing virtually everywhere.
  sizefactor: 0.9							# A factor between (0, 1] applied to an exponential formula that determines the size of deposits.  A small value will result in minerals almost the same size whereas a large value will result in minerals dramatically larger/smaller than each other.
  sizebase: 20								# Smallest allowed size for a mineral deposit
  nesting: 2								# Maximum levels of nesting allowed for mineral hosting, for example olivine hosts serpentine and serpentine hosts chrysotile.  That is two levels of nesting.  Not all minerals are hosts for other minerals and this property serves as a safety-catch for run-away infinite-loops
vein:									# Configuration properties for veins of minerals
  deviation: 1.67							# Based on the length of a vein, how crooked should it be? 1 is moderately crooked, 0 is straight and > 1 is very crooked
  detail: [2, 3]							# Minimum/maximum number of iterations of chunks to generate in a vein, more iterations make for a very random-looking vein but consumes more memory and CPU
  erraticness: 0.75							# A ratio of PI (0, 2) determining angular displacement of adjacent chunks.  A value of 0 or 2 will result in straight lines of vein chunks whereas a value of 1 will result in very erratically placed chunks.
dike:									# Configuration properties for dikes of minerals, very similar to veins except they are very vertical
  orthogonality: 0.8						# Linear factor [0, 1) determining how vertical dikes are, a value closer to 1 (but not including 1) is almost perfectly vertical whereas a value of zero is not necessarily vertical nor horizontal (identical to veins).
  deviation: 1.67							# Same as deviation for veins but for dikes
laccolith:								# Configuration properties for laccolith plutons
  tailsize: 0.5								# Relative size of the tail underneath (analogous to a teardrop) of the laccolith
chunking:								# Configuration properties for deposit chunks that make-up a single deposit
  leafsize:	2								# Smallest chunk radius (in plaxels) allowed before smaller chunks start to disappear
  smallest:	1								# Smallest allowed chunk radius size (in plaxels)
  iterations: 3								# Maximum number of chunk iterations.  Chunks are sub-divided, this is the number of times to sub-divide chunks
  initialsize: [ 40, 80 ]					# Minimum/maximum plaxel radius of largest chunks.
  branches: [ 1, 5 ]						# Minimum/maximum number of adjacent chunks a particular chunk can spawn.
