Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

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.

  • 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?

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.

  • Author

And the other arg in VertexBuffer.begin(int glMode, VertexFormat format)??

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.

  • 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

t66fppyw.png

This is what I want

 

safee8ny.png

 

Does anybody know how to fix this?

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

t66fppyw.png

This is what I want

 

safee8ny.png

 

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.

  • 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();

}
}

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.

  • Author

Because I render more than 1 Block and I need to set their position referenced to the TE

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.

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.

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.

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.

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

Important Information

By using this site, you agree to our Terms of Use.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.