ClientEvents.java 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. package me.km;
  2. import java.util.List;
  3. import me.km.networking.ItemStackDisplayGui;
  4. import me.km.networking.PlayerDisplayGui;
  5. import me.km.networking.PlayerHeadGui;
  6. import me.km.networking.StatusDisplayGui;
  7. import net.minecraft.item.Item;
  8. import net.minecraft.item.ArmorItem;
  9. import net.minecraft.item.ItemStack;
  10. import net.minecraft.nbt.CompoundNBT;
  11. import net.minecraft.util.text.ITextComponent;
  12. import net.minecraft.util.text.StringTextComponent;
  13. import net.minecraft.util.text.TextFormatting;
  14. import net.minecraftforge.api.distmarker.Dist;
  15. import net.minecraftforge.api.distmarker.OnlyIn;
  16. import net.minecraftforge.client.event.RenderGameOverlayEvent;
  17. import net.minecraftforge.event.entity.player.ItemTooltipEvent;
  18. import net.minecraftforge.eventbus.api.SubscribeEvent;
  19. import net.minecraftforge.fml.common.gameevent.TickEvent;
  20. @OnlyIn(Dist.CLIENT)
  21. public class ClientEvents
  22. {
  23. boolean once = true;
  24. @SubscribeEvent
  25. public void onClientTick(TickEvent.ClientTickEvent e)
  26. {
  27. if(e.phase == TickEvent.Phase.END)
  28. {
  29. StatusDisplayGui.INSTANCE.tick();
  30. }
  31. }
  32. @SubscribeEvent
  33. public void onRenderGui(RenderGameOverlayEvent.Pre e)
  34. {
  35. if(e.getType() == RenderGameOverlayEvent.ElementType.POTION_ICONS)
  36. {
  37. e.setCanceled(true);
  38. }
  39. }
  40. @SubscribeEvent
  41. public void onRenderGui(RenderGameOverlayEvent.Post e)
  42. {
  43. if(e.getType() == RenderGameOverlayEvent.ElementType.EXPERIENCE)
  44. {
  45. PlayerDisplayGui.INSTANCE.paint();
  46. StatusDisplayGui.INSTANCE.paint();
  47. PlayerHeadGui.INSTANCE.paint();
  48. ItemStackDisplayGui.INSTANCE.paint();
  49. }
  50. }
  51. // ToDo: Event is missing?
  52. //@SubscribeEvent
  53. //public void onRenderGui(FMLNetworkEvent.ClientDisconnectionFromServerEvent e)
  54. //{
  55. // PlayerDisplayGui.INSTANCE.clear();
  56. // StatusDisplayGui.INSTANCE.clear();
  57. // PlayerHeadGui.INSTANCE.clear();
  58. // ItemStackDisplayGui.INSTANCE.clear();
  59. // ItemStackDisplayGui.INSTANCE.setActive(false);
  60. //}
  61. @SubscribeEvent
  62. public void showingTooltip(ItemTooltipEvent e)
  63. {
  64. ItemStack stack = e.getItemStack();
  65. Item item = stack.getItem();
  66. if(item instanceof ArmorItem)
  67. {
  68. CompoundNBT com = stack.getTag();
  69. if(com != null && com.hasUniqueId("magic"))
  70. {
  71. int magic = com.getInt("magic");
  72. if(magic != 0)
  73. {
  74. List<ITextComponent> list = e.getToolTip();
  75. String s = TextFormatting.BLUE + " +";
  76. for(int i = 0; i < list.size(); i++)
  77. {
  78. if(list.get(i).getString().startsWith(s))
  79. {
  80. list.add(i, new StringTextComponent(String.format("%s +%d Magic Armor", TextFormatting.BLUE, magic)));
  81. break;
  82. }
  83. }
  84. }
  85. }
  86. }
  87. }
  88. }