blob: 250686686f5f15831c710ad0c14c726833f10125 (
plain)
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
|
package tectech.util;
import java.util.HashSet;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import org.apache.commons.lang3.tuple.Pair;
import org.lwjgl.opengl.GL11;
import com.gtnewhorizon.gtnhlib.client.renderer.CapturingTessellator;
import com.gtnewhorizon.gtnhlib.client.renderer.TessellatorManager;
import com.gtnewhorizon.gtnhlib.client.renderer.vertex.DefaultVertexFormat;
// Ugly hack to wake up angelica/hodgepodge to update the texture by fake rendering out a block
public class TextureUpdateRequester {
private final HashSet<Pair<Block, Integer>> blocks = new HashSet<>();
public void add(Block block, int meta) {
blocks.add(Pair.of(block, meta));
}
// Using capturing tesselator just to make sure we dont render anything out
public void requestUpdate() {
GL11.glPushMatrix();
TessellatorManager.startCapturing();
CapturingTessellator tess = (CapturingTessellator) TessellatorManager.get();
FaceCulledRenderBlocks renderer = new FaceCulledRenderBlocks(Minecraft.getMinecraft().theWorld);
renderer.setFaceVisibility(new FaceVisibility());
for (Pair<Block, Integer> block : blocks) {
renderer.renderBlockAsItem(block.getLeft(), block.getRight(), 1f);
}
tess.setTranslation(0, 0, 0);
TessellatorManager.stopCapturingToBuffer(DefaultVertexFormat.POSITION_TEXTURE_NORMAL);
GL11.glPopMatrix();
}
}
|