SPGoding / resource-pack-converter

(WIP) A npm package that provides method to convert Minecraft: Java Edition resource packs from a version to another version.
MIT License
2 stars 1 forks source link

Resource Pack Converter

CircleCI npm License semantic-release Gitmoji

:construction: Still work in progress...

The RPC (Resource Pack Converter) is a npm package which can convert a Minecraft: Java Edition resource pack from any version to another version.

Usage

You can use it via the Command Line Tool or importing it to your project.

Use via Command Line Tool

  1. Make sure you have nodejs installed on your computer.
  2. Execute npm i resource-pack-converter -g in your command line (e.g. PowerShell, cmd, bash, etc.)
  3. TODO

Import it to your Project

  1. Installation.
    npm i resource-pack-converter
  2. Import.
    import { convert } from 'resource-pack-converter'
  3. TODO

File Structure

How does it Work

Overview

The RPC will decompressed the input resource pack if it's compressed, and then execute all adapters orderly for each file in the resource pack according to specific conversion. All adapted files will be put in specific path under ${outDir}, so nothing will be changed in the source resource pack.

Adapters

Adapters carry out operations for single file in the resource pack, e.g. renaming, scaling image, changing text content, etc. All adapters are written in TypeScript and should implement the Adapter interface. They are located in ./src/adapters/.

Adapters may be referenced in conversions.

Conversions

A Conversion contains a set of adapters. It's stored in ./src/conversions/.

Contributing

I'm thrilled to hear that you'd like to contribute to this project. It's no doubt that the converter will be better with your help!

  1. Fork this this repo and clone it to your local.

  2. Install dependencies.

    npm i

  3. Edit files in ./src.

  4. If you add new features, it's strongly recommend to write tests for them. All tests should be put under ./src/test.

  5. Commit your changes by npm run commit and then push them to the origin.

  6. Open a Pull Request. The circle CI will build and test your changes automatically.

There must be lots of mistakes and bad practice in this repository. If you find something not good or not sure whether it's not good, please don't hesitate to tell me!