GlobalCompany - Utils - i3dLoader (Scripter)
Um den i3dLoader handelt es sich um eine Hilfsklasse, die beispielsweise ermöglicht, Materialen zu laden oder ein i3dMapping durchzuführen.
GlobalCompany - Utils - i3dLoader - i3dMapping
Wenn eine i3d geladen werden soll, die verschiedene Objekte beinhaltet und man diese benötigt für eine weitere Verarbeitung, kann das i3dMapping benützt werden. Das ist das selbe, wie bei den Vehicle-XMLs.

In einer XML-Datei wird es wie folgt deklariert:

<i3dMappings>
    <i3dMapping id="pineDist1" node="0" />
    <i3dMapping id="pineDist2" node="1" />
    <i3dMapping id="pineDist3" node="2" />
    <i3dMapping id="pineDist4" node="3" />
    <i3dMapping id="pineDist5" node="4" />
    <i3dMapping id="pineDist6" node="5" />
    <i3dMapping id="spruceDist1" node="6" />
    <i3dMapping id="spruceDist2" node="7" />
    <i3dMapping id="spruceDist3" node="8" />
    <i3dMapping id="spruceDist4" node="9" />
    <i3dMapping id="spruceDist5" node="10" />
    <i3dMapping id="birchTrunk" node="12" />
    <i3dMapping id="birchBranch" node="11" />
    <i3dMapping id="birchDist1" node="13" />
    <i3dMapping id="birchDist2" node="14" />
    <i3dMapping id="birchDist3" node="15" />
    <i3dMapping id="birchDist4" node="16" />
    <i3dMapping id="birchDist5" node="17" />
</i3dMappings>


# Attributename Datentyp Wert Bemerkung
1 id string Bezeichnung, auf die später zurückgegriffen wird. -
2 node string Index in der i3d -


Erstellung i3dMapping

Der XML-Text kann im GE mittels eines Scriptes automatisch erstellt werden.


Im Script lädt man mit dieser Zeile die Daten:

    local i3dMappings = g_company.i3dLoader:loadI3dMapping(xmlFile, xmlKey);


# Argumentname Datentyp Wert Bemerkung
1 xmlFile xmlFile Referenz auf die XML-Datei -
2 xmlKey string XML Schlüssel, dieser auf i3dMappings verweist -


Als Rückgabewert erhält man eine table. Der key ist die id, value der Index (node).
GlobalCompany - Utils - i3dLoader - loadMaterials
Soll eine i3d als Materialholder verwendet werden, so kann man mit dieser Funktion die Materials automatisch laden lassen.

In einer XML-Datei wird es wie folgt deklariert:

<i3dLoader>
    <value name="dist1" index="pineDist1" materialIndex="0" />
    <value name="dist2" index="pineDist2" materialIndex="0" />
    <value name="dist3" index="pineDist3" materialIndex="0" />
    <value name="dist4" index="pineDist4" materialIndex="0" />
    <value name="dist5" index="pineDist5" materialIndex="0" />
    <value name="dist6" index="pineDist6" materialIndex="0" />
</i3dLoader>


# Attributename Datentyp Wert Bemerkung
1 name string Eindeutiger Name, unter dem man später das Material abfragen kann. -
2 index string Entweder den direkten Index oder wenn i3dMapping benützt wird, muss hier die demendsprechende id stehen. Es wird automatisch erkannt, ob i3dMapping benützt werden soll, oder nicht.
3 materialIndex int Index zum Material. -


In einer XML-Datei wird es wie folgt deklariert:

g_company.i3dLoader:loadMaterials(i3dPath, dir, xmlFile, xmlKey, i3dMappings);
# Argumentname Datentyp Wert Bemerkung
1 i3dPath string Pfad zur i3d-Datei -
2 dir string baseDir -
3 xmlFile xmlFile Referenz auf die XML-Datei -
4 xmlKey string XML Schlüssel, dieser auf i3dLoader verweist -
5 i3dMappings table i3dMappings können hier mitübergeben werden, wenn diese benützt werden sollen. optional


Als Rückgabewert erhält man eine table. Der key ist der Name, value das Material.