-
Notifications
You must be signed in to change notification settings - Fork 27
XML Configuration
All of the content in Armok Vision is set by a set of XML and TXT files found under Armok Vision_Data\StreamingAssets
Each XML file contains one type of configuration, set by the root XML element, while each TXT file acts as an index for which XML files to load.
Armok Vision starts with Armok Vision_Data\StreamingAssets\index.txt
, and loads the file referenced on each line. This is an example of what it can look like:
#This is a comment line, and is skipped.
#Testfolder/index.txt
Colors/index.txt
MaterialTextures/index.txt
TileTextures/index.txt
TileMeshes/index.txt
BuildingMeshes/index.txt
This will start with Colors/index.txt
and read through it in the same fashion.
Eventually, it will reach an XML file, which can look something like this:
<?xml version="1.0"?>
<colors>
<color red="128" green="128" blue="128">
<material token="NONE" />
<subObject red="80" green="220" blue="80">
<tiletype token="BRANCH:*:*:*:*" />
<tiletype token="TWIG:*:*:*:*" />
<tiletype token="SHRUB:*:*:*:*" />
<tiletype token="SAPLING:*:*:*:*" />
</subObject>
</color>
<color red="79" green="205" blue="88">
<material token="GLASS_GREEN" />
</color>
</colors>
The first tag, <colors>
, indicates that this file is defining colors, mostly for materials, though they can be defined for anything, really.
These are all the currently valid root tags:
Tag | Description | Wiki Page |
---|---|---|
buildingMeshes |
This defines the model files to use for any constructed building. You can also define any textures used per-building in the same file. | MeshContent |
buildingShapeTextures |
Mostly deprecated, this is for setting normal, AO, and alpha maps for constructed buildings. It's easier to just define them in the same file as the meshes. | NormalContent |
colors |
Used to define the RGB colors for all materials, and a few other things. These are merged with the textures defined in materialTextures using overlay blending (black and white stay black and white, while mid-tones are colored) to get the final texture for all materials. |
ColorContent |
designationMeshes |
Used to define meshes to use for digging, etc, designations, as well as hidden areas. | MeshContent |
growthMeshes |
Meshes for tree leaves, fruits, and flowers. These tend to be seasonal. | MeshContent |
materialTextures |
Albedo and Specular roughness textures for different materials are set here. | TextureContent |
shapeTextures |
Normal, AO, and Alpha maps are set here. | NormalContent |
tileMeshes |
This is where the meshes for all landscape elements is defined. This includes natural terrain, tree trunks and branches, constructions, etc. | MeshContent |
All of these simply use the singular form for individual items in the list.
The next sub-tags of note are <material/>
and <subObject/>
. The first one determines which material the color is applied to, while the subObject tag lists any further customizations that can be done within this material. In this case, the NONE material (a special case for models to define no material used) gets a flat grey color, but if the tile is also any type of branch, twig, tree, or sapling, then anything with the NONE material gets green instead.
The material tag can be replaced with any other valid tag that defines where something can be used, but all siblings need to use the same type. So you cannot have one color for any marble, and the next color in the list being for any floors, because there's no way to chose between them. Armok Vision will just discard the floor tag in the second one, and complain about a lack of material tag.
For map tiles, these are the available tags that can be used to chose which option go pick:
Tag | Description | Wiki Page |
---|---|---|
buildingPosition |
For multi-tile buildings, you will want to have a different model for each tile of the building. This is used for subObject of buildingType to set that. Note that this gets automatically rotated for any buildings that can rotate, such as bridges, pumps, etc. |
|
buildingType |
Which building is constructed on the tile. | |
designation |
If the tile is marked for digging, hidden, etc. This hides any other mesh that would be used in the tile. | |
growth |
For setting the model to be used with tree growths, like flowers, fruits, leaves, etc. | |
item |
For constructions, allows you to chose based on what item type the construction if made from, such as boulders, or blocks. | |
material |
This can either be the material of the tile, or of the building, etc. Most useful for colors and textures, but can be used for models in special cases. | |
ramp |
Used to specify which of the 26 ramp configurations to use it for. | |
random |
Any of the available options are chosen randomly, based on position. | |
tiletype |
The options are chosen based on the tile type of the landscape. Floor, wall, etc. |