Skip to content

Commit d99d129

Browse files
committed
BW Rendering work
1 parent e43aeb3 commit d99d129

File tree

3 files changed

+33
-3
lines changed
  • minecraft
    • 1.7/src/main/java/nova/core/wrapper/mc/forge/v17/wrapper
    • 1.8/src/main/java/nova/core/wrapper/mc/forge/v18/wrapper/block/backward

3 files changed

+33
-3
lines changed

minecraft/1.7/src/main/java/nova/core/wrapper/mc/forge/v17/wrapper/block/backward/BWBlock.java

+17
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
package nova.core.wrapper.mc.forge.v17.wrapper.block.backward;
2222

2323
import net.minecraft.client.renderer.RenderBlocks;
24+
import net.minecraft.client.renderer.Tessellator;
2425
import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher;
2526
import net.minecraft.init.Blocks;
2627
import net.minecraft.item.Item;
@@ -48,8 +49,12 @@
4849
import nova.core.wrapper.mc.forge.v17.wrapper.block.world.BWWorld;
4950
import nova.internal.core.Game;
5051
import org.apache.commons.math3.geometry.euclidean.threed.Vector3D;
52+
import org.lwjgl.BufferUtils;
53+
import org.lwjgl.opengl.GL11;
5154

55+
import java.nio.DoubleBuffer;
5256
import java.util.ArrayList;
57+
import java.util.Arrays;
5358
import java.util.List;
5459
import java.util.Optional;
5560
import java.util.stream.Collectors;
@@ -103,8 +108,20 @@ public BWBlock(net.minecraft.block.Block block, World world, Vector3D pos) {
103108
components.add(new StaticRenderer())
104109
.onRender(model -> {
105110
model.addChild(new CustomModel(self -> {
111+
GL11.glPushMatrix();
112+
DoubleBuffer buffer = BufferUtils.createDoubleBuffer(4 * 4);
113+
double[] flatArray = Arrays.stream(self.matrix.getMatrix().getData())
114+
.flatMapToDouble(Arrays::stream)
115+
.toArray();
116+
buffer.put(flatArray);
117+
buffer.position(0);
118+
GL11.glMultMatrix(buffer);
119+
IBlockAccess backup = RenderBlocks.getInstance().blockAccess;
120+
RenderBlocks.getInstance().blockAccess = getMcBlockAccess();
106121
RenderBlocks.getInstance()
107122
.renderBlockByRenderType(mcBlock, x(), y(), z());
123+
RenderBlocks.getInstance().blockAccess = backup;
124+
GL11.glPopMatrix();
108125
}));
109126
});
110127
getTileEntity().ifPresent(tileEntity -> {

minecraft/1.7/src/main/java/nova/core/wrapper/mc/forge/v17/wrapper/item/BWItem.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public BWItem(net.minecraft.item.Item item, int meta, NBTTagCompound tag) {
5858
components.add(new StaticRenderer())
5959
.onRender(model -> {
6060
model.addChild(new CustomModel(self -> {
61-
Tessellator.instance.draw();
61+
// Tessellator.instance.draw();
6262
GL11.glPushMatrix();
6363
DoubleBuffer buffer = BufferUtils.createDoubleBuffer(4 * 4);
6464
double[] flatArray = Arrays.stream(self.matrix.getMatrix().getData())
@@ -69,7 +69,7 @@ public BWItem(net.minecraft.item.Item item, int meta, NBTTagCompound tag) {
6969
GL11.glMultMatrix(buffer);
7070
RenderItem.getInstance().doRender(fakeEntity, 0, 0, 0, 0, 0);
7171
GL11.glPopMatrix();
72-
Tessellator.instance.startDrawingQuads();
72+
// Tessellator.instance.startDrawingQuads();
7373
}));
7474
});
7575
}

minecraft/1.8/src/main/java/nova/core/wrapper/mc/forge/v18/wrapper/block/backward/BWBlock.java

+14-1
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,12 @@
5252
import nova.core.wrapper.mc.forge.v18.wrapper.block.world.BWWorld;
5353
import nova.internal.core.Game;
5454
import org.apache.commons.math3.geometry.euclidean.threed.Vector3D;
55+
import org.lwjgl.BufferUtils;
56+
import org.lwjgl.opengl.GL11;
5557

58+
import java.nio.DoubleBuffer;
5659
import java.util.ArrayList;
60+
import java.util.Arrays;
5761
import java.util.List;
5862
import java.util.Optional;
5963
import java.util.stream.Collectors;
@@ -107,8 +111,17 @@ public BWBlock(net.minecraft.block.Block block, World world, Vector3D pos) {
107111
components.add(new StaticRenderer())
108112
.onRender(model -> {
109113
model.addChild(new CustomModel(self -> {
114+
GL11.glPushMatrix();
115+
DoubleBuffer buffer = BufferUtils.createDoubleBuffer(4 * 4);
116+
double[] flatArray = Arrays.stream(self.matrix.getMatrix().getData())
117+
.flatMapToDouble(Arrays::stream)
118+
.toArray();
119+
buffer.put(flatArray);
120+
buffer.position(0);
121+
GL11.glMultMatrix(buffer);
110122
Minecraft.getMinecraft().getBlockRendererDispatcher()
111123
.renderBlock(blockState(), new BlockPos(x(), y(), z()), getMcBlockAccess(), Tessellator.getInstance().getWorldRenderer());
124+
GL11.glPopMatrix();
112125
}));
113126
});
114127
getTileEntity().ifPresent(tileEntity -> {
@@ -119,7 +132,7 @@ public BWBlock(net.minecraft.block.Block block, World world, Vector3D pos) {
119132
}));
120133
});
121134
});
122-
135+
123136
WrapperEvent.BWBlockCreate event = new WrapperEvent.BWBlockCreate(world, pos, this, mcBlock);
124137
Game.events().publish(event);
125138
}

0 commit comments

Comments
 (0)