Jump to content

Recommended Posts

Posted

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.

Posted

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?

Posted

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.

Posted

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.

Posted

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?

Posted

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.

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

}
}

Posted

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.

Posted

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.

Posted

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.

Posted

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.

Posted

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.

Posted

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...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Reach Out To Rapid Digital: What sapp Info: +1 41 4 80 7 14 85 Email INFO: rap iddi gita lrecov ery @ exe cs. com Hello, my name is Jayson, and I’m 35 years old from the United Kingdom. My family and I recently endured an incredibly challenging experience that I wouldn’t wish on anyone. We became victims of a cryptocurrency investment fraud scheme that saw us lose a staggering $807,000 in USDT and Bitcoins. The fraudsters had created a convincing facade, and we were lured into investing, only to discover later that the platform was a complete scam. We were left devastated, not just financially, but emotionally, as we had trusted these people and believed in the legitimacy of the investment. After the initial shock wore off, we desperately searched for ways to recover the lost funds. It seemed like an impossible task, and we felt as though there was no hope. That’s when, by sheer luck, we stumbled across a post about Rapid Digital Recovery, a cryptocurrency and funds recovery organization with a proven track record in cybersecurity and fraud recovery. We decided to reach out to them, and from the first interaction, we were impressed with their professionalism and transparency. They explained the recovery process in detail and reassured us that they had the skills and expertise to track down the perpetrators and recover our funds. This gave us a renewed sense of hope, something we hadn’t felt in months. What truly stood out during our experience with Rapid Digital Recovery was their dedication to the recovery process. The team went above and beyond, using sophisticated tracking tools and cyber forensics to gather critical information. Within a matter of weeks, they had successfully located the funds and traced the scam back to the fraudsters responsible. They worked with the authorities to ensure the criminals were held accountable for their actions. To our relief, the team at Rapid Digital Recovery was able to recover every single penny we had lost. The funds were returned in full, and the sense of closure we felt was invaluable. We couldn’t have imagined such a positive outcome in the early stages of our recovery journey, and we are deeply grateful for the work they did. If you ever find yourself in a similar situation, I highly recommend contacting Rapid Digital Recovery. Their expertise, transparency, and dedication to their clients make them the go-to choice for anyone seeking to recover lost cryptocurrency or funds. They truly gave us back our financial future.  
    • This is my first time modding anything, so maybe just skill issue. I'm using Forge 54.0.12 and Temurin 21.0.5+11-LTS I wanted to create a custom keybind and to check whether it works I'd like to send a chat message. I tried using Minecraft.getInstance().player.sendSystemMessage(Component.literal("test")); but IntelliJ couldnt resolve sendSystemMessage(...). Since I saw people using it in earlier versions, I tried the same thing with 1.20.6(- 50.1.0), where it works fine, now I can't figure out if this is intentional and whether there are other options for sending chat messages. On that note, is there more documentation than https://docs.minecraftforge.net/en/1.21.x/? It seems very incomplete compared to something like the Oracle Java docs
    • Hi, i'm having this error and I wanna fix it. we try: -Reload drivers -Eliminate .minecraft -Eliminate Java -Restart launcher -Verify if minecraft is using gpu -Mods  in .minecraft is empty -Install the latest and recomended version of forge idk what i have to do, help me pls. the lastest log is: https://mclo.gs/WAMao8x  
    • Read the FAQ, Rule #2. (https://forums.minecraftforge.net/topic/125488-rules-and-frequently-asked-questions-faq/)  
  • Topics

×
×
  • Create New...

Important Information

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