Transport Belt Reskin Functions
Prismatic Belts provides an API for use by mod authors looking to manage belts themselves.
To use it, first require it:
`local prismatic_api = require("prismatic-belts.prototypes.api")
get_transport_belt_icon(inputs)
Returns a complete item icons definition
---@type PrismaticBelts.TransportBeltIconInputs
local inputs = {
use_three_arrow_variant = false,
base_tint = nil,
mask_tint = util.color("16f263d1"), -- Green with 82% alpha.
arrow_tint = nil,
}
local item = data.raw["item"]["transport-belt"]
item.icons = api.get_transport_belt_icon(inputs)
PrismaticBelts.TransportBeltIconInputs
use_three_arrow_variant? boolean
When true, the icon will have three arrows; otherwise, it will have two.base_tint? data.Color
Color to tint the base sprite (gears, rails)mask_tint? data.Color
Color to tint the mask sprite (belt surface, arrows)arrow_tint? data.Color
Color to tint the arrow layer; whennil
, the arrow layer will not be included. Suggested alpha value is 0. Use to increase the brightness of the arrows when used with a particularly darkmask_tint
.
get_transport_belt_technology_icon(inputs)
Returns a complete technology icons definition
---@type PrismaticBelts.TransportBeltTechnologyIconInputs
local inputs = {
base_tint = nil,
mask_tint = util.color("16f263d1"), -- Green with 82% alpha.
arrow_tint = nil,
}
local technology = data.raw["technology"]["logistics-3"]
technology.icons = api.get_transport_belt_technology_icon(inputs)
PrismaticBelts.TransportBeltTechnologyIconInputs
base_tint? data.Color
Color to tint the base sprite (gears, rails)mask_tint? data.Color
Color to tint the mask sprite (belt surface, arrows)arrow_tint? data.Color
Color to tint the arrow layer; whennil
, the arrow layer will not be included. Suggested alpha value is 0. Use to increase the brightness of the arrows when used with a particularly darkmask_tint
.
get_transport_belt_animation_set(inputs)
Returns a complete TransportBeltAnimationSet
definition.
---@type PrismaticBelts.TransportBeltAnimationSetInputs
local inputs = {
base_tint = nil,
tint_base_as_overlay = nil,
mask_tint = util.color("16f263d1"), -- Green with 82% alpha.
tint_mask_as_overlay = true,
variant = 2,
arrow_tint = nil,
}
local entity = data.raw["transport-belt"]["transport-belt"]
entity.belt_animation_set = api.get_transport_belt_animation_set(inputs)
PrismaticBelts.TransportBeltAnimationSetInputs
base_tint? data.Color
Color to tint the base sprite (gears, rails)tint_base_as_overlay? boolean
When true, the color blending for thebase_tint
will use Overlay rules.mask_tint? data.Color
Color to tint the mask sprite (belt surface, arrows)tint_mask_as_overlay? boolean
When true, the color blending for themask_tint
will use Overlay rules.arrow_tint? data.Color
Color to tint the arrow layer; whennil
, the arrow layer will not be included. The layer is inserted at the top of the stack withadditive-soft
blending; use to increase the brightness of the arrows when used with a particularly darkmask_tint
.variant? 1|2|3
Spritesheet to return (1 for slow, 2 for fast, 3 for turbo fast [requires Space Age]).
create_remnant(name, inputs)
Reskins, or creates as needed, appropriate transport belt remnants.
---Table of parameters that configure the remnant sprites.
---@type PrismaticBelts.CreateRemnantInputs
local inputs = {
base_tint = nil,
tint_base_as_overlay = nil,
mask_tint = util.color("16f263d1"), -- Green with 82% alpha.
tint_mask_as_overlay = true,
variant = 2,
arrow_tint = nil,
}
local entity = data.raw["transport-belt"]["transport-belt"]
api.create_remnant(entity.name, inputs)
PrismaticBelts.CreateRemnantInputs
base_tint? data.Color
Color to tint the base sprite (gears, rails)tint_base_as_overlay? boolean
When true, the color blending for thebase_tint
will use Overlay rules.mask_tint? data.Color
Color to tint the mask sprite (belt surface, arrows)tint_mask_as_overlay? boolean
When true, the color blending for themask_tint
will use Overlay rules.arrow_tint? data.Color
Color to tint the arrow layer; whennil
, the arrow layer will not be included. The layer is inserted at the top of the stack withadditive-soft
blending; use to increase the brightness of the arrows when used with a particularly darkmask_tint
.variant? 1|2|3
Spritesheet to return (1 for slow, 2 for fast, 3 for turbo fast [requires Space Age]).
get_transport_belt_frozen_patch(variant)
Gets the transport belt frozen_patch
RotatedSprite
for the given variant
. If Space Age is not active, returns nil
.
local entity = data.raw["transport-belt"]["transport-belt"]
entity.belt_animation_set.frozen_patch = api.get_transport_belt_frozen_patch(1)
variant 1|2|3
Spritesheet to return (1 for slow, 2 for fast, 3 for turbo fast [requires Space Age]).