source: Revenant/configuration/geoworld/mindb.schema@ 71dea59

Last change on this file since 71dea59 was 4158989, checked in by Jonathan Neufeld <support@…>, 5 years ago

Port of old Mars Tycoon mineral database

  • Property mode set to 100644
File size: 6.9 KB
Line 
1# A distribution defines the shape or shapes that will be synthesized for the resulting mineral deposit
2dname := "cluster" | "vein" | "mound" | "dike" | "sill" | "laccolith"
3distribtype := !dname | { type : !dname, frequency : 0-5 }
4distribdef := !distribtype | [ !distribtype 1, !distribtype 2, ... , !distribtype N ]
5
6# A distribution reference is used in mineral references, it excludes the frequency stuff. It can be used to reference one or many shape types
7distribref := !dname | [ !dname 1, !dname 2, ... , !dname N ]
8
9# A mineral reference is used to specify a mineral that another mineral ought to be associated with and can be discriminated based upon the shape of the other deposit. The association frequency can also be defined here.
10# Additionally, this may be a reference to a class of minerals, in which case it will resolve to a set of minerals that have the same class. If a mineral having the same name as a class is encountered, the mineral is chosen instead of the class.
11mineralref := { mineral : <mineral name> | <class name>, distribution : !distribref, frequency : 0-5 } | <mineral name> | <class name>
12
13# An environment specification defines a top-level (independent, does not depend on any other meta-data, lays the foundation of the ore genesis process)
14# classification for certain types of minerals. The engine shall begin by iterating through all the classes and synthesizing minerals that correspond to
15# them. The classification contains these factors: composition, crystal size, heat and pressure. The former two apply exclusively to igneous rocks and the latter two exclusively to metamorphic rocks. The motivation for this definition type comes from the useful nature of this all-inclusive chart of igneous rock types ([http://en.wikipedia.org/wiki/File:Mineralogy_igneous_rocks_EN.svg Mineralogy Igneous Rocks]) and of metamorphic facies ([http://en.wikipedia.org/wiki/Template:Metamorphic_facies_to_click Metamorphic Facies Diagram]).
16envirospec := {
17 class: <name>,
18
19 # Type of classification, either sedimentary or igneous.
20 # Metamorphism is implied depending on the temperature/pressure settings in the dispositions that follow
21 # Type should be ommitted for a metamorphic class whose protoliths can be either igneous or sedimentary
22 type: "sedimentary" | "igneous"
23
24 # Multiple dispositions allow for the irregular shapes in the aforementioned graphs.
25 dispositions:
26 - silica: ("ultra-mafic" | "mafic" | "intermediate" | "inter-felsic" | "felsic") | 0-5
27
28 # Origin states either the depth or origin of a type of rock. The first three are obvious, but
29 # the last one is special because meteorites are likely abundant on Mars and introduce a unique set of minerals
30 # Does not apply to sedimentary type rocks.
31 origin: ("volcanic" | "subvolcanic" | "plutonic" | "meteoritic")
32
33 # Pressure of metamorphism, 0 is 0 kbar and 5 is 20 kbar. Applies also to sedimentary rocks as "overburden", mere lithification is between 0-1
34 pressure: 0-5
35
36 # Temperature of metamorphism, 0 is 0°C and 5 is 1000°C. Applies also to sedimentary rocks, mere lithification is between 0-1
37 temperature: 0-5
38
39 # Grain size of sedimentary rocks, evaporite being smallest because it is dissolved and doesn't "settle" unless the aqueous solution becomes over-saturated.
40 # In the future, this will be related to pressure as opposed to marine depth as there is one proposed uniquely Martian process whereby if the atmosphere was
41 # thicker in the Noachian, and if its atmospheric pressure fluctuated as it does today, then wind itself would erode and transport and by its increase in pressure
42 # would lithify sediment as well.
43 # Does not apply to igneous type rocks
44 sediment: SET("gravel" | "sand" | "sandy-silt" | "silt" | "silty-clay" | "clay" | "evaporite")
45
46 # Describes the classification's degree of chemical alteration (weathering). In genesis, this will correspond with wet and warm climates and with significantly high or low pH aqueous solutions.
47 weathered: 0-5
48}
49
50# A mineral definition is a mineral definition was. Multiple ''genesis'' objects are iterated through by the engine to generate the same mineral in more than one way or place.
51gendef :=
52
53 # Signifies minerals this mineral can occur within or around (must select at least one)
54 - association: !minref | [ !minref 1, !minref 2, ... , !minref N ]
55
56 # Specify a list of mineral classes to denote a conditions. The list is AND'ed together
57 environment: <class name> | [ <class name> 1, <class name> 2, ... , <class name> N ]
58
59 # Specifies the host mineral where this mineral shall always occur within (never around or outside, always within)
60 host: !minref
61
62 # Relevant only when the genesis is metamorphic, refers to the precursor lithology of this metamorphic rock, the list of precursor minerals before metamorphism occurred
63 protolith: !minref | [ !minref 1, !minref 2, ... , !minref N ]
64
65 # Specifies the type of metamorphism that occurred: "contact" for plutonic intrusions, "shock" for impact craters, "dynamic" for flexing, "regional" for orogenic stress (not on Mars)
66 metamorphism: "contact" | "hydrothermal" | "shock" | "dynamic" | "regional"
67
68 distribution : !distribdef
69
70 # Approximate logarithmic abundance of the feature
71 abundance: 0-5
72
73 # Approximate logarithmic size of the feature
74 size: 0-5
75
76 environment: <enviro name> | [ <enviro name>1, <enviro name>2, ... , <enviro name>N ]
77 - ...
78
79mindef := {
80 mineral: <name>
81
82 # Denote that this mineral is actually a rock that acts as filler for spatial zones that don't have anything generated in them.
83 # It's essentially "backdrop" for everything else. Of course the same thing can be accomplished by specifying a genesis definition
84 # with exactly one environment spec being the class name. But if its at the base level here then it's a hint to the engine that
85 # this mineral will typically occupy large areas and so it could be a performance enhancement.
86 class: <class definition name>
87
88 # Melting point and boiling point supercede anything infered from critical point, triple point, or sublimation point
89 melting_point: <kelvin>
90 boiling_point: <kelvin>
91
92 triple_point: [ <kelvin>, <atm> ]
93 critical_point: [ <kelvin>, <atm> ]
94 sublimation_point: [ <kelvin>, <atm> ]
95
96 # Globally define the shape of the object, defaults inherited for all genesis entries
97 deposit: {
98 distribution : !distribdef,
99 abundance: 0-5,
100 size: 0-5
101 }
102 genesis: !gendef
103}
104
105mingrpdef := <mineral name> | !mindef
106
107# Specify a logical grouping of minerals that can be referenced from "host", "association", and/or "protolith"
108# Any explicit entries in a given list of minerals supercedes the same mineral that occurs in a group also referenced in the list
109# Minerals may only be references to other minerals, i.e. references to classes and other groups are illegal.
110groupdef := {
111 group: <name>
112 members: [ !mingrpdef 1, !mingrpdef 2, ..., !mingrpdef N ]
113}
Note: See TracBrowser for help on using the repository browser.