2020-05-09 00:30:31 +00:00
# Pixi
2020-05-09 00:11:37 +00:00
2020-06-09 00:24:50 +00:00
A mod for importing images and more into Gamecraft.
Developed by NGnius.
2020-05-09 00:11:37 +00:00
2020-05-09 00:30:31 +00:00
## Installation
2020-05-25 13:05:49 +00:00
Before installing Pixi, please patch Gamecraft with [GCIPA ](https://git.exmods.org/modtainers/GCIPA/releases ) and install the latest version of [GamecraftModdingAPI ](https://git.exmods.org/modtainers/GamecraftModdingAPI/releases ).
2020-06-09 00:24:50 +00:00
Once that's done, install Pixi by copying `Pixi.dll` (from the latest release) into the `Plugins` folder in Gamecraft's main folder.
2020-05-25 13:05:49 +00:00
Alternately, follow the install guide: https://www.exmods.org/guides/install.html (ignore the part about a zip file -- move Pixi.dll into the Plugins folder instead).
2020-05-09 00:30:31 +00:00
2020-05-09 20:33:27 +00:00
## Usage
2020-06-09 00:24:50 +00:00
Pixi adds new commands to Gamecraft's command line to import images, and other stuff, into a game.
Since Pixi places vanilla Gamecraft blocks, imported files should be visible without Pixi installed.
For the following section, anything between `[` and `]` characters is a command argument you must provide by replacing everything inside and including the square brackets.
An argument like `[dog name]` is an argument named "dog name" and could be a value like `Clifford` or `doggo` ,
and `@"[dog name]"` could be a value like `@"Clifford"` or `@"doggo"` .
2020-05-11 19:52:14 +00:00
### Commands
2020-05-09 20:33:27 +00:00
2020-05-20 01:36:21 +00:00
`PixiText @"[image]"` converts an image to text and places a text block with that text beside you.
2020-05-09 20:33:27 +00:00
2020-05-20 01:36:21 +00:00
`PixiConsole @"[image]" "[text block id]"` converts an image to text and places a console block beside you which changes the specified text block.
2020-06-09 00:24:50 +00:00
`Pixi2D @"[image]"` converts an image to blocks and places it beside you.
2020-05-20 01:36:21 +00:00
For example, if you want to add an image called `pixel_art.png` , stored in Gamecraft's installation directory,
execute the command `Pixi2D @"pixel_art.png"` to load the image as blocks.
2020-06-09 00:24:50 +00:00
It's important to include the file extension, since Pixi isn't capable of black magic (yet).
2020-05-20 01:36:21 +00:00
**EXPERIMENTAL**
`PixiBot @"[bot]"` downloads a bot from Robocraft's community Factory and places it beside you.
`PixiBotFile @"[bot]"` converts a `.bot` file from [rcbup ](https://github.com/NGnius/rcbup ) to blocks and places it beside you.
2020-06-09 00:24:50 +00:00
`PixiThicc [depth]` sets the block thickness, a positive integer value, for `Pixi2D` image conversion.
2020-05-20 01:36:21 +00:00
The default thickness is 1.
2020-05-11 19:52:14 +00:00
2020-06-09 00:24:50 +00:00
Some commands also have hidden features, like image rotation.
Talk to NGnius on the Exmods Discord server or read the Pixi's source code to figure that out.
2020-05-11 19:52:14 +00:00
### Behaviour
2020-05-20 13:12:47 +00:00
PixiText and PixiConsole share the same image conversion system.
2020-05-25 13:05:49 +00:00
The conversion system converts every pixel to a [color tag ](http://digitalnativestudios.com/textmeshpro/docs/rich-text/#color ) followed by a square text character.
2020-05-20 13:12:47 +00:00
For PixiText, the resulting character string is set to the text field of the text block that the command places.
For PixiConsole, the character string is automatically set to a console block in the form `ChangeTextBlockCommand [text block id] [character string]` .
2020-06-09 00:24:50 +00:00
Due to limitations in Gamecraft, larger images will crash your game.
2020-05-11 19:52:14 +00:00
2020-05-20 13:12:47 +00:00
Pixi2D takes an image file and converts every pixel to a coloured block.
2020-05-25 13:05:49 +00:00
Pixi2D uses an algorithm to convert each pixel in an image into the closest paint colour, but colour accuracy will never be as good as a regular image.
2020-05-20 13:12:47 +00:00
Pixi2D's colour-conversion algorithm also uses pixel transparency so you can cut out shapes.
A pixel which has opacity of less than 50% will be ignored.
2020-05-11 19:52:14 +00:00
A pixel which has an opacity between 75% and 50% will be converted into a glass cube.
2020-06-09 00:24:50 +00:00
A pixel which has an opacity greater than 75% will be converted into the block you're holding (or aluminium if you've got your hand selected).
This only works with `.PNG` image files since the `.JPG` format doesn't support image transparency.
2020-05-11 19:52:14 +00:00
2020-06-09 00:24:50 +00:00
Pixi2D also optimises block placement, since images have a lot of pixels.
The blocks grouping ratio is displayed in the command line output once image importing is completed.
2020-05-11 19:52:14 +00:00
2020-06-09 00:24:50 +00:00
PixiBot and PixiBotFile convert a robot to equivalent Gamecraft blocks.
If the conversion algorithm encounters a block it cannot convert, it will place a text block, with the block name, instead.
2020-05-09 20:33:27 +00:00
2020-05-09 00:30:31 +00:00
## Development
2020-05-11 19:52:14 +00:00
Show your love by offering your help!
2020-05-09 00:30:31 +00:00
2020-06-09 00:24:50 +00:00
### Ways To Contribute
- Build a Robocraft block that's not currently supported by Pixi (send it to NGnius on Discord).
- Report any bugs that you encounter while using Pixi.
- Report an idea for an improvement to Pixi or for a new file format.
For questions, concerns or reports, please contact NGnius in the [Exmods Discord server ](https://discord.exmods.org ).
2020-05-09 00:30:31 +00:00
### Setup
2020-05-20 01:36:21 +00:00
Pixi's development environment is similar to most Gamecraft mods, since it's based on HelloModdingWorld's configuration.
2020-05-09 00:11:37 +00:00
This project requires most of Gamecraft's `.dll` files to function correctly.
Most, but not all, of these files are stored in Gamecraft's `Gamecraft_Data\Managed` folder.
The project is pre-configured to look in a folder called ref in the solution's main directory or one level up from that.
2020-05-11 19:52:14 +00:00
You can make sure Pixi can find all `.dll` files it needs by copying your Gamecraft folder here and renaming it to `ref` , but you'll have to re-copy it after every Gamecraft update.
To avoid that, create a symbolic link (look it up) to your Gamecraft install folder named `ref` in this folder instead.
2020-05-09 00:11:37 +00:00
2020-05-09 00:30:31 +00:00
Like most mods, you will have to patch your game with [GCIPA ](https://git.exmods.org/modtainers/GCIPA ).
2020-06-09 00:24:50 +00:00
Pixi also requires the [GamecraftModdingAPI ](https://git.exmods.org/modtainers/GamecraftModdingAPI ) library to be installed (in `ref/Plugins/GamecraftModdingAPI.dll` , the usual place).
2020-05-09 00:11:37 +00:00
2020-05-11 19:52:14 +00:00
### Building
2020-05-09 00:11:37 +00:00
2020-05-09 00:30:31 +00:00
After you've completed the setup, open the solution file `Pixi.sln` in your prefered C# .NET/Mono development environment.
2020-05-09 00:11:37 +00:00
I'd recommend Visual Studio Community Edition or JetBrains Rider for Windows and Monodevelop for Linux.
2020-05-09 00:30:31 +00:00
If you've successfully completed setup, you should be able to build the Pixi project without errors.
2020-06-09 00:24:50 +00:00
If it doesn't work and you can't figure out why, ask for help on the [Exmods Discord server ](https://discord.gg/2CtWzZT ).
# Acknowledgements
PixiBot uses the Factory to download robots, which involves a partial re-implementation of [rcbup ](https://github.com/NGnius/rcbup ).
Robot parsing uses information from [RobocraftAssembler ](https://github.com/dddontshoot/RoboCraftAssembler ).
Gamecraft interactions use the [GamecraftModdingAPI ](https://git.exmods.org/modtainers/GamecraftModdingAPI ).
2020-06-14 16:11:33 +00:00
Thanks to **TheGreenGoblin** and their Python app for converting images to coloured square characters, which inspired the PixiConsole and PixiText commands.
2020-06-09 00:24:50 +00:00
Thanks to **Mr. Rotor** for all of the Robocraft blocks used in the PixiBot and PixiBotFile commands.
2020-05-20 01:36:21 +00:00
# Disclaimer
Pixi, Exmods and NGnius are not endorsed or supported by Gamecraft or FreeJam.
Modify Gamecraft at your own risk.
Read the LICENSE file for licensing information.
2020-06-09 00:24:50 +00:00
Please don't sue this project or its contributors (that's what all disclaimers boil down to, right?).
2020-05-20 01:36:21 +00:00
2020-06-09 00:24:50 +00:00
Pixi is not magic and is actually just sufficiently advanced technology that's indistinguishable from magic.