Welcome on MasterOf13FPS! MasterOf13FPS

Register today or sign up if you are already a member and never miss any cool content again :)

Custom Animated ArmorHUD

MasterOf13FPS

Administrator
Staff member
Administrator
MasterOf13FPS
Joined
Jul 11, 2020
Messages
0
Reaction score
26
Points
0
Hier habe ich für euch meine alte ArmorHUD. Sie ist animiert und hinter dem Rüstungs Icon werden zwei Rects gedrawt.

[HIDE]https://pastebin.com/raw/MuFurUwG[/HIDE]
 
wenn ich die boots rendern möchte bekomme ich einen Fehler
Code:
java.lang.ArrayIndexOutOfBoundsException: 4
    at me.snqwii.gui.armorhud.ArmorRender.render(ArmorRender.java:36)
    at net.minecraft.client.gui.GuiIngame.func_175180_a(GuiIngame.java:357)
    at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1340)
    at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1034)
    at net.minecraft.client.Minecraft.run(Minecraft.java:415)
    at net.minecraft.client.main.Main.main(Main.java:114)
    at Start.main(Start.java:11)

ArmorRender.java:36
Code:
        stack = mc.thePlayer.inventory.armorInventory[index];

GuiIngame.java:357
Code:
            armor4.render();

Wie ich es davor aufrufe:

Code:
public static ArmorRender armor4 = new ArmorRender(200, 4);
 
wenn ich die boots rendern möchte bekomme ich einen Fehler
Code:
java.lang.ArrayIndexOutOfBoundsException: 4
    at me.snqwii.gui.armorhud.ArmorRender.render(ArmorRender.java:36)
    at net.minecraft.client.gui.GuiIngame.func_175180_a(GuiIngame.java:357)
    at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1340)
    at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1034)
    at net.minecraft.client.Minecraft.run(Minecraft.java:415)
    at net.minecraft.client.main.Main.main(Main.java:114)
    at Start.main(Start.java:11)

ArmorRender.java:36
Code:
        stack = mc.thePlayer.inventory.armorInventory[index];

GuiIngame.java:357
Code:
            armor4.render();

Wie ich es davor aufrufe:

Code:
public static ArmorRender armor4 = new ArmorRender(200, 4);
Ruf es mit public ArrayList<Component> components = Lists.newArrayList(new ArmorHudComp()); auf
 
Und wie rendere ich es dann
Erstell dir eine neue Klasse nenn sie am besten "HUD". Registrier sie in Module Management. Dann ruf es auf mit
Code:
public ArrayList<Component> components = Lists.newArrayList(new ArmorHudComp());
Erstell dir dann am besten ein HUDEvent und fügst es dein Event System hinzu.
Dann musst du noch in der HUD Klasse das ganze callen
Code:
@Override
   public void onEvent(Event e) {
       if (e instanceof EventHUD) {
           EventHUD event = (EventHUD) e;
           if (!mc.gameSettings.showDebugInfo) {
               this.components.forEach(Component::render);
           }
       }
       super.onEvent(e);
   }
Dann das Event in GuiIngame callen (hab es circa bei der section mit der overlayMessage gecalled)
Code:
new EventHUD().....
 
Erstell dir eine neue Klasse nenn sie am besten "HUD". Registrier sie in Module Management. Dann ruf es auf mit
Code:
public ArrayList<Component> components = Lists.newArrayList(new ArmorHudComp());
Erstell dir dann am besten ein HUDEvent und fügst es dein Event System hinzu.
Dann musst du noch in der HUD Klasse das ganze callen
Code:
@Override
   public void onEvent(Event e) {
       if (e instanceof EventHUD) {
           EventHUD event = (EventHUD) e;
           if (!mc.gameSettings.showDebugInfo) {
               this.components.forEach(Component::render);
           }
       }
       super.onEvent(e);
   }
Dann das Event in GuiIngame callen (hab es circa bei der section mit der overlayMessage gecalled)
Code:
new EventHUD().....

Probier ich gleich mal aus danke!
 
Erstell dir eine neue Klasse nenn sie am besten "HUD". Registrier sie in Module Management. Dann ruf es auf mit
Code:
public ArrayList<Component> components = Lists.newArrayList(new ArmorHudComp());
Erstell dir dann am besten ein HUDEvent und fügst es dein Event System hinzu.
Dann musst du noch in der HUD Klasse das ganze callen
Code:
@Override
   public void onEvent(Event e) {
       if (e instanceof EventHUD) {
           EventHUD event = (EventHUD) e;
           if (!mc.gameSettings.showDebugInfo) {
               this.components.forEach(Component::render);
           }
       }
       super.onEvent(e);
   }
Dann das Event in GuiIngame callen (hab es circa bei der section mit der overlayMessage gecalled)
Code:
new EventHUD().....
Danke!
 
shape1
shape2
shape3
shape4
shape5
shape6
Back
Top