Initial plan was to make signs using Krita, a free graphics program, and import them into my favorite voxel editor to make them into voxel signs. Problem is, I really needed the resolution, so the voxel characters were too blocky and it really detracted from the legibility.
I ended up making a dynamic sign that reads from a tag on itself, then grabs the right image and displays it in-game, crisp and neat.
As I was working with the signs, I made a mistake in one area – see if you can spot it:
--- Contract Signs local imagePath = "MOD/images/contract/" local contractName = "Nil" local screenHandle = 0 function tick() if contractName == "Nil" then -- Only firing once to not waste cycles screenHandle = UiGetScreen() contractName = GetTagValue(screenHandle, "name") -- picks up name=<contract name> in "tags" for the screen entity end end function draw() -- UI Stack UiTranslate(UiCenter(), UiMiddle()) UiAlign("center middle") UiImage(imagePath .. contractName .. ".png") end
The above is a snippet in lua of how I got that to work – trust me, I wouldn’t have used tick() if I had any other way — but it seems to work fine without performance hits.
Before balancing out the visual weight of the signs, it was time for more destruction testing. The signs I used were different than sprites, so I had to make another type of damage-detection to deal with them.
That is it for now, more to come…