Bar element
Add a bar that fills depending on a number value stored in the machine.
The bar gui element can be used to display a number in the form of a fillable bar (the default texture is the same one as the energy gui element).
The number value must be stored in the machine data, which is accessible only by using Crafttweaker or KubeJS scripts.
Example: setting a number in the data from a script
.requireFunctionEachTicks(ctx => {
//Set the variable named "amount" to 10
//"amount" can be replaced by anything else,
//as long as it match the ID specified in the bar gui element properties.
ctx.machine.data.amount = 10;
return ctx.success()
})
.requireFunctionEachTicks((ctx as Context) => {
//Set the variable named "amount" to 10
//"amount" can be replaced by anything else,
//as long as it match the ID specified in the bar gui element properties.
ctx.machine.data.amount = 10;
return ctx.success();
});
Bar elements are defined in json with : "type": "custommachinery:bar"
.
Properties
The bar gui element has 4 mandatory properties and 10 optional properties.
Mandatory properties
"type": "custommachinery:bar" //Mandatory to define a bar element.
Id
Name : id
id
Description :
A string that define the name of the number variable in the machine data that should be used for filling the bar.
If the machine data doesn't contain any number value with this id the number shown by the bar will always be 0.
The number variable must be at the higher level of the machine data :
// This is OK
machine.data.amount = 10
// This won't work
machine.data.something.amount = 10
Example :
The bar gui element will show the number variable named "amount" from the machine data :
"id": "amount"
Optional properties
Priority
Name : priority
priority
Description :
An integer property that define the priority of the Element to be rendered.
Elements with higher priority will be rendered first. If 2 elements are at the same position the first to be rendered will be under and the last will be above.
Default : 0
Example :
The element will be rendered under each element that have a priority lower than 1000.
"priority": 1000
Empty texture
Name : texture_empty
texture_empty
Description :
Point to a texture to use as the empty element texture. The texture must be loaded in-game with a resource pack or a loader mod.
The texture can be any size, if the texture size is different from the default size the width
and height
properties of the element will be automatically changed to fit the texture size if not provided.
If the width
and/or height
properties of the element are provided, the texture will be stretched to fit the dimensions of the element (it can render weirdly in that case).
Default :
"texture_empty": "custommachinery:textures/gui/base_energy_storage_empty"
Example :
"texture_empty": "namespace:textures/energy_element_texture_empty.png"
The element will search for a texture located in assets/namespace/textures/energy_element_texture_empty.png
The .png extension is mandatory.
Filled texture
Name : texture_filled
texture_filled
Description :
Point to a texture to use as the filled element texture. The texture must be loaded in-game with a resource pack or a loader mod.
The filled texture will be rendered on top on the empty texture, how much the filled texture overlap the empty texture is relative to the amount of energy inside the energy component.
Default :
"texture_filled": "custommachinery:textures/gui/base_energy_storage_filled"
Example :
"texture_filled": "namespace:textures/energy_element_texture_filled.png"
The element will search for a texture located in assets/namespace/textures/energy_element_texture_filled.png
The .png extension is mandatory.
Tooltips
Name : tooltips
tooltips
Description :
A list of Text components that will be shown as tooltips when the player mouse cursor hover the element.
Each tooltips of the list will be a new line.
Example :
Replace the default tooltips with a single line that say "Click me !" :
"tooltips": "Click me !"
Example
A bar with default texture, which show a number stored in the machine data with id "amount", which is between 0 and 10000 :
{
"type": "custommachinery:bar",
"x": 20,
"y": 20,
"id": "amount",
"max": 10000
}