Texture Pack Converter

< Back Home

Problem

I like Luanti more than Minecraft, but I don't usually like the way Luanti games look.

Solution

What if I could just use the Minecraft texture packs I like in Luanti games? There is a Luanti game called Mineclonia that is very similar. I could make a tool that takes texture files from Minecraft packs and make a Mineclonia-compatible pack. I didn't know much programming, but that should only take a month or so, right?

Before I began, I started checking if this kind of tool already existed. It did, and it was pinned on the forum: Forum Link. I didn't like this tool. It was a shell script that required ImageMagick to be installed. It probably still works, but I really want something better.

I decided to write a new script for converting textures in the V language. I picked V because it is easy to cross compile, easy to understand, and V files can run as script files easily. That script is "available" on Notabug. At the time of writing, Notabug is often down due to AI scrapers DDoSing it. That script basically was just a bunch of copy and paste operations. It had no real way of editing the textures to abide by Mineclonia's expectations. Image editing with code was a bit too advanced for me, so I stopped making progress.

Eventually, I decided to try again using the Go language. I mainly picked it because I found this image editing library called Imaging. This library was all that I would need. Go is also a much more used language, so it was easy to look up solutions to common problems I was running into.

Go is easy. It might be the easiest practical programming language to learn. I used Codingame and some Codewars to learn more. Eventually, Boot.dev had a discount that I liked, and I started paying for their courses. I am significantly better at coding now, but some of the old code from before I got through their courses is still in my converter project. I wish I could reorganise it, but that will have to wait.

This post is not finished. I will continue writing at a future time.