Difference between revisions of "NML:Badges"
(→Badge properties: For sake of compatibility and user experience.) |
m (→Prerequisites: Use <code style="color:green">) |
||
| (2 intermediate revisions by one other user not shown) | |||
| Line 80: | Line 80: | ||
| Override default graphics when used by other specific feature. |
| Override default graphics when used by other specific feature. |
||
|} |
|} |
||
| + | |||
| + | == Prerequisites == |
||
| + | |||
| + | Badges require a [[NML:Badgetable|badgetable]] to be defined for most common usage scenarios (eg to refer to a badge from an item block). This is not a hard requirement and can be omitted if you are, for example, creating badges that other newGRFs can later refer to |
||
| + | |||
| + | Eg for <code style="color:green">power/diesel</code> to be used in the badges property for a vehicle, the badge table must contain entries for both <code style="color:green">power</code> and <code style="color:green">power/diesel</code> |
||
== Example code == |
== Example code == |
||
<pre style="color:blue"> |
<pre style="color:blue"> |
||
| + | |||
| + | badgetable { |
||
| + | "power", |
||
| + | "power/diesel", |
||
| + | "power/steam" |
||
| + | } |
||
| + | |||
item (FEAT_BADGES, power) { |
item (FEAT_BADGES, power) { |
||
property { |
property { |
||
| Line 91: | Line 104: | ||
} |
} |
||
| + | # This badge will not show a sprite in the purchase menu |
||
item (FEAT_BADGES, diesel) { |
item (FEAT_BADGES, diesel) { |
||
property { |
property { |
||
| Line 98: | Line 112: | ||
} |
} |
||
| + | # This badge will show a sprite in the purchase menu |
||
item (FEAT_BADGES, steam) { |
item (FEAT_BADGES, steam) { |
||
property { |
property { |
||
Latest revision as of 15:26, 14 January 2026
Vehicles, Stations, Roadstops, Canals, Towns, Houses, Industries (Tiles), Cargos, Airports+Tiles, Objects, Railtypes, Roadtypes, Tramtypes, Bridges, Badges, Terrain
- common props | vars | CBs
- train | roadveh | ship | aircr props
- common variables
- industry props | vars | CBs
- tile props | vars | CBs
- airport props | vars | CBs
- tile props | vars | CBs
item (FEAT_BADGES, item_name) { ... }
Badge properties
| property | value range | comment |
|---|---|---|
| label | string with / as delimiter
|
For sake of compatibility and user experience, consider using labels already introduced by other NewGRFs.
Badges with label without |
| name | string | Name of this badge or badge class. |
| flags | bitmask(BADGE_FLAG_XXX, ...); |
|
Badge variables
| name | value range | comment |
|---|---|---|
| intro_date | date(yyyy, mm, dd) | Introduction date of entity (or current date if entity type does not have an introduction date). See introduction_date in vehicle properties.
|
Badge callbacks
| callback | return value | comment |
|---|---|---|
| default | spriteset | Graphics for the badge or badge class. |
|
aircraft |
spriteset | Override default graphics when used by other specific feature. |
Prerequisites
Badges require a badgetable to be defined for most common usage scenarios (eg to refer to a badge from an item block). This is not a hard requirement and can be omitted if you are, for example, creating badges that other newGRFs can later refer to
Eg for power/diesel to be used in the badges property for a vehicle, the badge table must contain entries for both power and power/diesel
Example code
badgetable {
"power",
"power/diesel",
"power/steam"
}
item (FEAT_BADGES, power) {
property {
label: "power";
name: string(STR_POWER);
}
}
# This badge will not show a sprite in the purchase menu
item (FEAT_BADGES, diesel) {
property {
label: "power/diesel";
name: string(STR_POWER_DIESEL);
}
}
# This badge will show a sprite in the purchase menu
item (FEAT_BADGES, steam) {
property {
label: "power/steam";
name: string(STR_POWER_STEAM);
}
graphics {
default: sprite_steam;
}
}