Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
MythicHUD MythicHUD
  • Project overview
    • Project overview
    • Details
    • Activity
  • Issues 3
    • Issues 3
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Wiki
    • Wiki
  • Members
    • Members
  • Activity
  • Create a new issue
  • Issue Boards
Collapse sidebar
  • MythicCraft
  • MythicHUDMythicHUD
  • Wiki
  • Fonts

Last edited by Brickgard Nov 28, 2024
Page history

Fonts

Fonts in MythicHUD are sprite-sheets configured to pair a text character with a visual icon. This can be used to transform Unicode textures into icons and images.
MythicHUD currently does not utilize pre-existing fonts in a resource pack, and must have font characters configured in its generation to display them.

Font Config

By default, MythicHUD generates the config for its default fonts in /MythicHUD/assets/font/default-fonts.yml, which use several sprite-sheets located in /MythicHUD/textures/font/default/.
A font configuration includes a provider name, a texture file to reference, the character height of the sheet, and a list of characters mapped to the sheet. Here is a small example custom-font configuration:

custom-font:
  providers:
    # standard space characters unchanged
    spaces:
      type: "space"
      advances:
        " ": 4
        "\u200c": 0
    # remapped unicode characters to icons:
    nonlatin-european:
      type: "bitmap"
      texture: font/custom-font/sprites.png
      height: 8
      chars:
        - "\u00a1\u2030\u00ad\u00b7"
        - "\u20b4\u2260\u00bf\u00d7"
        - "\u00d8\u00de\u04bb\u00f0"
        - "\u00f8\u00fe\u0391\u0392"

This configuration creates a font named custom-font for use in text Assets, uses the sprite sheet provided at /MythicHUD/textures/font/custom-font/sprites.png, and loads 16 characters to change the display of various Unicode characters (such as \u00a1's ¡ character as whatever the first, upper-left icon in the sprite sheet is).

Spritesheet

The sprite sheet for a font is considered a grid of character tiles sized height x height. The above example would be a 32px by 32px sheet made of 8px square characters, for example. Sprite sheet textures do not have to be square, but do have to have exact resolution measurements to be read correctly. If textures load but seem misshapen or offset, it is likely a sprite-sheet resolution issue.

Animation Example

This is a complex example walking through how to utilize a custom MythicHUD font to turn various Unicode characters into image frames for stop-motion animation.
These Unicode frames are being delivered via a PlaceholderAPI placeholder, which is being managed and animated by a third-party software solution.
MythicHUD can display those unicodes as frames of animation through displaying the PAPI text as a custom font.

This is an example /MythicHUD/assets/hud/ animated asset:

anim:
  layers:
    display:
      text: "%icon_sparkle%"
      font: "sparkle"
      outlined: false
      align: center
      offset:
        x: 0
        y: 0

It would utilize the /MythicHUD/assets/font/ custom font:

sparkle:
  providers:
    spaces:
      type: "space"
      advances:
        " ": 4
        "\u200c": 0
    ascii:
      type: "bitmap"
      texture: font/sparkles.png
      height: 12
      chars:
        - "\u8080\u8081\u8082\u8083\u8084"
        - "\u8085\u8086\u8087\u8088\u8089"

This font is sourced from a 60x24px image at /MythicHUD/textures/font/sparkles.png, and displays 10 12px-square sprites in two rows of 5.

The PAPI placeholder %icon_sparkle% is then delivering unicodes \u8080 - \u8089 in sequence to play back those frames as animation.

Animation Tip! MythicHUD's config determines the framerate it updates HUDs for players - for example, an update rate of 4 ticks per update out of 20 ticks per second is an animation playback of 5fps. Keep this in mind when planning animation frames and playback speed.
Clone repository
Home

Getting Started
What's New in MythicHUD?
Commands and Permissions
Configuration Reference

Layouts
Pop-Ups
HUD Components
  • Asset Layers
  • Assets
  • Listeners
  • Conditions
    • Effect
    • Gamemode
    • Placeholder
    • Progress
    • Logical Operators
Fonts

MythicHUD API
Compatibility
  • Migrating from v1 to v2
  • Supporting Multiple Client Versions
  • Crucible
  • Nexo
  • ItemsAdder
  • Modded Clients