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

Posted

So I have a Disc item (basically a Frisbee) that I can throw.  It has its own ThrownEntity and Renderer files.  My problem is when I throw the disc it looks just like a circle getting smaller as it moves away.  I want it to look more flat, like a Frisbee would when you throw it.  I messed around with some of the values in the renderer and got it to "go flat" but then it also becomes impossible to see as it has no thickness.

 

Anyone have any experience with doing this?

Rotate it slightly so that it isn't 100% horizontal, then it shouldn't be so "thin" as to vanish.

Are you using a custom model for your disk or is the disk just simply drawn as lines using GL11 methods in the render method? :)

 

Also, showing your code where it seems to vanish would help the GL11 proficient folks here able to spot the error in your code much more easily than by the use of mind reading machines. (Besides I think draco's MentalCodeReading hat is out of order atm :P )

If you guys dont get it.. then well ya.. try harder...

  • Author

private void func_77026_a(Tessellator par1Tessellator, Icon par2Icon)
    {
        float f = par2Icon.getMinU();
        float f1 = par2Icon.getMaxU();
        float f2 = par2Icon.getMinV();
        float f3 = par2Icon.getMaxV();
        float f4 = 1.0F;
        float f5 = 0.5F;
        float f6 = 0.25F;
        GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F);
        GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F);
        par1Tessellator.startDrawingQuads();
        par1Tessellator.setNormal(0.0F, 1.0F, 0.0F);
        par1Tessellator.addVertexWithUV((double)(0.0F - f5), (double)(0.0F - f6), 0.0D, (double)f, (double)f3);
        par1Tessellator.addVertexWithUV((double)(f4 - f5), (double)(0.0F - f6), 0.0D, (double)f1, (double)f3);
        par1Tessellator.addVertexWithUV((double)(f4 - f5), (double)(f4 - f6), 0.0D, (double)f1, (double)f2);
        par1Tessellator.addVertexWithUV((double)(0.0F - f5), (double)(f4 - f6), 0.0D, (double)f, (double)f2);
        par1Tessellator.draw();
    }

 

So, if I take out the 180.0F from the rotateY I was able to get it to go flat.  I seem to get the same response if I add 180.0F in front of the rotateX.  I am not sure this is the best method or not.  I took this render code from the RenderSnowball code.

  • Author

I've tried all sorts of combinations of numbers messing with rotateY and rotateX.  I can get "close" to what I would be looking for, but no real success.  Part of the problem seems to be that the item is completely flat when thrown.  Is there a way to give it thickness so that when it is flat like a frisbee you can still see it?

Hi

 

Minecraft has a method to do this (take a 2D texture and turn it into a "slice" with thickness), you should be able to adapt it without too much trouble..?

 

ItemRenderer:
    /**
     * Renders an item held in hand as a 2D texture with thickness
     */
    public static void renderItemIn2D(Tessellator par0Tessellator, float par1, float par2, float par3, float par4, int par5, int par6, float thickness)

 

see also

http://greyminecraftcoder.blogspot.com.au/2013/08/rendering-dropped-items.html

http://greyminecraftcoder.blogspot.com.au/2013/08/rendering-first-person-view-items.html

 

-TGG

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.