I made a tool that can create insane world sized pixel arts.

Greetings everyone! Today I decided to show this tool/mod off that you can upload an image into and create insane pixel arts as schematics. How does this differ from preexisting online convertors? Well this is kind of complex. This tool I originally created for a 3d game named Castle Miner Z. Back on CMZ, it was more so considered a hack tool being the game had no mod support and or ability to use in game commands. So it was all hardwired into the games code. Recently a friend asked me to port it over for Terraria, so I did. This tool allows for the conversion of any image no matter the size and allows for custom color filters. It also allows for custom pixelization amounts. This tool also allows for rotation of the image. It can also support unusual rotations such as 45 degrees.

finished.PNG


As you can see in the image above, this is the editors GUI layout. The image when done gets converted to a raw schematic that can be saved to a text file and uploaded into the game via a new custom command. The format for these schematics goes as the follows.

Code:
Wall-ID|X,Z,Paint-Color
154|1,1,26
154|1,2,26
154|1,3,26
154|1,4,26
exc...

The color system works in the similar way being that its HexColor|WallType|PaintColor. The program analyzes each pixel from picturebox1 and tries to match the best closest color from the filter option. Then creates a row of data for the schematic system. I have decided to use background walls for this as they look the cleanest on the map and in-game. So because of this, I have based all my color pickers on this. Bellow are the walls / map colors I used. Later I plan to make this universal with both blocks or walls.

color.PNG


You may be thinking, if this is the only colors you can use, and that's a huge no. It allows for custom color filter templets you can upload. It also has support for something called a color picker, where using the mouse upon enabling, you can select a color from PictureBox1 and click and a GUI will open asking what block and paint you want to represent for that color. And it will add it to the color filter for all other closest matching blocks.

hmm.PNG


For when you decide to convert the image, there is a spacing and ratio level conversion options you can adjust. The spacing specifies how much detail you want the pixelart to contain. The lower the number the more to real size the image tries to match it. For instance if I took a 8x8 image (64 pixels) it will convert the output pixelart image to match all 64 pixels. If you set the spacing to 4, it would divide the amount of X-Y pixels by X=(4) amount. The ratio feature will attempt to scale the current output image to an * (+ -) X amount.

appout.jpg


For once you have the schematic you want to import to the game, you can either click convert and use the schematic viewers text and paste it in a notepad or use the save schematic button to do it for you. This will re-generate the pixelart using the defined settings and save the schematic to a file. For my instance of my mod, I decided to have the game store/read the data for these schematics inside a folder named #Schematics within the games main directory. After the saving of the schematic you can upload it while IN-GAME via a command. The upload takes around ~0.3 seconds to complete. Yes, it's insanely fast to cover an entire world in walls and paint them haha; why? good coding? who knows! The command I created was /schem [schem] (Rotation). [] = required, () = optional.

I know the program has a rotation feature, but after you crafted the schematic and later wish to upload at a different orientation, you can. This command I setup only works in singleplayer as it will also work in multiplayer but I rather not have people going around pasting huge pixel arts on huge major servers. This is a SMP mod, not a hacktool. Bellow are some pixel arts ingame I have created using this tool. Please note that I have not taken the most amount of time to gather all the proper custom colors for these. So the quality will very. This tool was coded in C#.

NicePic.PNG

(Msc Art - 1360x1000 - 1360000 Blocks)
105600_screenshots_20210213200231_1.jpg

(Moonlord - 1920x1080 - 2073600 Blocks)

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Update!

As I suggested above, I have gone ahead and worked on an update that allows the use of both blocks and walls. I have achieved this by pushing the schematic to be categorized by either a block or a wall. The schematic data that uses walls are specified by W and B for blocks.

Code:
Block/Wall-ID|X,Y,(W)all or (B)lock,PaintType
154|103,74,W,25
326|104,60,B,0

This allows one schematic to use both walls and blocks! I have taken a sample for the color picker from this pixel art color table from u/SgtTac.

8m0IvyW.png


This also means the fast block picker was updated! Now allows for blocks!

picker.PNG


Bellow is a demonstration of the new update.

backing.PNG

(New GUI Update - Image Conversion)

outk.jpg

(Pixelart containing both walls and blocks)
 
Last edited:
Oh man, that would be so nice for layouts.
But i can see why you are concerned about releasing it. People prolly would go nuts with "stolen" pixel art.

However, great Tool!

greetings, Warden
 
Oh man, that would be so nice for layouts.
But i can see why you are concerned about releasing it. People prolly would go nuts with "stolen" pixel art.

However, great Tool!

greetings, Warden
I would hope people wouldn't act that way if it was
 
For An Personal Reference:
None = 0;
RedPaint = 1;
OrangePaint = 2;
YellowPaint = 3;
LimePaint = 4;
GreenPaint = 5;
TealPaint = 6;
CyanPaint = 7;
SkyBluePaint = 8;
BluePaint = 9;
PurplePaint = 10;
VioletPaint = 11;
PinkPaint = 12;
DeepRedPaint = 13;
DeepOrangePaint = 14;
DeepYellowPaint = 15;
DeepLimePaint = 16;
DeepGreenPaint = 17;
DeepTealPaint = 18;
DeepCyanPaint = 19;
DeepSkyBluePaint = 20;
DeepBluePaint = 21;
DeepPurplePaint = 22;
DeepVioletPaint = 23;
DeepPinkPaint = 24;
BlackPaint = 25;
WhitePaint = 26;
GrayPaint = 27;
BrownPaint = 28;
ShadowPaint = 29;
NegativePaint = 30;
IlluminantPaint = 31;
 
Back
Top Bottom