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
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
- Eliminate the new bugs
- Work on layout (Flow layout)
- Get auto margins working.
- Fix chunk loading/unloading errors.
When a chunk with a Delphi menu in it is unloaded and then loaded again, the menu will be gone because the entities are not persistend (this is intentional), so they will need to be manually respawned when the chunk is loaded again.
Entities should also be marked as invalid and killed when the chunk is unloaded.
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
- The upper left corner of the content box.