// Event for registering HUDs
PalladiumEvents.registerGuiOverlays((event) => {
        event.register(
                'grave.ht:magic_display',
                (minecraft, gui, poseStack, partialTick, screenWidth, screenHeight) => {
                        let player = minecraft.player;
                        let username = player.getGameProfile().getName();
                        let scoreboard = Utils.server.scoreboard;
                        if (!player) return;

                        if (abilityUtil.hasPower(player, 'grave.ht:magic_user')) {
                                poseStack.pose().pushPose();
                                poseStack.pose().translate(0, 0, 1);
                                let screenXplacement = (screenWidth - 87)
                                let screenYplacement = (screenHeight - 98)
                                let levelscreenXplacement = screenXplacement - 9
                                let levelscreenYplacement = screenYplacement - 9.5

                                //mana info

                                let scoreboard_objelement = scoreboard.getObjective('grave.omni.core_element');
                                let scoreelement = scoreboard.getOrCreatePlayerScore(username, scoreboard_objelement);
                                if (!scoreelement) return
                                let element = scoreelement.getScore()
                                //let element = 3
                                // element can be 0-6

                                //the colour of the players mana
                                let scoreboard_objmana = scoreboard.getObjective('grave.omni.mana_colour');
                                let scoremana = scoreboard.getOrCreatePlayerScore(username, scoreboard_objmana);
                                let mana_colour = scoremana.getScore()
                                //let mana_colour = 0
                                // colour can be between 0-16
                                // score is grave.omni.mana_colour

                                //the store in the player and the max store of the player
                                let scoreboard_objstore = scoreboard.getObjective('grave.omni.manastore');
                                let scorestore = scoreboard.getOrCreatePlayerScore(username, scoreboard_objstore);
                                let manastore = scorestore.getScore()
                                //let manastore = 69

                                let scoreboard_objmax = scoreboard.getObjective('grave.omni.manastore_max');
                                let scoremax = scoreboard.getOrCreatePlayerScore(username, scoreboard_objmax);
                                let manastore_max = scoremax.getScore()
                                //let manastore_max = 100
                                let manastore_inverse = Math.round((manastore / manastore_max) * 22)
                                let manastoregui = Math.abs(manastore_inverse - 22)

                                //the traits the player has
                                let trait1 = 0
                                let trait2 = 0
                                let trait3 = 0

                                //main background
                                guiUtil.blit(
                                        new ResourceLocation('grave.ht:textures/gui/magic/hud/bg.png'),
                                        poseStack,
                                        screenXplacement, screenYplacement,
                                        0, 0,
                                        64, 64,
                                        64, 64
                                );

                                //element display
                                guiUtil.blit(
                                        new ResourceLocation(`grave.ht:textures/gui/magic/hud/core_element_stones/colour_${element}.png`),
                                        poseStack,
                                        screenXplacement, screenYplacement,
                                        0, 0,
                                        64, 64,
                                        64, 64
                                );

                                //mana store
                                guiUtil.blit(
                                        new ResourceLocation(`grave.ht:textures/gui/magic/hud/mana_store/colour_${mana_colour}.png`),
                                        poseStack,
                                        screenXplacement + 20, (screenYplacement + 20) + manastoregui,
                                        20, 20 + manastoregui,
                                        42, 42 - manastoregui,
                                        64, 64
                                );

                                //trait 1
                                guiUtil.blit(
                                        new ResourceLocation(`grave.ht:textures/gui/magic/hud/trait1/colour_${trait1}.png`),
                                        poseStack,
                                        screenXplacement, screenYplacement,
                                        0, 0,
                                        64, 64,
                                        64, 64
                                );

                                //trait 2
                                guiUtil.blit(
                                        new ResourceLocation(`grave.ht:textures/gui/magic/hud/trait2/colour_${trait2}.png`),
                                        poseStack,
                                        screenXplacement, screenYplacement,
                                        0, 0,
                                        64, 64,
                                        64, 64
                                );

                                //trait 3
                                guiUtil.blit(
                                        new ResourceLocation(`grave.ht:textures/gui/magic/hud/trait3/colour_${trait3}.png`),
                                        poseStack,
                                        screenXplacement, screenYplacement,
                                        0, 0,
                                        64, 64,
                                        64, 64
                                );
                                poseStack.pose().popPose();
                        }
                }
        );
});

