Julie's Document Website / Delphi Menu Engine / Dev Journal / 28-01-2025
Publish Date
2025-01-28 15:00:00 +0200 UTC
Author
Julie

28-01-2025

Text Rendering and some thoughts about the future.

Table Of Contents

Intro

It's been weeks, maybe even months since I've touched this project... oh god.

I started finally implementing the renderer I created in the delphirender module. Starting with a very simple Flow layout that just places elements after each other. I'll implement the rest of the layout once I know the configuration and projection of entities is correct.

Afterword

It's 7 hours later. I hate this project...

I spent almost all of today thinking about and fixing issues related to the most simple parts of rendering and layout possible. And now, 7 hours later, this still doesn't work fully. There's still many issues to fix.

For some reason all elements are offset slightly to the left, and maybe down a bit? This probably has something to do with the code expecting content-start position to be relative to something it isn't anymore.

Other than the bugs that didn't exist before, all is well. I'll need to remind myself to take screenshots and maybe even videos so I can show stuff off here.

A little rant

Mojang, I know they didn't do this to screw me over, but it just feels like they did. They changed the way Text Display entities are rendered in MC-263858. Just a minor change right? Wrong! The method all of Delphi's menus were rendered with was by using that 1 pixel of invisible background on empty text displays. And they fixed it!

So, I had to take an hour to fix that. Delphi now uses a '0' character set to opacity 24, which, according to the wiki, is invisible because any opacity under 25 is not rendered.

Tomorrow's goals

Thinking of the future: Translations

Delphi will need to support translations to other languages and as such will need to support languages and text in other languages.

The first issue to solve is related to translated messages, although these may rarely appear, it may be important to provide support for them. Currently, the server software the plugin is written for, Paper, only has English translations stored server side. As such, we'll most likely need to download the current version's client jar and extract the translation files for other languages from there. This should go further, to cover all possible bases, it should also download the Server Resource Pack, specified by server-resource-pack in server.properties.


Notes

  1. The upper left corner of the content box.