UI Image Atlases¶
UI Image Atlases (uimg) are what the game uses to store multiple UI assets, they
reference a single texture asset, known as the atlas and have an array of
textures which defines the different usable UI assets.
Examples:¶
1. Basic UI Image Atlas with 2 Textures¶
{
"$type":"uimg",
"path":"rui/atlas/example1",
"atlas":"rui/example1",
"textures":
[
{
"path":"rui/example1/texture1",
"width":128,
"height":128,
"posX":0,
"posY":0
},
{
"path":"rui/example1/texture2",
"width":128,
"height":128,
"posX":128,
"posY":0
}
]
}
Note
This UI Image Atlas expects a texture with the path of rui/example1 which is at
least 256x128
2. Full Map File With a UI Image Atlas¶
{
"name":"blue_fire",
"assetsDir":"../depot",
"outputDir":"../rpaks",
"version": 7,
"files":[
{
"$type":"txtr",
"path":"rui/blue_fire"
},
{
"$type":"uimg",
"path":"rui/atlas/blue_fire",
"atlas":"rui/blue_fire",
"textures":[
{
"path":"blue_fire/hud/flame_wall",
"width":128,
"height":128,
"posX":0,
"posY":0
},
{
"path":"blue_fire/menu/flame_wall",
"width":128,
"height":128,
"posX":128,
"posY":0
},
{
"path":"blue_fire/hud/flame_shield",
"width":128,
"height":128,
"posX":0,
"posY":128
},
{
"path":"blue_fire/menu/flame_shield",
"width":128,
"height":128,
"posX":128,
"posY":128
}
]
}
]
}
Note
This map file is a shortened version of the one used in EXRILL's Blue Fire mod
Asset Structure:¶
$type¶
For an asset to be a UI Image Atlas asset, the $type field must be "uimg".
path¶
The path field for a UI Image Atlas asset is mostly unused, and as such can be set
to almost any value. It is used when logging information about the asset.
atlas¶
The atlas field for a UI Image Atlas asset determines which texture asset it will
use.
Error
If the uimg asset doesn't contain a valid atlas field, RePak will output one of
the following errors to the console:
Required field 'atlas' not found for uimg asset '%s'. Exiting...
'atlas' field is not of required type 'string' for uimg asset '%s'. Exiting...
where %s is the path field of the UI Image Atlas
Error
If the texture asset cannot be found, RePak will output the following message to the console before exiting:
Atlas asset was not found when trying to add uimg asset '%s'. Make sure that the
txtr is above the uimg in your map file. Exiting..."
where %s is the path field of the UI Image Atlas
textures¶
The textures array in a UI Image Atlas asset defines the different UI textures that
the atlas contains. Any number of UI textures may be contained within one UI Image
Atlas.
path¶
An entry in the textures array must have a path field, as the game must use it
to identify and show the texture.
Error
If the entry in the textures array doesn't contain a valid path field, RePak
will output one of the following errors to the console:
Required field 'path' not found for a texture in uimg asset '%s'. Exiting...
'path' field is not of required type 'string' for a texture in uimg asset '%s'.
Exiting...
where %s is the path field of the UI Image Atlas
width and height¶
An entry in the textures array must have both a width and a height field,
these values should both be integers.
Error
If the entry in the textures array doesn't contain a valid width or a valid
height field, RePak will output one of the following errors to the console:
Required field 'width' not found for texture '%s' in uimg asset '%s'. Exiting...
Required field 'height' not found for texture '%s' in uimg asset '%s'.
Exiting...
'width' field is not of required type 'number' for texture '%s' in uimg asset
'%s'. Exiting...
'height' field is not of required type 'number' for texture '%s' in uimg asset
'%s'. Exiting...
where the first %s is the path field of the texture, and the second %s
is the path field of the UI Image Atlas
posX and posY¶
An entry in the textures array must have both a posX and a posY field, these
values should both be integers. These fields determine the location of the top-left
pixel in the UI texture.
Error
If the entry in the textures array doesn't contain a valid posX or a valid
posY field, RePak will output one of the following errors to the console:
Required field 'posX' not found for texture '%s' in uimg asset '%s'. Exiting...
Required field 'posY' not found for texture '%s' in uimg asset '%s'. Exiting...
'posX' field is not of required type 'number' for texture '%s' in uimg asset '%s'.
Exiting...
'posY' field is not of required type 'number' for texture '%s' in uimg asset '%s'.
Exiting...
where the first %s is the path field of the texture, and the second %s
is the path field of the UI Image Atlas