|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- # Pixi
-
- A mod for importing images and more into Gamecraft.
-
- Developed by NGnius.
-
- ## Installation
-
- 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).
-
- Once that's done, install Pixi by copying `Pixi.dll` (from the latest release) into the `Plugins` folder in Gamecraft's main folder.
- 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).
-
- ## Usage
-
- 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"`.
-
- ### Commands
-
- `Pixi @"[thing]"` to import `thing` into your Gamecraft game.
-
- For example, if you want to add an image called `pixel_art.png`, stored in Gamecraft's installation directory,
- execute the command `Pixi @"pixel_art.png"` to load the image as blocks.
- It's important to include the file extension, since that's what makes Pixi's magic work.
-
- If you know the name of the Pixi spell you want, you can also use
-
- `Pixi2 "[spell]" @"[thing]"` to use `spell` to import `thing` into your Gamecraft game.
-
- Some commands also have hidden features, like image rotation and bot scaling.
- Talk to NGnius on the Exmods Discord server or read Pixi's source code to figure that out.
-
- ### Behaviour
-
- ImageText and ImageConsole share the same image conversion system.
- The conversion system converts every pixel to a [color tag](http://digitalnativestudios.com/textmeshpro/docs/rich-text/#color) followed by a square text character.
- For ImageText, the resulting character string is set to the text field of the text block that the command places.
- For ImageConsole, the character string is automatically set to a console block in the form `ChangeTextBlockCommand [text block id] [character string]`.
- Due to limitations in Gamecraft, larger images will crash your game!!!
-
- ImageCanvas takes an image file and converts every pixel to a coloured block.
- ImageCanvas 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.
-
- ImageCanvas' 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.
- A pixel which has an opacity between 75% and 50% will be converted into a glass cube.
- 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.
-
- ImageCanvas 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.
-
- RobocraftRobot converts 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.
-
- ## Development
-
- Show your love by offering your help!
-
- ### 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 any other inquiry, please contact NGnius in the [Exmods Discord server](https://discord.exmods.org).
-
- ### Setup
-
- Pixi's development environment is similar to most Gamecraft mods, since it's based on HelloModdingWorld's configuration.
-
- 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.
-
- 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.
-
- Like most mods, you will have to patch your game with [GCIPA](https://git.exmods.org/modtainers/GCIPA).
- Pixi also requires the [GamecraftModdingAPI](https://git.exmods.org/modtainers/GamecraftModdingAPI) library to be installed (in `ref/Plugins/GamecraftModdingAPI.dll`, the usual place).
-
- ### Building
-
- After you've completed the setup, open the solution file `Pixi.sln` in your prefered C# .NET/Mono development environment.
- I'd recommend Visual Studio Community Edition for Windows or JetBrains Rider for Linux.
-
- If you've successfully completed setup, you should be able to build the Pixi project without errors.
- If it doesn't work and you can't figure out why, ask for help on the [Exmods Discord server](https://discord.exmods.org).
-
- # Acknowledgements
-
- RobocraftRobot 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).
-
- MIDI file processing uses an integrated copy of melanchall's [DryWetMidi](https://github.com/melanchall/drywetmidi) library, licensed under the [MIT License](https://github.com/melanchall/drywetmidi/blob/develop/LICENSE).
-
- Thanks to **TheGreenGoblin** and their Python app for converting images to coloured square characters, which inspired the PixiConsole and PixiText commands.
-
- Thanks to **Mr. Rotor** for all of the Robocraft blocks used in the PixiBot and PixiBotFile commands.
-
- # Disclaimer
-
- Pixi source code and releases are available free of charge as open-source software for the purpose of modding Gamecraft.
- Modify Gamecraft at your own risk.
- Read the LICENSE file for official licensing information.
- Pixi, Exmods and NGnius are not endorsed or supported by Gamecraft or FreeJam.
- Please don't sue this project or its contributors (that's what all disclaimers boil down to, right?).
-
- Pixi is actually just sufficiently advanced technology that's indistinguishable from magic.
|