Immovables¶
Immovables are entities not connected to a road that a tribe can own, for example a corn field or a ship under construction.
Tribe Immovables are defined in
data/tribes/immovables/<immovable_name>/init.lua
.
The immovable will also need its help texts,
which are defined in data/tribes/initialization/<tribe_name>/units.lua
- new_immovable_type(table)¶
This function adds the definition of a tribe immovable to the engine.
- Parameters
table – This table contains all the data that the game engine will add to this immovable. It contains the following entries:
name: A string containing the internal name of this immovable.
descname: The translatable display name. Use
pgettext
to fetch the string.programs: A table with the programs that this immovable will perform, e.g.
{ "animate=idle duration:2m30s500ms", "remove=" }
(see Immovable Programs)- animations
Optional. A table containing all file animations for this immovable. Every immovable needs to have at least an
idle
animation. Animations can either be defined as file animations in this table or as spritesheet animations as defined in tablespritesheets
. A mixture of the two animation formats is allowed. See Animations for a detailed description of the animation format.- spritesheets
Optional. A table containing all spritesheet animations for this immovable. Every immovable needs to have at least an
idle
animation. Animations can either be defined as spritesheet animations in this table or as file animations as defined in tableanimations
. A mixture of the two animation formats is allowed. See Animations for a detailed description of the animation format.
For making the UI texts translateable, we also need to push/pop the correct textdomain.
Example:
push_textdomain("tribes")
dirname = path.dirname(__file__)
wl.Descriptions():new_immovable_type {
name = "ashes",
descname = pgettext("immovable", "Ashes"),
anmation_directory = dirname,
icon = dirname .. "menu.png",
size = "small",
programs = {
main = {
"animate=idle duration:45s",
"remove=",
}
},
animations = {
idle = {
hotspot = { 40, 39 },
},
}
}
pop_textdomain()
Help Texts¶
See Helptexts.