Stradaa_

HUDManager.java

Apr 17th, 2021
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.76 KB | None | 0 0
  1. package Gui.Hud;
  2.  
  3. import java.util.Collection;
  4. import java.util.Set;
  5.  
  6. import com.google.common.collect.Sets;
  7.  
  8. import Event.EventManager;
  9. import Event.EventTarget;
  10. import Event.impl.RenderEvent;
  11. import net.minecraft.client.Minecraft;
  12. import net.minecraft.client.gui.GuiChat;
  13. import net.minecraft.client.gui.inventory.GuiContainer;
  14.  
  15. public class HUDManager {
  16.  
  17. private HUDManager () {}
  18.  
  19. private static HUDManager instance = null;
  20.  
  21. public static HUDManager getInstance() {
  22.  
  23. if(instance != null) {
  24. return instance;
  25. }
  26. instance = new HUDManager();
  27. EventManager.register(instance);
  28.  
  29. return instance;
  30.  
  31. }
  32.  
  33. private Set<IRenderer> registeredRenderers = Sets.newHashSet();
  34. private Minecraft mc = Minecraft.getMinecraft();
  35.  
  36. public void register(IRenderer... renderers) {
  37. for(IRenderer render : renderers) {
  38. this.registeredRenderers.add(render);
  39. }
  40. }
  41.  
  42. public void unregister(IRenderer...renderers) {
  43. for(IRenderer render : renderers) {
  44. this.registeredRenderers.remove(render);
  45. }
  46. }
  47.  
  48. public Collection<IRenderer> getRegisteredRenderers() {
  49. return Sets.newHashSet(registeredRenderers);
  50. }
  51.  
  52. public void openConfigScreen() {
  53. mc.displayGuiScreen(new HUDConfigScreen(this));
  54. }
  55.  
  56. @EventTarget
  57. private void onRender(RenderEvent e) {
  58. if(mc.currentScreen == null || mc.currentScreen instanceof GuiContainer || mc.currentScreen instanceof GuiChat) {
  59. for(IRenderer renderer : registeredRenderers) {
  60. callRenderer(renderer);
  61. }
  62. }
  63. }
  64.  
  65. private void callRenderer(IRenderer renderer) {
  66. if(!renderer.isEnabled()) {
  67. return;
  68. }
  69.  
  70. ScreenPosition pos = renderer.load();
  71.  
  72. if(pos == null) {
  73. pos = ScreenPosition.fromRelativePosition(0.5, 0.5);
  74. }
  75.  
  76. renderer.render(pos);
  77. }
  78.  
  79. }
  80.  
Advertisement
Add Comment
Please, Sign In to add comment