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
64
65
66
67
68
69
|
package gregtech.common.render;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import gregtech.GT_Mod;
import gregtech.api.interfaces.ITexture;
/**
* <p>
* Lets Multiple ITextures Render overlay over each other.<
* </p>
* <p>
* I should have done this much earlier...
* </p>
*/
public class GT_MultiTexture extends GT_TextureBase implements ITexture {
protected final ITexture[] mTextures;
public static GT_MultiTexture get(ITexture... aTextures) {
return GT_Mod.instance.isClientSide() ? new GT_MultiTexture(aTextures) : null;
}
protected GT_MultiTexture(ITexture... aTextures) {
mTextures = aTextures;
}
@Override
public void renderXPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) {
for (ITexture tTexture : mTextures)
if (tTexture != null && tTexture.isValidTexture()) tTexture.renderXPos(aRenderer, aBlock, aX, aY, aZ);
}
@Override
public void renderXNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) {
for (ITexture tTexture : mTextures)
if (tTexture != null && tTexture.isValidTexture()) tTexture.renderXNeg(aRenderer, aBlock, aX, aY, aZ);
}
@Override
public void renderYPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) {
for (ITexture tTexture : mTextures)
if (tTexture != null && tTexture.isValidTexture()) tTexture.renderYPos(aRenderer, aBlock, aX, aY, aZ);
}
@Override
public void renderYNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) {
for (ITexture tTexture : mTextures)
if (tTexture != null && tTexture.isValidTexture()) tTexture.renderYNeg(aRenderer, aBlock, aX, aY, aZ);
}
@Override
public void renderZPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) {
for (ITexture tTexture : mTextures)
if (tTexture != null && tTexture.isValidTexture()) tTexture.renderZPos(aRenderer, aBlock, aX, aY, aZ);
}
@Override
public void renderZNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) {
for (ITexture tTexture : mTextures)
if (tTexture != null && tTexture.isValidTexture()) tTexture.renderZNeg(aRenderer, aBlock, aX, aY, aZ);
}
@Override
public boolean isValidTexture() {
return true;
}
}
|