Skip to content

color_util

Source: base/tealdef/gui/main/color_util.d.tl

Notes

Colour types of GUI resource files (*.gres) and helpers that turn them into Vec3f/Vec4f values, add transparency, mix colours and derive hover/active shades.

GResColor

record global base/tealdef/gui/main/color_util.d.tl:3

global record GResColor is {number}

{number} is expected to have length 3 or 4

GResColorRange

record global base/tealdef/gui/main/color_util.d.tl:4

global record GResColorRange

Notes

A pair of GUI resource colours (minimum and maximum), e.g. for a colour gradient.

Fields

Name Type Description
min GResColor Colour at the lower end of the range.
max GResColor Colour at the upper end of the range.

GResColorArray

record global base/tealdef/gui/main/color_util.d.tl:8

global record GResColorArray is {GResColor}

Notes

A list of GUI resource colours.

GResTransparency

record global base/tealdef/gui/main/color_util.d.tl:10

global record GResTransparency

Notes

Standard alpha values of the GUI, from the resource ::/gui/main/transparency.gres.

Details

Read it with api.gui.genericRep.get(api.gui.genericRep.find("::/gui/main/transparency.gres")).data and pass the values as alpha to color_util.withTransparency.

Fields

Name Type Description
VeryLow number Alpha 0.9 (almost opaque).
Low number Alpha 0.75.
Medium number Alpha 0.5.
High number Alpha 0.25.
VeryHigh number Alpha 0.1 (almost transparent).

Functions

metamethod __index(GResTransparency, string) : number base/tealdef/gui/main/color_util.d.tl:11

Notes

Lookup of the alpha values by name (transparency["Low"]).

Returns number

ColorUtil

record global base/tealdef/gui/main/color_util.d.tl:20

global record ColorUtil

Load: local color_util = require "::/gui/main/color_util.tl"

Notes

Conversion and mixing helpers for GUI resource colours (GResColor, a list of 3 or 4 numbers in 0..1).

Functions

toVec3(color : GResColor) : Vec3f base/tealdef/gui/main/color_util.d.tl:21

Call as color_util.toVec3

Notes

Converts a colour to a Vec3f (red, green, blue); alpha is dropped.

Returns Vec3f

Used in the base game: 5 times in 2 files

base/content/mission/mission/mission_sim.script.tl:1171

api.gui.byId.setHighlighted(k, true, style, color_util.toVec3(mission_colors.Highlight))
base/content/gui/gui/main/particle_react_util.tl:19
api.type.ParticleParamCurveVec3f.CurvePoint.new(0.0, color_util.toVec3(colors.LevelUpStars)),

toVec4(color : GResColor) : Vec4f base/tealdef/gui/main/color_util.d.tl:22

Call as color_util.toVec4

Notes

Converts a colour to a Vec4f; a missing alpha becomes 1.0.

Returns Vec4f

Used in the base game: 163 times in 49 files

base/content/mission/mission/mission_framework/mission_framework_react.tl:510

arrow.color = color_util.toVec4(mission_colors.Target)
base/content/mission/mission/tutorial/tutorial_story.tl:629
return color_util.toVec4(mission_colors.Target)
base/content/mission/mission/tasks/create_line/create_line.tl:101
return color_util.toVec4(mission_colors.Target)
base/content/mission/mission/tasks/connect_nodes/connect_nodes.tl:102
return color_util.toVec4(mission_colors.Target)
base/content/mission/mission/tasks/build_path/build_path.tl:124
return color_util.toVec4(mission_colors.Target)
base/content/mission/mission/tasks/waypoints/waypoints.tl:84
return color_util.toVec4(mission_colors.SecondaryTarget)
… and 43 more files.

toRange3(colorRange : GResColorRange) : {Vec3f, Vec3f} base/tealdef/gui/main/color_util.d.tl:24

Call as color_util.toRange3

{min, max}

Returns {Vec3f, Vec3f}

toRange4(colorRange : GResColorRange) : {Vec4f, Vec4f} base/tealdef/gui/main/color_util.d.tl:25

Call as color_util.toRange4

{min, max}

Returns {Vec4f, Vec4f}

Used in the base game: 11 times in 5 files

base/content/gui/gui/layers/layer_passenger_flow.tl:16

local originColor = color_util.toRange4(layerColors.PassengerFlow.Origin)
base/content/gui/gui/layers/layer_cargo_flow.tl:37
local playerTransportColor = color_util.toRange4(layerColors.CargoFlow.PlayerTransport)
base/content/gui/gui/layers/layer_noise.tl:20
local impactMinMaxColor = color_util.toRange4(layerColors.Noise.Impact)
base/content/gui/gui/layers/layer_pollution.tl:19
local emitterMinMaxColor = color_util.toRange4(layerColors.Pollution.Emission)
base/content/gui/gui/entity_window/town/town.tl:54
local passengerTransportColor = color_util.toRange4(layerColors.PassengerFlow.PublicTransport)

toArray3(colorArray : GResColorArray) : {Vec3f} base/tealdef/gui/main/color_util.d.tl:27

Call as color_util.toArray3

Notes

Converts each colour of the list with toVec3.

Returns {Vec3f}

Used in the base game: 7 times in 6 files

base/content/gui/gui/line_vehicle_mgmt/vehicle_store_window.tl:4868

local colorChooserColorsStaticData = color_util.toArray3(table_util.concatenate((api.gui.genericRep.get(api.gui.genericRep.find("::/gui/line_vehicle_mgmt/line_c
base/content/gui/gui/line_vehicle_mgmt/manager_window.tl:3600
local colorPalette = color_util.toArray3(table_util.concatenate((api.gui.genericRep.get(api.gui.genericRep.find("::/gui/line_vehicle_mgmt/line_colors.gres")).da
base/content/gui/gui/line_vehicle_mgmt/line_react_util.tl:601
local colorPalette = color_util.toArray3(table_util.concatenate((api.gui.genericRep.get(api.gui.genericRep.find("::/gui/line_vehicle_mgmt/line_colors.gres")).da
base/content/gui/gui/line_vehicle_mgmt/line_util.tl:40
local lineColors = color_util.toArray3(api.gui.genericRep.get(api.gui.genericRep.find("::/gui/line_vehicle_mgmt/line_colors.gres")).data as GResColorArray)
base/content/gui/gui/construction/construction_react_util.tl:3326
laneModifier.lineColors = color_util.toArray3(api.gui.genericRep.get(api.gui.genericRep.find("::/gui/line_vehicle_mgmt/line_colors.gres")).data as GResColorArra
base/content/gui/gui/entity_window/vehicle/vehicle_eow.script.tl:139
local colorPalette = color_util.toArray3(table_util.concatenate((api.gui.genericRep.get(api.gui.genericRep.find("::/gui/line_vehicle_mgmt/line_colors.gres")).da

toArray4(colorArray : GResColorArray) : {Vec4f} base/tealdef/gui/main/color_util.d.tl:28

Call as color_util.toArray4

Notes

Converts each colour of the list with toVec4.

Returns {Vec4f}

Used in the base game: 16 times in 14 files

base/content/gui/gui/layers/layer_terrain.tl:24

mapColors.colors = color_util.toArray4(layerColors.Terrain.HeightMap)
base/content/gui/gui/layers/layer_civilization.tl:38
voronoiRenderableConfig.colors = color_util.toArray4(layerColors.Civilization.Voronoi)
base/content/gui/gui/layers/layer_noise.tl:23
local averageColors = color_util.toArray4(layerColors.Noise.Average)
base/content/gui/gui/layers/layer_public_transport.tl:208
voronoiRenderableConfig.colors = color_util.toArray4(layerColors.PublicTransport.Voronoi)
base/content/gui/gui/layers/layer_cargo.tl:195
voronoiRenderableConfig.colors = color_util.toArray4(layerColors.Cargo.Voronoi)
base/content/gui/gui/layers/layer_pollution.tl:21
local averageColors = color_util.toArray4(layerColors.Pollution.Average)
… and 8 more files.

toArray4WithTransparency(colorArray : GResColorArray, alpha : number) : {Vec4f} base/tealdef/gui/main/color_util.d.tl:29

Call as color_util.toArray4WithTransparency

Notes

Converts each colour of the list to a Vec4f with the given alpha (the colour's own alpha is replaced).

Returns {Vec4f}

Used in the base game: 6 times in 3 files

base/content/gui/gui/layers/layer_infrastructure.tl:37

edgeRenderableConfig.speedColor = color_util.toArray4WithTransparency(layerColors.Infrastructure.Speed, transparency.Low)
base/content/gui/gui/entity_window/town/town.tl:1024
local actualColors = color_util.toArray4WithTransparency(layerColors.CargoFlow.Suppliers3D.Actual, transparency.VeryLow)
base/content/gui/gui/entity_window/industry/industry.tl:332
local potentialColors = color_util.toArray4WithTransparency(layerColors.CargoFlow.Suppliers3D.Potential, transparency.VeryLow)

withTransparency(gResColor : GResColor, alpha : number) : Vec4f base/tealdef/gui/main/color_util.d.tl:31

Call as color_util.withTransparency

Notes

Returns the colour as Vec4f with its alpha replaced by alpha.

Returns Vec4f

Used in the base game: 30 times in 8 files

base/content/gui/gui/layers/layer_terrain.tl:20

local waterColor = color_util.withTransparency(layerColors.Terrain.Water, transparency.Low)
base/content/gui/gui/layers/layer_infrastructure.tl:39
edgeRenderableConfig.tunnelOutlineColor = color_util.withTransparency(layerColors.Infrastructure.Tunnel, transparency.Low)
base/content/gui/gui/layers/layer_traffic.tl:34
color_util.withTransparency(layerColors.Traffic.Jammed, transparency.Medium),
base/content/gui/gui/line_vehicle_mgmt/line_util.tl:1093
local waterColor = color_util.withTransparency(layerColors.Terrain.Water, transparency.High)
base/content/gui/gui/construction/construction_desc_layers.script.tl:38
mapColors.water = color_util.withTransparency(layerColors.Terrain.Water, transparency.Low)
base/content/gui/gui/construction/construction_react_util.tl:37
modifierColor.validSubtle = color_util.withTransparency(constructionColors.Modifier.Valid, transparency.Medium)
… and 2 more files.

withTransparencyRaw(gResColor : GResColor, alpha : number) : GResColor base/tealdef/gui/main/color_util.d.tl:32

Call as color_util.withTransparencyRaw

Notes

Returns a new GResColor with its alpha replaced by alpha.

Returns GResColor

Used in the base game: 325 times in 36 files

base/content/model_editor/model_editor/ui/model_editor.css.lua:80

backgroundColor1 = color_util.withTransparencyRaw(colorDefault.NeutralLightest, transparency.Medium),
base/content/mission/mission/mission.css.lua:86
backgroundColor1 = color_util.withTransparencyRaw(colorDefault.BaseDarkMedium, transparency.VeryLow),
base/content/gui/gui/node_editor/node_editor.css.lua:69
backgroundColor1 = color_util.withTransparencyRaw(colorDefault.BaseDark, transparency.Medium),
base/content/gui/gui/layers/layers.css.lua:204
backgroundColor1 = color_util.withTransparencyRaw(colorDefault.BaseVeryLight, transparency.VeryLow),
base/content/gui/gui/debug_panel/entity_debug_panel.css.lua:45
backgroundColor = color_util.withTransparencyRaw(colorDefault.NeutralLightest, transparency.VeryHigh),
base/content/gui/gui/map_editor/map_editor.css.lua:51
backgroundColor = color_util.withTransparencyRaw(colorDefault.NeutralVeryDark, transparency.Medium),
… and 30 more files.

mixColors(colorA : GResColor, colorB : GResColor, amount : number) : Vec4f base/tealdef/gui/main/color_util.d.tl:34

Call as color_util.mixColors

Notes

Linearly interpolates between two colours (including alpha) and returns a Vec4f.

Parameter Type Description
colorA GResColor
colorB GResColor
amount number 0 gives colorA, 1 gives colorB.

Returns Vec4f

mixColorsRaw(colorA : GResColor, colorB : GResColor, amount : number) : GResColor base/tealdef/gui/main/color_util.d.tl:35

Call as color_util.mixColorsRaw

Notes

Like mixColors, but returns a GResColor.

Returns GResColor

Used in the base game: 3 times in 2 files

base/content/gui/gui/line_vehicle_mgmt/line_vehicle_mgmt.css.lua:37

color = color_util.mixColorsRaw(
base/content/gui/gui/main/internal.css.lua:22
backgroundColor1 = color_util.mixColorsRaw(

getHoverFrom(enabledColor : GResColor) : Vec4f base/tealdef/gui/main/color_util.d.tl:37

Call as color_util.getHoverFrom

Notes

Derives the hover shade of a colour (brightness +0.2, slightly less saturation, in HSV) as Vec4f.

Returns Vec4f

Used in the base game: 1 time in 1 file

base/content/game_mechanics/game_mechanics/finance/finances_react_util.tl:133

backgroundColor1 = color_util.getHoverFrom({color.x, color.y, color.z, color.w}),

getHoverFromRaw(enabledColor : GResColor) : GResColor base/tealdef/gui/main/color_util.d.tl:38

Call as color_util.getHoverFromRaw

Notes

Like getHoverFrom, but returns a GResColor.

Returns GResColor

Used in the base game: 54 times in 8 files

base/content/gui/gui/line_vehicle_mgmt/line_vehicle_mgmt.css.lua:1962

backgroundColor1 = color_util.getHoverFromRaw(colorDefault.NeutralDark),
base/content/gui/gui/game_bar/game_bar.css.lua:132
borderColor = color_util.getHoverFromRaw(colorDefault.AccentDark),
base/content/gui/gui/menu/main_menu.css.lua:150
backgroundColor1 = color_util.getHoverFromRaw(colorDefault.AccentDark),
base/content/gui/gui/main/default.css.lua:84
backgroundColor1 = color_util.getHoverFromRaw(colorDefault.AccentDark),
base/content/gui/gui/main/internal.css.lua:512
backgroundColor1 = color_util.getHoverFromRaw(misisonColors.Guide),
base/content/gui/gui/main/builtin.css.lua:207
borderColor = color_util.getHoverFromRaw(colorDefault.AccentMedium),
… and 2 more files.

getActiveFrom(enabledColor : GResColor) : Vec4f base/tealdef/gui/main/color_util.d.tl:40

Call as color_util.getActiveFrom

Notes

Derives the pressed/active shade of a colour (brightness +0.1, slightly less saturation, in HSV) as Vec4f.

Returns Vec4f

Used in the base game: 2 times in 1 file

base/content/game_mechanics/game_mechanics/finance/finances_react_util.tl:125

backgroundColor1 = color_util.getActiveFrom({color.x, color.y, color.z, color.w}),

getActiveFromRaw(enabledColor : GResColor) : GResColor base/tealdef/gui/main/color_util.d.tl:41

Call as color_util.getActiveFromRaw

Notes

Like getActiveFrom, but returns a GResColor.

Returns GResColor

Used in the base game: 57 times in 9 files

base/content/gui/gui/line_vehicle_mgmt/line_vehicle_mgmt.css.lua:409

backgroundColor1 = color_util.getActiveFromRaw(colorDefault.BaseVeryLight),
base/content/gui/gui/game_bar/game_bar.css.lua:137
borderColor = color_util.getActiveFromRaw(colorDefault.AccentDark),
base/content/gui/gui/menu/main_menu.css.lua:375
backgroundColor1 = color_util.getActiveFromRaw(colorDefault.AccentVeryDark),
base/content/gui/gui/main/default.css.lua:89
backgroundColor1 = color_util.getActiveFromRaw(colorDefault.AccentDark),
base/content/gui/gui/main/content_card.css.lua:80
backgroundColor1 = color_util.getActiveFromRaw(colorDefault.BaseDark),
base/content/gui/gui/main/internal.css.lua:517
backgroundColor1 = color_util.getActiveFromRaw(misisonColors.GuideBlink),
… and 3 more files.