openclonk/docs/sdk/definition/cnat.xml

50 lines
1.8 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE doc
SYSTEM '../../clonk.dtd'>
<?xml-stylesheet type="text/xsl" href="../../clonk.xsl"?>
<doc>
<title>CNAT - Contact Attachment</title>
<h>CNAT - Contact Attachment</h>
<text>In multiple places the engine uses ContactAttachment values (a bitmask) to manage the orientation of objects and processes. For example, a vertex of an object can have the <code id="CNAT">CNAT</code> bit <em>left</em>. If that object has <emlink href="definition/defcore.html">ContactCalls</emlink> activated, the engine calls on every contact of that vertex with the landscape the object script function <em>ContactLeft</em>. CNAT values are composed of the following bits:</text>
<text>
<table>
<rowh>
<col>CNAT</col>
<col>Description</col>
</rowh>
<row>
<col>CNAT_Left</col>
<col>Direction: Left</col>
</row>
<row>
<col>CNAT_Right</col>
<col>Direction: Right</col>
</row>
<row>
<col>CNAT_Top</col>
<col>Direction: Up</col>
</row>
<row>
<col>CNAT_Bottom</col>
<col>Direction: Down</col>
</row>
<row>
<col>CNAT_Center</col>
<col>Direction: Center (not for attachment)</col>
</row>
<row>
<col>CNAT_MultiAttach</col>
<col>Special flag: new attachment behaviour for objects with the same direction value at several vertices.</col>
</row>
<row>
<col>CNAT_NoCollision</col>
<col>Extra flag: non-colliding vertex</col>
</row>
<bitmask>CNAT</bitmask>
</table>
</text>
<text>A vertex can have multiple CNAT values, they can be combined them with the | operator. Example:</text>
<code>Attach = CNAT_Bottom | CNAT_Left</code>
<author>Newton</author><date>2013-11</date>
</doc>