September 2, 20169 yr This would not be to laggy as it would only be a few certain blocks that are I assume keeping a multiblock from constructing? Or something similar. You should make a static Map of BlockPos linked to the BlockPos of your TileEntity then after a certain amount of time has passed remove the ones linked to your TileEntites BlockPos. The rendering should then be done in the Event mentioned prior. Drawing as mentioned prior as well. VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
September 3, 20169 yr Author Is there any good tutorial for drawing lines on the screen in MC 1.10 with Tessellator? Which args should i use in the Vertexbuffer.begin(, ) for just drawing (red) lines?
September 3, 20169 yr Largely speaking, you need to look up how to use OpenGL / GL11. VertexBuffer's second paramter is the same one passed to GL11.Begin() (which typically you want to use GL11.GL_QUADS). Last time I tried using lines I had trouble. Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
September 4, 20169 yr Author And the other arg in VertexBuffer.begin(int glMode, VertexFormat format)??
September 4, 20169 yr And the other arg in VertexBuffer.begin(int glMode, VertexFormat format)?? Try DefaultVertexFormat... VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
September 4, 20169 yr WorldRenderer has become VertexBuffer and instead of addVertex it is the way diesieben said. You also must call vb.startDrawing(glnum, DefaultVertexFormats...) mess around with that last var because i do not know what it would be in this case. And which one exactly? VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
September 6, 20169 yr Author Hopefully the last Question in this Topic: Actually I get almost everything running, just the lines act strange depending on the direktion the player looking. Thats not what I want This is what I want Does anybody know how to fix this?
September 6, 20169 yr Hopefully the last Question in this Topic: Actually I get almost everything running, just the lines act strange depending on the direktion the player looking. Thats not what I want This is what I want Does anybody know how to fix this? Could you post your current code? VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
September 6, 20169 yr Author public class MultiAssemblerTESR extends TileEntitySpecialRenderer<TileEntityMultiAssembler> { @Override public void renderTileEntityAt(TileEntityMultiAssembler te, double x, double y, double z, float partialTicks, int destroyStage) { int teposX = te.getPos().getX(); int teposY = te.getPos().getY(); int teposZ = te.getPos().getZ(); Map list = te.getBlocksWithMarkersList(); Entity entity = this.rendererDispatcher.entity; double distance = te.getDistanceSq(entity.posX, entity.posY, entity.posZ); if (distance < 100.0 && !list.isEmpty()) { Iterator iterator = list.entrySet().iterator(); Entry entry; do { entry = (Entry)iterator.next(); BlockPos actualpos = (BlockPos) entry.getKey(); drawCubeWithCrossesAtPos(x, y, z, actualpos.getX() - teposX, actualpos.getY() - teposY, actualpos.getZ() - teposZ); } while (iterator.hasNext()); } } public static void drawCubeWithCrossesAtPos(double x, double y, double z, int addx, int addy, int addz) { GL11.glPushMatrix(); GlStateManager.color(1F, 0F, 0F); GlStateManager.glLineWidth(10F); GL11.glTranslated(x + addx, y + addy, z + addz); Tessellator tessellator = Tessellator.getInstance(); VertexBuffer worldRenderer = tessellator.getBuffer(); int rendertype = GL11.GL_LINE_STRIP; //CrossNorth worldRenderer.begin(rendertype, DefaultVertexFormats.POSITION); worldRenderer.pos(0, 0, -0.001).endVertex(); worldRenderer.pos(1, 1, -0.001).endVertex(); worldRenderer.pos(1, 0, -0.001).endVertex(); worldRenderer.pos(0, 1, -0.001).endVertex(); tessellator.draw(); //CrossWest worldRenderer.begin(rendertype, DefaultVertexFormats.POSITION); worldRenderer.pos(-0.001, 0, 1).endVertex(); worldRenderer.pos(-0.001, 1, 0).endVertex(); worldRenderer.pos(-0.001, 0, 0).endVertex(); worldRenderer.pos(-0.001, 1, 1).endVertex(); tessellator.draw(); //CrossSouth worldRenderer.begin(rendertype, DefaultVertexFormats.POSITION); worldRenderer.pos(1, 0, 1.001).endVertex(); worldRenderer.pos(0, 1, 1.001).endVertex(); worldRenderer.pos(0, 0, 1.001).endVertex(); worldRenderer.pos(1, 1, 1.001).endVertex(); tessellator.draw(); //CrossEast worldRenderer.begin(rendertype, DefaultVertexFormats.POSITION); worldRenderer.pos(1.001, 0, 0).endVertex(); worldRenderer.pos(1.001, 1, 1).endVertex(); worldRenderer.pos(1.001, 0, 1).endVertex(); worldRenderer.pos(1.001, 1, 0).endVertex(); tessellator.draw(); //CrossUp worldRenderer.begin(rendertype, DefaultVertexFormats.POSITION); worldRenderer.pos(1, 1.001, 1).endVertex(); worldRenderer.pos(0, 1.001, 0).endVertex(); worldRenderer.pos(0, 1.001, 1).endVertex(); worldRenderer.pos(1, 1.001, 0).endVertex(); tessellator.draw(); //CrossDown worldRenderer.begin(rendertype, DefaultVertexFormats.POSITION); worldRenderer.pos(1, -0.001, 1).endVertex(); worldRenderer.pos(0, -0.001, 0).endVertex(); worldRenderer.pos(0, -0.001, 1).endVertex(); worldRenderer.pos(1, -0.001, 0).endVertex(); tessellator.draw(); //RestUp worldRenderer.begin(rendertype, DefaultVertexFormats.POSITION); worldRenderer.pos(1, 1.001, 1).endVertex(); worldRenderer.pos(1, 1.001, 0).endVertex(); worldRenderer.pos(0, 1.001, 0).endVertex(); worldRenderer.pos(0, 1.001, 1).endVertex(); worldRenderer.pos(1, 1.001, 1).endVertex(); tessellator.draw(); //RestDown worldRenderer.begin(rendertype, DefaultVertexFormats.POSITION); worldRenderer.pos(1, -0.001, 1).endVertex(); worldRenderer.pos(1, -0.001, 0).endVertex(); worldRenderer.pos(0, -0.001, 0).endVertex(); worldRenderer.pos(0, -0.001, 1).endVertex(); worldRenderer.pos(1, -0.001, 1).endVertex(); tessellator.draw(); GL11.glPopMatrix(); } }
September 6, 20169 yr Does this actually give you the correct position? actualpos.getX() - teposX, actualpos.getY() - teposY, actualpos.getZ() - teposZ Why not just pass the BlockPos#getX() ect? *Edit Also only call tessellator.draw() once at the end. VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
September 6, 20169 yr Author Because I render more than 1 Block and I need to set their position referenced to the TE
September 6, 20169 yr Because I render more than 1 Block and I need to set their position referenced to the TE te.getPos().getX() == x, te.getPos().getY() == y, and te.getPos().getZ() == z. If so you would no do this GL11.glTranslated(x + addx, y + addy, z + addz); Just some math x + (actualpos.getX() - teposX), y + (actualpos.getY() - teposY), and z + (actualpos.getZ() - teposZ) should = actualpos.getX(), actualpos.getY(), and actualpos.getZ() VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
September 6, 20169 yr ok, just some unnecessary math, but this would fix my rendering problem I don't think the math would, but did you try my second suggestion. But amended to also only calling begin once. VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
September 6, 20169 yr I think, but I am not sure, that you are running into Z-Fighting: the lines you are drawing occur in the same z-depth (distance from the camera) as the objects you're drawing them "over" so the GPU can't correctly sort their order. Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
September 6, 20169 yr Rather than drawing exactly at the coordinates (e.g. (1, 1, 1 ) draw slightly offset (e.g. 1.001, 1.001, 1.001 ). You'll want to draw larger than the block and you don't care if that direction is towards or away from the camera (if it's away, then it's behind, and won't draw anyway). Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
September 7, 20169 yr its my own block, it is a TESR and it drow over all type of blocks I'm not sure you understood what Draco was saying. // Instead of this worldRenderer.pos(0, 0, -0.001).endVertex(); worldRenderer.pos(1, 1, -0.001).endVertex(); worldRenderer.pos(1, 0, -0.001).endVertex(); worldRenderer.pos(0, 1, -0.001).endVertex(); // Do this worldRenderer.pos(-0.001, -0.001, -0.001).endVertex(); worldRenderer.pos(1.001, 1.001, -0.001).endVertex(); worldRenderer.pos(1.001, -0.001, -0.001).endVertex(); worldRenderer.pos(-0.001, 1.001, -0.001).endVertex(); VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.