-
Notifications
You must be signed in to change notification settings - Fork 52
Expand file tree
/
Copy pathICTMTexture.java
More file actions
63 lines (53 loc) · 1.69 KB
/
ICTMTexture.java
File metadata and controls
63 lines (53 loc) · 1.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package team.chisel.ctm.api.texture;
import java.util.Collection;
import java.util.List;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import net.minecraft.client.renderer.block.model.BakedQuad;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.resources.ResourceLocation;
import team.chisel.ctm.client.util.BlockRenderLayer;
/**
* Represents a CTM Texture/resource
*/
@ParametersAreNonnullByDefault
public interface ICTMTexture<T extends ITextureType> {
/**
* Transforms a quad to conform with this texture
*
* @param quad
* The Quad
* @param context
* The Context NULL CONTEXT MEANS INVENTORY
* @param quadGoal
* Amount of quads that should be made
* @return A List of Quads
*/
List<BakedQuad> transformQuad(BakedQuad quad, @Nullable ITextureContext context, int quadGoal);
Collection<ResourceLocation> getTextures();
public void addSprite(TextureAtlasSprite sprite);
/**
* Gets the block render type of this texture
*
* @return The Rendertype of this texture
*/
T getType();
/**
* Gets the texture for a particle
*
* @return The Texture for a particle
*/
TextureAtlasSprite getParticle();
/**
* The layer this texture requires. The layers will be prioritized for a face in the order:
* <ul>
* <li>{@link BlockRenderLayer#TRANSLUCENT}</li>
* <li>{@link BlockRenderLayer#CUTOUT}</li>
* <li>{@link BlockRenderLayer#SOLID}</li>
* </ul>
*
* @return The layer of this texture.
*/
@Nullable
BlockRenderLayer getLayer();
}