Skip to main content

Encoding and decoding tools for TaleSpire data

Project description

TaleSpire Encoding

This is a Python package for encoding and decoding TaleSpire data.

It currently contains two encoding types:

  • Slabs (v1, v2)
  • Creature Blueprints (v1, v2)

Installation:

Install the latest release from PyPI:

pip install talespire-encoding

To upgrade to the latest version:

pip install --upgrade talespire-encoding

To install a specific version:

pip install talespire-encoding==1.2.3

Usage:

The Python import package is ts_encoding

from ts_encoding.slab import TSSlab
from ts_encoding.creature_bp import TSCreature

Slabs Example usage:

from ts_encoding.slab import TSSlab

example_slab_code = ("H4sIAAAAAAAACjv369xFJgZGBgYGgUWHGX9Pme/S4z7T7pZ"
                     "doRonUGwCSIKhgRFMS0L4DTwMDCcYwOIsDBDADOZLQsRB8g"
                     "xQPgOcDwD7jJ0vaAAAAA==")

slab = TSSlab()
slab.decode_slab(example_slab_code)

# The slab contents are now in a dictionary `slab.data`
from pprint import pprint
pprint(slab.data)

"""
{'layout_count': 1,
 'layouts': [{'instance_count': 9,
              'instances': [{'degrees': 90.0,
                             'pos_x': 0.0,
                             'pos_y': 0.0,
                             'pos_z': 4.0},
                            {'degrees': 0.0,
                             'pos_x': 4.0,
                             'pos_y': 0.0,
                             'pos_z': 4.0},
                            {'degrees': 0.0,
                             'pos_x': 2.0,
                             'pos_y': 0.0,
                             'pos_z': 4.0},
                            {'degrees': 270.0,
                             'pos_x': 0.0,
                             'pos_y': 0.0,
                             'pos_z': 2.0},
                            {'degrees': 180.0,
                             'pos_x': 0.0,
                             'pos_y': 0.0,
                             'pos_z': 0.0},
                            {'degrees': 0.0,
                             'pos_x': 4.0,
                             'pos_y': 0.0,
                             'pos_z': 2.0},
                            {'degrees': 0.0,
                             'pos_x': 2.0,
                             'pos_y': 0.0,
                             'pos_z': 2.0},
                            {'degrees': 0.0,
                             'pos_x': 4.0,
                             'pos_y': 0.0,
                             'pos_z': 0.0},
                            {'degrees': 0.0,
                             'pos_x': 2.0,
                             'pos_y': 0.0,
                             'pos_z': 0.0}],
              'reserved': 0,
              'uuid': '01c3a210-94fb-449f-8c47-993eda3e7126'}],
 'magic_num': 3520002766,
 'num_creatures': 0,
 'version': 2}
"""

# To encode the data
new_slab_code = slab.encode_slab()
# The new_slab_code can be pasted into TaleSpire

# To create the data start a new TSSlab and edit the data dictionary.
# Each uuid is a new layout in the dictionary it is currently up to you
#  to format the dictionary properly so that it encodes correctly.
# In future versions there may be tools to help build the layouts.

# Here is an example of creating a single grass tile
new_slab = TSSlab()
new_slab.data["layout_count"] = 1
grass_layout = {
    "instance_count": 1, # The number of grass tiles
    "instances": [{
        "degrees": 0.0, # Yaw rotation in degrees 0-360 it is up to you to give valid values
        "pos_x": 0.0, # X position within slab
        "pos_y": 0.0, # Y position within slab
        "pos_z": 0.0}], # Z position within slab
    "reserved": 0, # Always set to 0
    "uuid": "01c3a210-94fb-449f-8c47-993eda3e7126" # Asset UUID
}
new_slab.data["layouts"].append(grass_layout)
new_slab_code = new_slab.encode_slab()

# You can paste that new_slab_code into TaleSpire to see your grass tile

Creature Blueprint Example usage:

from ts_encoding.creature_bp import TSCreature
from pprint import pprint

url_from_TS = ("talespire://creature-blueprint/"
              "AgAMV2hpdGUgTWVlcGxlAQAAACMAYnI6MDAwMDAwMDAwMDAwMDAwMD"
              "AwMDAwMDAwMDQ3MDQxMDABAAAAAI49u_vNJQRDrZctETEJKR8ABAAA"
              "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQQAAIEEAACBBAAAgQQ"
              "AAIEEAACBBAAAgQQAAIEEAACBBAAAgQQAAIEEAACBBAAAgQQAAIEEA"
              "ACBBAAAgQQAAIEEAACBBAAAA")

bp = TSCreature()
bp.decode_url(url_from_TS)
pprint(bp.data)

# You can change any of the data in `bp.data`
bp.data["name"] = "New Name"
bp.data["stats"][0] = {"max": 100.0, "value": 100.0}  # Changes hp to 100

# To re-encode the data
new_url = bp.encode_url()

print(new_url)  # You can copy/paste this new URL into TaleSpire

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

talespire_encoding-1.2.3.tar.gz (14.5 kB view details)

Uploaded Source

Built Distribution

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

talespire_encoding-1.2.3-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

Details for the file talespire_encoding-1.2.3.tar.gz.

File metadata

  • Download URL: talespire_encoding-1.2.3.tar.gz
  • Upload date:
  • Size: 14.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for talespire_encoding-1.2.3.tar.gz
Algorithm Hash digest
SHA256 44e3c1907ce67ac924514df0327b93678d9b4e406f98d594d5b41dbac5693414
MD5 bfb88e30f59545ce149aad16fc3779d3
BLAKE2b-256 21448272f9f931c055a2236941e9e7747277c12e85c03e3d5c683ca3c1ec7794

See more details on using hashes here.

Provenance

The following attestation bundles were made for talespire_encoding-1.2.3.tar.gz:

Publisher: python-publish.yml on Baldrax/TaleSpire-Encoding-Python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file talespire_encoding-1.2.3-py3-none-any.whl.

File metadata

File hashes

Hashes for talespire_encoding-1.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 78621566eaf0d0885df25a90b04119eefe4fb1bbfb0dcca53ed5ca0dce8169d0
MD5 9741d14d55fbb83b5696f6f8592c1fb8
BLAKE2b-256 524b3b8dd42cad935bb20ec2683102cf522c9fe8216718c352b8562c15429705

See more details on using hashes here.

Provenance

The following attestation bundles were made for talespire_encoding-1.2.3-py3-none-any.whl:

Publisher: python-publish.yml on Baldrax/TaleSpire-Encoding-Python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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