Materialdefinitionen (OCM)

In Materialdefinitionen wird Aussehen und Verhalten von Materialien festgelegt.
Sektion [Material]
Wert Datentyp Beschreibung
Name Zeichenfolge (max. 15) Name des Materials.
ColorAnimation Integer 0 or 1. Color animation.
Shape Integer Form der Oberfläche: Flat (0, flach), Octagon (achteckig), FlatTop (1, oben flach), Smoother (weicher), Smooth (2, weich) oder Rough (3, rau).
Density Integer A density of 25 and above is liquid. 50 and above is solid. BlastFree offers a parameter to only blast solid materials of a given density or lower.
Friction Integer 0-100. Reibung.
DigFree Integer 0 or 1. Determines wether the material can be dug into.
BlastFree Integer 0 or 1. Determines whether the material can be blasted away.
Blast2Object Definitions-ID Freigesprengte Objekte.
Dig2Object Definitions-ID Freigegrabene Objekte.
Dig2ObjectRatio Integer ca. 100-500. Massenverhältnis beim Freigraben.
Dig2ObjectRequest Integer 0 oder 1. Wenn 1, werden Objekte nur auf Wunsch freigegraben.
Blast2ObjectRatio Integer ca. 100-500. Massenverhältnis beim Freisprengen.
Blast2PXSRatio Integer Massenverhältnis beim Freisprengen von Kleinmaterial.
Instable Integer 0 or 1. Stability.
MaxAirSpeed Integer ca. 10-100. Fallgeschwindigkeit.
MaxSlide Integer Rutschreichweite.
WindDrift Integer Abtrieb durch Wind.
Inflammable Integer Entzündbarkeit.
Incendiary Integer This material incinerates objects. Note: For compatibility reasons, the misspelling "Incindiary" is also accepted if (and only if) no value with the correct spelling is set.
Corrode Integer Verätzung durch dieses Material.
Corrosive Integer Ätzbarkeit.
Extinguisher Integer Feuerlöschkraft.
Soil Integer Nährboden für Pflanzen.
Light Integer 0 or 1. If greater than zero, ambient light is emitted from this material even if drawn unterground.
TempConvStrength Integer Stärke der Temperaturumwandlung.
BlastShiftTo Zeichenfolge (max. 15) Materialverwandlung bei Sprengung.
InMatConvert Zeichenfolge (max. 15) In diesem Material verwandelt sich das Material...
InMatConvertTo Zeichenfolge (max. 15) ...in dieses Material...
InMatConvertDepth Integer ...wenn das Materialpixel zur angegebenen Tiefe im angegebenen Material ist.
AboveTempConvert Integer Oberhalb dieser Temperatur verwandelt sich das Material...
AboveTempConvertTo Zeichenfolge (max. 15) ...in dieses Material.
AboveTempConvertDir Integer Richtung der Umwandlung: von oben nach unten (0), von unten nach oben (1)
BelowTempConvert Integer Unterhalb dieser Temperatur verwandelt sich das Material...
BelowTempConvertTo Zeichenfolge (max. 15) ...in dieses Material.
BelowTempConvertDir Integer Richtung der Umwandlung: von oben nach unten (0), von unten nach oben (1)
Placement Integer 0-100. Dieser Wert wird für die Nachbeleuchtung der Landschaft verwendet, und wird normalerweise automatisch aus den anderen Materialwerten berechnet.
TextureOverlay Zeichenfolge (max. 15) Standardtextur für dieses Material, die vom Landschaftsgenerator zusätzlich benutzt wird.
OverlayType Integer Bit mask for texture calculation on this material. Bit 0 (1): exact (no zoom), bit 1 (2): no texture, bit 2 (4): extra large zoom
PXSGfx Zeichenfolge (max. 30) Grafik für lose Materialpixel. Die Grafik sollte als Materialtextur geladen sein.
PXSGfxRt 4 Integer Zielrechteck auf die Grafik für lose Materialpixel. Es werden weitere Phasen rechts und unterhalb der angegebenen Grafik benutzt. Die Grafik sollte immer oben links beginnen, und die gesamte Texturgröße einnehmen.
MinShapeOverlap Integer Used during map-to-landscape zooming when drawn with a texture with shape definitions: Minimum overlap of map pixels to corresponding shapes to cause a full shape expansion. See Shape textures.

Benutzerdefinierte Reaktionen

Zusätzlich zu den Standardroutinen kann jedes Material weitere Reaktionen definieren, die ausgeführt werden, wenn das Material durch lose Pixel (z.B. Regen oder Explosionsstreuung) oder Materialbewegung (z.B. beim Angraben eines Sees) auf ein anderes Material trifft:
In der .ocm-Datei: Beliebig viele Sektionen [Reaction]
Wert Datentyp Beschreibung
Type Zeichenkette Art der Reaktion, die stattfinden soll. Siehe Tabelle.
TargetSpec Zeichenkette Zielmaterial, mit dem das lose Material reagiert. Siehe Materialspezifikationen.
ScriptFunc Zeichenkette Nur für Reaktionstyp Script: Name der Scriptfunktion, die das Verhalten bestimmt.
ExecMask Integer Bitmaske, die angibt, in welcher Situation die Reaktion stattfindet. Bitindizes sind die Reaktionsereignisse. Standardwert -1 für alle Ereignisse.
Reverse Boolean Normalerweise gibt die Reaktion an, was mit losem Material der Definition, in der die Reaktion definiert ist, passiert, wenn es auf festes Material vom in TargetSpec angegebenen Typ trifft. Ist Reverse gesetzt, so wird die Definition umgekehrt.
InverseSpec Boolean Wenn wahr, wird die Reaktion für alle anderen Materialien (inklusive "Sky"), die die Bedingung in TargetSpec nicht erfüllen, verwendet.
CheckSlide Boolean Wenn wahr, wird vor dem Aufruf der Reaktion das Standardverhalten (Sprenkeln am Boden und Abrutschen nach MaxSlide) ausgeführt.
Depth Integer Nur für Reaktionstyp Convert: Tiefe im Zielmaterial, ab der Material umgewandelt wird.
ConvertMat Zeichenkette Nur für Reaktionstyp Convert: Material, in das umgewandelt wird. Bei Angabe von Sky wird das Material vernichtet.
CorrosionRate Integer Nur für Reaktionstyp Corrode: Chance darauf, dass verätzt wird.
Reaktionsereignisse
Name Wert Ereignis
MEE_PXSPos 0 Check vor jedem Bewegungsframe eines losen Materialpixels gegen das Hintergrundmaterial
MEE_PXSMove 1 Check gegen jedes Pixel, das ein loses Materialpixel in seiner Bewegung berührt
MEE_MassMove 2 Bei größeren Materialbewegungen (z.B. angegrabener See):Check des bewegten Materials gegen das Material, über das es sich bewegt
Reaktionstypen
Name Verhalten
Script Für jedes Aufeinandertreffen wird die in ScriptFunc angegebene Scriptfunktion aufgerufen.
Convert Das Material wird in ein anderes umgewandelt. Vergleichbar mit dem Verhalten von Schnee in Wasser.
Poof Sowohl das lose als auch das feste Material werden entfernt. Außerdem werden wird mit Chance 1:3 eine kleine Rauchwolke erzeugt und mit Chance 1:3 der Sound "Pshshsh" abgespielt. Vergleichbar mit dem Verhalten von Wasser in Lava.
Corrode Das lose Material ätzt das Zielmaterial mit Chance CorrosionRate weg und entfernt sich dabei selber. Wenn geätzt wird, wird mit Chance 1:5 eine kleine Rauchwolke erzeugt und mit Chance 1:20 der Sound "Corrode" abgespielt. Vergleichbar mit dem Verhalten von Säure auf Erde.
Insert Das lose Material wird als festes Material eingefügt. Vergleichbar mit dem Verhalten aller Materialien, wenn sie auf ein Material gleicher oder höherer Dichte treffen.
Materialspezifikationen
Name Materialien
Materialname Entsprcht die Spezifikation direkt dem Namen eines anderen Materials, wird dieses benutzt.
All Alle Materialien inklusive "Sky"
Solid Alle festen Materialien
SemiSolid Alle festen und flüssigen Materialien
Background Alle Hintergrundmaterialien, inklusive "Sky"
Himmel Das Hintergrundmaterial.
Incendiary All materials that can incinerate objects. Note: For compatibility reasons, the misspelling "Incindiary" is also accepted.
Extinguisher Alle feuerlöschenden Materialien.
Inflammable Alle entzündbaren Materialien.
Corrosive Alle verätzbaren Materialien.
Corrode Alle ätzenden Materialien.

Reaktionstyp 'Script'

Mit dieser sehr rechenintensiven Methode kann das Materialveralten frei bestimmt werden. Die Scriptfunktion sollte global deklariert haben und folgende Parameter besitzen:
Parameternummer(n) Name(n) Datentyp Beschreibung
1,2 x, y Integer Position des losen Materials. Die Parameter können verändert werden, um das Materialpixel zu verschieben.
3,4 landscape_x, landscape_y Integer Position in der Landschaft, auf die das Material trifft.
5,6 xdir, ydir Integer Geschwindigkeit (in 1/100px) der Bewegung des Materials. Kann geändert werden, um die Geschwindigkeit des Materialpixels zu beeinflussen. Nicht für MassMover.
7 pxs_material Integer Materialnummer des losen Materials. Nützlich, wenn die gleiche Funktion für Reaktionen mehrerer Materialen verwendet wird
8 landscape_material Integer Materialnummer des festen Materials.
9 event Integer Siehe Reaktionsereignisse.
Der Rückgabewert der Funktion sollte entweder 1 für Entfernen oder 0 für Erhalten des losen Materials sein.
Sven2, 2015-10