-
Notifications
You must be signed in to change notification settings - Fork 10
Texture Types
Fusion adds five new texture types: base, connecting, continuous, random, and scrolling. Each will be explained in the respective section below, as well as how to use Fusion's texture types.
Similar to vanilla's animated textures, Fusion uses the .mcmeta file to specify texture types and their configuration.
For example, if we have a texture file flowing_magma.png, simply create a flowing_magma.png.mcmeta. Inside the .mcmeta file, simply create a new section under the fusion key. The texture type and additional data can then be specified in the section.
{
"fusion": {
"type": "<texture type>",
<configuration>
}
}Note
Most of Fusion's texture types can be used in combination with the vanilla animated texture data.
Fusion adds some common properties which can be used by all texture types. In case you want to use the properties on their own, the base identifier can be used.
The following base properties are available:
| key | values | default | description |
|---|---|---|---|
emissive |
true or false
|
false |
Whether the texture should always appear to be fully bright, i.e. as if at a light level of 15 |
render_type |
opaque, cutout, translucent
|
None | Overrides the render type to the set value rather than what is hardcoded for the block |
tinting |
biome_grass, biome_foliage, biome_water
|
None | Overrides the texture tinting to the set method rather than what is hardcoded for the block. (usually no tinting, or think blocks like grass, vines, or leaves) |
Important
The emissive and render_type properties must be used in combination with the base model type. For more info on the base model type see Base Models.
The render_type property can allow the use of transparent textures on otherwise opaque blocks. Setting the render type to opaque would mean pixels in the texture will be rendered fully opaque, to cutout would mean every pixel in the texture will be either fully transparent or fully opaque, and translucent would mean pixels will be rendered with the transparency in the texture.
The tinting property can tint textures based on where a block is placed. Normally this is hardcoded per block and only certain blocks have a tinting method set. Examples would be the grass block, most foliage like leaves, vines, or grass, or water.
Setting the value to biome_grass would make it use the same tinting method as the grass block, to biome_foliage the same as for foliage, and biome_water the same as water.
Here is an example of what the metadata file for a base texture could look like:
{
"fusion": {
"type": "base",
"emissive": true,
"render_type": "cutout",
"tinting": "biome_grass"
}
}Connecting textures are textures with a special layout which allows them to connect to other blocks when combined with the connecting model type. Fusion offers 5 connected texture layouts: simple, full, compact, horizontal, vertical.
Important
The connecting texture type must be used in combination with the connecting model type. For more info on the connecting model type see Connecting Models.
Tip
Templates for all the connecting texture layouts can be found in the Fusion Examples repository.
The simple layout allows textures to connect to their four direct neighbors. This is ideal for textures which aren't affected by diagonal connections.
{
"fusion": {
"type": "connecting",
"layout": "simple"
}
} |
|
The full layout allows textures to connect to all eight neighboring blocks, so also diagonally. It is the most extensive layout and thus also allows for the most control over connections. Most of the other layouts can also be achieved using the full layout, however it is advisable to use a simpler layout if possible to avoid duplicate tiles.
{
"fusion": {
"type": "connecting",
"layout": "full"
}
} |
|
The pieced layout does not quite have the same capabilities as the full or simple layouts, but it remains able to create a bordered texture whilst requiring far fewer tiles. It does so by piecing together corners from multiple tiles.
{
"fusion": {
"type": "connecting",
"layout": "pieced"
}
} |
|
The compact layout consists of only 5 tiles and is intended to give a seemingly complex connection pattern with little effort. It contains an end tile, a center tile, a vertical section, a horizontal section and a cross section.
{
"fusion": {
"type": "connecting",
"layout": "compact"
}
} |
|
The horizontal layout allows textures to connect just horizontally.
{
"fusion": {
"type": "connecting",
"layout": "horizontal"
}
} |
|
The vertical layout allows textures to connect just vertically.
{
"fusion": {
"type": "connecting",
"layout": "vertical"
}
} |
|
The overlay layout is intended for block overlays and works by overlaying multiple tiles to get the correct connections.
{
"fusion": {
"type": "connecting",
"layout": "overlay"
}
} |
|
Continuous textures are textures which stretch over multiple blocks. This allows for patterns larger than single block.
Important
The continuous texture type must be used in combination with the base model type. For more info on the base model type see Base Models.
The continuous texture type uses the identifier continuous and has two properties:
| key | values | default | description |
|---|---|---|---|
rows |
integer, >0 <=10 | 1 |
The number of rows in the image, think of it as the number of blocks the texture is wide before it repeats |
columns |
integer, >0 <=10 | 1 |
The number of columns in the image, think of it as the number of blocks the texture is tall before it repeats |
Here is an example of stone bricks texture which extends over multiple blocks.
{
"fusion": {
"type": "continuous",
"rows": 2,
"columns": 3
}
} |
|
In Minecraft, the example would look like this:
Random textures are a type of texture which has an image consisting of multiple tiles from which one is chosen at random.
Important
The random texture type must be used in combination with the base model type. For more info on the base model type see Base Models.
The random texture type uses the identifier random and has the following properties:
| key | values | default | description |
|---|---|---|---|
rows |
integer, >0 <=10 | 1 |
The number of rows of tiles in the image |
columns |
integer, >0 <=10 | 1 |
The number of columns of tiles in the image |
seed |
integer | none | The seed used to generate random numbers when picking which tile to use |
The seed option can be used to force two textures to use the same or different randomness. If seed is not specified, it is left up to Fusion.
Here is an example of tuff bricks with some random variations.
{
"fusion": {
"type": "random",
"rows": 2,
"columns": 3
}
} |
|
In Minecraft, the example would look like this:
Scrolling textures are a type of animated texture similar to vanilla's animated textures. However, instead of specifying each frame individually, the frame 'scrolls' over the texture.
The scrolling texture type uses the identifier scrolling and has the following options:
| key | values | default | description |
|---|---|---|---|
from |
top_left, top_right, bottom_left, bottom_right
|
top_left |
Where the frame starts |
to |
top_left, top_right, bottom_left, bottom_right
|
bottom_left |
Where the frame ends |
frame_width |
integer, >0 | 16 |
Width of the frame |
frame_height |
integer, >0 | 16 |
Height of the frame |
frame_time |
integer, >0 | 10 |
Duration each frame is displayed for in ticks, 1 second = 20 ticks |
loop_type |
reset, reverse
|
reset |
Loop type, 'reset' restarts from the start position, 'reverse' displays the frames in reverse order |
loop_pause |
integer, >=0 | 0 |
Pause duration between loops in ticks, 1 second = 20 ticks |
Here is an example of the scrolling texture type used to create a conveyor belt:
{
"fusion": {
"type": "scrolling",
"from": "top_left",
"to": "bottom_left",
"frame_time": 10,
"frame_width": 16,
"frame_height": 16,
"loop_type": "reset",
"loop_pause": 0
}
} |
|