Skip to main content

Python library to generate totems of undying for Minecraft

Project description

wavy-totem-lib

GitHub repo size GitHub License PyPI - Python Version

Python library to generate totems of undying for Minecraft.

Features

  • Support 64x32 skins
  • Zoning 2 layers and rounding the head
  • Lossless scaling image size
  • Asynchrony support
  • Built-in CLI
  • Supports PyPy

Requirements

  • python >= 3.8
  • Pillow >= 10.0.0

Installing

  • Using poetry: poetry add wavy-totem-lib
  • Using pip: pip install wavy-totem-lib

You can also clone the repository or download and extract the files from the project's ZIP archive into a folder and install the library in your environment (pip install /path/to/lib/folder, poetry add /path/to/lib/folder).

Using CLI

You can use the library without writing code, from the terminal. For help, enter the argument --help or -h (python3 cli.py --help).

usage: cli.py [-h] [--skin-type [{wide,slim,auto}]]
              [--top-layers [{nothing,all,only_head,only_torso,only_hands,head_and_torso,head_and_hands}]]
              [--round-head [ROUND_HEAD]] [--scale [FACTOR]]
              skin_path totem_path

To give an example, the following command opens the skin file my_skin.png and creates a totem by rounding its head and saves it to the file totem.png at 64×64 resolution (4x scaling):

python3 cli.py my_skin.png totem.png --round-head true --scale 4

Parameters

Name Required? Valid values Default Description
skin_path string Path to the skin file
totem_path string Path where to save the finished totem file
--skin-type string (wide, slim, auto) auto Indication of what type of skin is used
--top-layers string (see Enum values in CLI) all Indication of zoning 2 layers
--round-head bool false Should the head be rounded
--scale integer (>0) 1 Image scaling multiplier

Examples

  • Quick generation:
from wavy_totem_lib import TotemBuilder, SkinType, TopLayers

totem = TotemBuilder('my_skin.png', SkinType.AUTO, top_layers=TopLayers.ONLY_HEAD, round_head=True)
totem_image = totem.generate()
totem_image.save('totem.png')
  • Generation and scaling:
from wavy_totem_lib import TotemBuilder, SkinType

totem = TotemBuilder('my_skin.png', SkinType.WIDE)
totem.generate()
totem.scale(factor=8) # Scaling from 16×16 to 128×128
totem.raw.show() # PIL.Image is available in the `raw` variable

[!NOTE] To scale up, use the built-in scale method instead of raw.resize from Pillow, because it may blur the image.

  • Asynchronous generation:
import asyncio
from wavy_totem_lib import AsyncTotemBuilder, SkinType, TopLayers

async def main():
    # Using AsyncTotemBuilder class instead of TotemBuilder
    totem = AsyncTotemBuilder('my_skin.png', SkinType.SLIM, TopLayers.HEAD_AND_HANDS)
    await totem.generate()
    await totem.scale(factor=4) # 64×64
    await totem.save('totem.png') # save() is only available in AsyncTotemBuilder

asyncio.run(main())

[!NOTE] Although generate(), scale() and raw are of type PIL.Image.Image, suitable for saving a file, it is better to use the built-in asynchronous save method instead.

Enum values

SkinType: WIDE, SLIM, AUTO

TopLayers: NOTHING, ALL, ONLY_HEAD, ONLY_TORSO, ONLY_HANDS, HEAD_AND_TORSO, HEAD_AND_HANDS

In CLI

skin-type: wide, slim, auto

top-layers: nothing, all, only_head, only_torso, only_hands, head_and_torso, head_and_hands

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wavy_totem_lib-1.4.1.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wavy_totem_lib-1.4.1-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file wavy_totem_lib-1.4.1.tar.gz.

File metadata

  • Download URL: wavy_totem_lib-1.4.1.tar.gz
  • Upload date:
  • Size: 6.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for wavy_totem_lib-1.4.1.tar.gz
Algorithm Hash digest
SHA256 ef5ded8c815d1a7d7ca83f512535bd5622376dbb718477215a58ead1f186111a
MD5 481b2da798d51ad912af23dffda1d547
BLAKE2b-256 4e9d666084d037cc08201124e81cad7128081ca9b1bc18fc6ee853b575b79609

See more details on using hashes here.

File details

Details for the file wavy_totem_lib-1.4.1-py3-none-any.whl.

File metadata

  • Download URL: wavy_totem_lib-1.4.1-py3-none-any.whl
  • Upload date:
  • Size: 8.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for wavy_totem_lib-1.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cdcb0bbeacea99725df085931fb9f1b912f4a27f0c7d54a7f49804136a729192
MD5 eb2cf38a8558bde4bbffc74658bd787c
BLAKE2b-256 8373dd3825a9fb9489b09f25e26793d7615f6fa1968dbe3e5ce53ce19f0a2eb9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page