Icontypes.lua
More actions
Location
icontypes.lua is a file in the Gamedata/ directory of a Spring Game.
Purpose
This file defines the icons used to represent units on the minimap and rendered in place of 3d geometry when zoomed out.
Source
The engine source code which parses the data from this file is viewable here:
Data Types
- {{#css
span.value {
color:#e65c00;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.type {
color:#0099cc;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.prefix {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.name {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
font-weight:bold;
}
span.var {
font-family: ‘Lucida Console’, Monaco, monospace;
}
}}int : An integer number. eg. {{#css:
span.value {
color:#e65c00;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.type {
color:#0099cc;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.prefix {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.name {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
font-weight:bold;
}
span.var {
font-family: ‘Lucida Console’, Monaco, monospace;
}
}}5
- {{#css
span.value {
color:#e65c00;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.type {
color:#0099cc;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.prefix {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.name {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
font-weight:bold;
}
span.var {
font-family: ‘Lucida Console’, Monaco, monospace;
}
}}float : A number with decimals. eg {{#css:
span.value {
color:#e65c00;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.type {
color:#0099cc;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.prefix {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.name {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
font-weight:bold;
}
span.var {
font-family: ‘Lucida Console’, Monaco, monospace;
}
}}1.023
- {{#css
span.value {
color:#e65c00;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.type {
color:#0099cc;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.prefix {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.name {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
font-weight:bold;
}
span.var {
font-family: ‘Lucida Console’, Monaco, monospace;
}
}}bool : A value which can be true or false. eg {{#css:
span.value {
color:#e65c00;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.type {
color:#0099cc;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.prefix {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.name {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
font-weight:bold;
}
span.var {
font-family: ‘Lucida Console’, Monaco, monospace;
}
}}true
- {{#css
span.value {
color:#e65c00;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.type {
color:#0099cc;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.prefix {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.name {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
font-weight:bold;
}
span.var {
font-family: ‘Lucida Console’, Monaco, monospace;
}
}}string : Text, or more precisely a string of alphanumeric characters. eg {{#css:
span.value {
color:#e65c00;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.type {
color:#0099cc;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.prefix {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.name {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
font-weight:bold;
}
span.var {
font-family: ‘Lucida Console’, Monaco, monospace;
}
}}"string of characters"
- {{#css
span.value {
color:#e65c00;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.type {
color:#0099cc;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.prefix {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.name {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
font-weight:bold;
}
span.var {
font-family: ‘Lucida Console’, Monaco, monospace;
}
}}rgb : Three float components, representing red, green and blue components, ranged from 0.0 to 1.0. eg {{#css:
span.value {
color:#e65c00;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.type {
color:#0099cc;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.prefix {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.name {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
font-weight:bold;
}
span.var {
font-family: ‘Lucida Console’, Monaco, monospace;
}
}}{0.0, 0.0, 0.0}
- {{#css
span.value {
color:#e65c00;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.type {
color:#0099cc;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.prefix {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.name {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
font-weight:bold;
}
span.var {
font-family: ‘Lucida Console’, Monaco, monospace;
}
}}float3 : Three float components, eg {{#css:
span.value {
color:#e65c00;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.type {
color:#0099cc;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.prefix {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.name {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
font-weight:bold;
}
span.var {
font-family: ‘Lucida Console’, Monaco, monospace;
}
}}{0.0, 0.0, 0.0}
- {{#css
span.value {
color:#e65c00;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.type {
color:#0099cc;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.prefix {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.name {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
font-weight:bold;
}
span.var {
font-family: ‘Lucida Console’, Monaco, monospace;
}
}}float4 : Four float components, eg {{#css:
span.value {
color:#e65c00;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.type {
color:#0099cc;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.prefix {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.name {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
font-weight:bold;
}
span.var {
font-family: ‘Lucida Console’, Monaco, monospace;
}
}}{0.0, 0.0, 0.0, 0.0}
Details
Game developers can set icons for different types of units, (such as land, air, sea), or go so far as to give every unit its own icon. The different types icons will be shown for friendly units, and enemy units within Line Of Sight. For enemy units in radar range Spring will use the 'default' icon.
IconType Properties
{{#css:
span.value {
color:#e65c00;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.type {
color:#0099cc;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.prefix {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.name {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
font-weight:bold;
}
span.var {
font-family: ‘Lucida Console’, Monaco, monospace;
}
}}string {{#css:
span.value {
color:#e65c00;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.type {
color:#0099cc;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.prefix {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.name {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
font-weight:bold;
}
span.var {
font-family: ‘Lucida Console’, Monaco, monospace;
}
}}bitmap default: {{#css:
span.value {
color:#e65c00;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.type {
color:#0099cc;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.prefix {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.name {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
font-weight:bold;
}
span.var {
font-family: ‘Lucida Console’, Monaco, monospace;
}
}}""
- The location of the custom icon image (not limited to bitmaps!). If it is missing or incorrect, Spring replaces it with the standard radar dot. The bitmap will get blended with the team color, so there is no special team color channel. In order to look nice, the image will need to have an alpha channel for transparency.
{{#css:
span.value {
color:#e65c00;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.type {
color:#0099cc;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.prefix {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.name {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
font-weight:bold;
}
span.var {
font-family: ‘Lucida Console’, Monaco, monospace;
}
}}float {{#css:
span.value {
color:#e65c00;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.type {
color:#0099cc;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.prefix {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.name {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
font-weight:bold;
}
span.var {
font-family: ‘Lucida Console’, Monaco, monospace;
}
}}size default: {{#css:
span.value {
color:#e65c00;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.type {
color:#0099cc;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.prefix {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.name {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
font-weight:bold;
}
span.var {
font-family: ‘Lucida Console’, Monaco, monospace;
}
}}1.0
- Acts as multiplier for the icon size. The larger the number, the larger the icon will be.
{{#css:
span.value {
color:#e65c00;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.type {
color:#0099cc;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.prefix {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.name {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
font-weight:bold;
}
span.var {
font-family: ‘Lucida Console’, Monaco, monospace;
}
}}float {{#css:
span.value {
color:#e65c00;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.type {
color:#0099cc;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.prefix {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.name {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
font-weight:bold;
}
span.var {
font-family: ‘Lucida Console’, Monaco, monospace;
}
}}distance default: {{#css:
span.value {
color:#e65c00;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.type {
color:#0099cc;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.prefix {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.name {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
font-weight:bold;
}
span.var {
font-family: ‘Lucida Console’, Monaco, monospace;
}
}}1.0
- Acts as a multiplier for the distance at which the unit will show up as an icon. The larger the number, the further away the camera has to be from the unit for it to turn into an icon.
{{#css:
span.value {
color:#e65c00;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.type {
color:#0099cc;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.prefix {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.name {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
font-weight:bold;
}
span.var {
font-family: ‘Lucida Console’, Monaco, monospace;
}
}}bool {{#css:
span.value {
color:#e65c00;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.type {
color:#0099cc;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.prefix {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.name {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
font-weight:bold;
}
span.var {
font-family: ‘Lucida Console’, Monaco, monospace;
}
}}radiusAdjust default: {{#css:
span.value {
color:#e65c00;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.type {
color:#0099cc;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.prefix {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
}
span.name {
color:#105289;
font-family: ‘Lucida Console’, Monaco, monospace;
font-weight:bold;
}
span.var {
font-family: ‘Lucida Console’, Monaco, monospace;
}
}}false
- Whether or not the icon should scale with the unit radius.
Assigning IconTypes
To assign units to a specific icon type, set the {{#css:
span.mono {
font-family: courier, monospace;
}
span.value {
color: #ff6600;
}
}}iconType attribute of their UnitDef to the type name set in icontypes.lua (see #Example)
... iconType = "circle", ...
If the {{#css:
span.mono {
font-family: courier, monospace;
}
span.value {
color: #ff6600;
}
}}iconType tag is missing, Spring sets it to the "default" icontype. If the "default" type is not specified, Spring will create it with the default values. Furthermore, enemy units that are within radar range, but not in your Line Of Sight, will be shown as the default icon. Thus if there is a bitmap specified for the "default" icon type it will override the standard radar blip.
Example
local iconTypes = {
default = {
size = 1,
radiusadjust = true,
},
flag = {
bitmap = "icons/flag.png",
size = 6,
radiusadjust = true,
distance = 100,
},
circle = {
bitmap = "icons/circle.png",
size = 4,
radiusadjust = true,
distance = 100,
},
...
}
return iconTypes