Jump to content

Render Image over other players


Jaffaaaaa

Recommended Posts

13 minutes ago, Jaffaaaaa said:

Just to draw an image on a player (and scale to how big the player is)

I think the easiest way to do this would be through the Tessellator, by drawing a textured quad in front of the player in the 3D world. You would have to keep the square pointing towards the player in order for it to look good.

Steps for using the Tessellator can be found in my answer here.

Information on how the Tessellator works in general can be found here, but the exact steps are outdated, so refer to the above link for that.

A code example can be found here, but don't copy the stuff directly, because I got the translation code wrong (explained in the answer I posted).

 

This is actually kind of complicated, because there is no knowledge (at least not to my knowledge) of what is being rendered on the screen that you can hook into. No "rendering a player here" information for you to use. That means you either need to draw a 2D picture at the screen (x, y) of the 3D->2D projection of the player onto the screen, or do the above. I'm pretty sure the above is the way to go.

Fancy 3D Graphing Calculator mod, with many different coordinate systems.

Lightweight 3D/2D position/vector transformations library, also with support for different coordinate systems.

Link to comment
Share on other sites

10 hours ago, SerpentDagger said:

This is actually kind of complicated, because there is no knowledge (at least not to my knowledge) of what is being rendered on the screen that you can hook into. No "rendering a player here" information for you to use. That means you either need to draw a 2D picture at the screen (x, y) of the 3D->2D projection of the player onto the screen, or do the above. I'm pretty sure the above is the way to go.

Subscribe to RenderPlayeEvent.Post and do your rendering there. The render position of the player is passed in via the event.

Some tips:

Spoiler

Modder Support:

Spoiler

1. Do not follow tutorials on YouTube, especially TechnoVision (previously called Loremaster) and HarryTalks, due to their promotion of bad practice and usage of outdated code.

2. Always post your code.

3. Never copy and paste code. You won't learn anything from doing that.

4. 

Quote

Programming via Eclipse's hotfixes will get you nowhere

5. Learn to use your IDE, especially the debugger.

6.

Quote

The "picture that's worth 1000 words" only works if there's an obvious problem or a freehand red circle around it.

Support & Bug Reports:

Spoiler

1. Read the EAQ before asking for help. Remember to provide the appropriate log(s).

2. Versions below 1.11 are no longer supported due to their age. Update to a modern version of Minecraft to receive support.

 

 

Link to comment
Share on other sites

11 hours ago, DavidM said:

The render position of the player is passed in via the event.

Presumably that's still a 3D coordinate, in relation to the screen view, right? Or is it actually the 2D window coordinate? That doesn't seem as useful though, since you'd lose depth information, so I'd guess the first (not that my guess is very important, lol).

Fancy 3D Graphing Calculator mod, with many different coordinate systems.

Lightweight 3D/2D position/vector transformations library, also with support for different coordinate systems.

Link to comment
Share on other sites

5 hours ago, SerpentDagger said:

Presumably that's still a 3D coordinate, in relation to the screen view, right? Or is it actually the 2D window coordinate? That doesn't seem as useful though, since you'd lose depth information, so I'd guess the first (not that my guess is very important, lol).

Since the rendering of the player is done by OpenGL in a 3D space, the coordinate is a 3D coordinate in regards to the OpenGL rendering position (in relation to the screen view).

  • Thanks 1

Some tips:

Spoiler

Modder Support:

Spoiler

1. Do not follow tutorials on YouTube, especially TechnoVision (previously called Loremaster) and HarryTalks, due to their promotion of bad practice and usage of outdated code.

2. Always post your code.

3. Never copy and paste code. You won't learn anything from doing that.

4. 

Quote

Programming via Eclipse's hotfixes will get you nowhere

5. Learn to use your IDE, especially the debugger.

6.

Quote

The "picture that's worth 1000 words" only works if there's an obvious problem or a freehand red circle around it.

Support & Bug Reports:

Spoiler

1. Read the EAQ before asking for help. Remember to provide the appropriate log(s).

2. Versions below 1.11 are no longer supported due to their age. Update to a modern version of Minecraft to receive support.

 

 

Link to comment
Share on other sites

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.



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Update: I managed to make the item not disappear after crafting, but it doesn't remove any durability. import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.enchantment.Enchantments; import net.minecraft.enchantment.UnbreakingEnchantment; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public class NuggetHammer extends Item { private boolean damage; public NuggetHammer(Properties p_i48487_1_) { super(p_i48487_1_); } @Override public int getMaxDamage(ItemStack stack) { return 54 - 1; } public boolean isBarVisible(ItemStack stack) { return false; } @Override public ItemStack getContainerItem(ItemStack stack) { ItemStack copy = stack.copy(); copy.setCount(1); if (!this.damage) return copy; int unbreaking = EnchantmentHelper.getItemEnchantmentLevel(Enchantments.UNBREAKING, stack); for (int i = 0; i < unbreaking; i++) { if (UnbreakingEnchantment.shouldIgnoreDurabilityDrop(stack, unbreaking, random)) return copy; } copy.setDamageValue(stack.getDamageValue() + 1); if (copy.getDamageValue() > stack.getMaxDamage()) return ItemStack.EMPTY; return copy; } }  
    • I cannot find the answer anywhere public static void onPlayerConsumeXp(PlayerXpEvent.PickupXp event){ if(event.getEntity().getMainHandItem().getAllEnchantments().get(*value i need*) != null){ int shorthand = event.getEntity().getMainHandItem().getAllEnchantments().get(*value i need*); I am trying to get my custom enchant inside that *value i need*, I have tried using strings and Enchantments. does not show my enchantment. This is my enchantment class package net.test.tutorialmod.enchants; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.item.enchantment.Enchantment; import net.minecraft.world.item.enchantment.EnchantmentCategory; public class clever extends Enchantment { public clever(Rarity pRarity, EnchantmentCategory pCategory, EquipmentSlot... pApplicableSlots) { super(pRarity, pCategory, pApplicableSlots); } @Override public int getMaxLevel() { return 10; } @Override public int getMinLevel() { return 1; } }  What am i doing wrong?  
    • I had this same issue, it was one of the mods I had installed, some mods seem to break with certain versions of forge and cause others to break as well, trial and error different mods till you find the broken one.  
    • Hi, I'm asking for your help because I can't figure out how to make it so that when an item is crafted on the Crafting Table, it returns the item to the player's inventory and makes the item lose durability. I've tried looking everywhere without success. Like for the crafting of the cake which returns the empty bucket to the player, but also makes it lose durability.  
  • Topics

×
×
  • Create New...

Important Information

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