Action0/Industry Tiles

From GRFSpecs
< Action0
Revision as of 11:24, 5 July 2009 by Planetmaker (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Action 0 properties for industry tiles

Action 0 - Properties for industry tiles

Defining properties of industry tiles

Industry tiles work similarly to town buildings, except that they are not stand-alone. This means an industry tile can't stand alone, it's always part of an industry.

-=Properties=-

||Number|Version|Size|Description

08|(a)|B|Substitute building type

09|(a)|B|Industry tile override

0A,0B,0C|(a)|W|Tile acceptance

0D|(b)|B|Land shape flags

0E|(c)|B|Callback flags

0F|(c)|W|Animation information

10|(c)|B|Animation speed.

11|(c)|B|Triggers for callback 25

12|(d)|B|Special flags||

(a) Available since TTDPatch 2.0.1 alpha 43

(b) Available since TTDPatch 2.0.1 alpha 49

(c) Available since TTDPatch 2.0.1 alpha 54

(d) Available since TTDPatch 2.5 beta 2

In OpenTTD there can be a total of 512 different industry tiles, but only 256 per newgrf.

-=Comments=-

Substitute tile type (08)

This tile type will be used instead of your new one if your definition isn't available for any reason. Valid values are [1]. Assigning this property copies the properties of the old type just like it does with houses.

If this tile's action 3 appears before this property is set, the action 3 will have no effect.

Industry tile override (09)

Works like the house override property for houses.

Tile acceptance (0A, 0B, 0C)

These three words define what cargoes the tile accepts, and how much of them. The low byte defines the type of the cargo according to the current climate, while the high byte defines the degree of acceptance in 1/8 units. If you don't need all three cargo types, just zero out the high byte of the extra properties.

From GRF version 7 and above, the meaning of the low byte changes: instead of a climate-dependent cargo slot number, you have to give a climate-independent cargo ID. If your GRF has a cargo translation table, then this ID is the index in that table; otherwise, it's the cargo bit. Acceptance of cargoes not currently present will automatically be disabled.

Land shape flags (0D)

This property defines which slopes the tile can be built on.

||Bit|Value|Meaning

0|1|NW edge cannot be lowered

1|2|NE edge cannot be lowered

2|4|SW edge cannot be lowered

3|8|SE edge cannot be lowered

4|10|Can only be built on flat land

5|20|The tile is allowed on both land and water (only from alpha 58)||

Industry tiles are never built on steep slopes unless callback 2F is enabled, but bits 0..4 are ignored in that case.

Bit 5 can be used to allow tiles of land industries built on water or vice versa. It effectively disables the land/water check code for the tile. If you need to customize the behavior further, you can use callback 2F to decide what kind of water/land is allowed.

PLEASE NOTE
Be careful when setting this property. If you fail to set it correctly, your industry may end up building on a hillside, which is probably not what you want. The easiest way is to set bit 4 for middle tiles, bit 0 for the tiles along the SE edge, bit 1 for those along the SW edge and so on.

Callback flags (0E)

||Bit|value|meaning

0|1|use callback 26 to decide the next animation frame

1|2|use callback 27 to decide animation speed

2|4|use callback 2B to decide amount of acceptance (only from 2.0.1 a55 vcs 3)

3|8|use callback 2C to decide accepted types (only from 2.0.1 a55 vcs 3)

4|10|use callback 2F to check if a slope is suitable

5|20|use callback 30 to decide if default foundations need to be drawn

6|40|use callback 3C to allow or deny autosloping below the tile (only from 2.5 beta 3)||

Please note that callback 25 doesn't have a bit here. To use callback 25, simply set the wanted bits in property 11 and it will work as intended.

Animation information (0F)

The low byte specifies the number of animation frames minus one, so 00 means 1 frame, 01 means 2 frames etc. The maximum number of frames is 256, although you can have some problems if your animation exceeds FD (253) frames. The high byte must be 0 for non-looping animations and 01 for looping animations. Every other value is reserved for future use. In addition, if the whole word contains FFFF, animation is turned off for this tile (this is the default value).

Animation speed (10)

The meaning is the same as for house property 1B, but the lower limit is 0 instead of 2, so the fastest possible animation changes frames every game tick (27ms). The default value is 2.

Triggers for callback 25 (11)

Call callback 25 when:

||Bit|Value|Meaning

0|1|the construction state changes

1|2|the tile is processed in the periodic processing loop

2|4|the industry of the tile is processed in the periodic processing loop (synchronized animation)

3|8|the industry of the tile receives input cargo from a station

4|10|the industry distributes its output cargo to one of the stations nearby (from beta 2)||

Special flags (12)

||Bit|Value|Meaning

0|1|Callback 26 needs random bits||