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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44e3c1907ce67ac924514df0327b93678d9b4e406f98d594d5b41dbac5693414
|
|
| MD5 |
bfb88e30f59545ce149aad16fc3779d3
|
|
| BLAKE2b-256 |
21448272f9f931c055a2236941e9e7747277c12e85c03e3d5c683ca3c1ec7794
|
Provenance
The following attestation bundles were made for talespire_encoding-1.2.3.tar.gz:
Publisher:
python-publish.yml on Baldrax/TaleSpire-Encoding-Python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
talespire_encoding-1.2.3.tar.gz -
Subject digest:
44e3c1907ce67ac924514df0327b93678d9b4e406f98d594d5b41dbac5693414 - Sigstore transparency entry: 1631650977
- Sigstore integration time:
-
Permalink:
Baldrax/TaleSpire-Encoding-Python@e5e8aa4992ec6093b76bcd39b19a52ad49ad770a -
Branch / Tag:
refs/tags/v1.2.3 - Owner: https://github.com/Baldrax
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@e5e8aa4992ec6093b76bcd39b19a52ad49ad770a -
Trigger Event:
release
-
Statement type:
File details
Details for the file talespire_encoding-1.2.3-py3-none-any.whl.
File metadata
- Download URL: talespire_encoding-1.2.3-py3-none-any.whl
- Upload date:
- Size: 13.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
78621566eaf0d0885df25a90b04119eefe4fb1bbfb0dcca53ed5ca0dce8169d0
|
|
| MD5 |
9741d14d55fbb83b5696f6f8592c1fb8
|
|
| BLAKE2b-256 |
524b3b8dd42cad935bb20ec2683102cf522c9fe8216718c352b8562c15429705
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
talespire_encoding-1.2.3-py3-none-any.whl -
Subject digest:
78621566eaf0d0885df25a90b04119eefe4fb1bbfb0dcca53ed5ca0dce8169d0 - Sigstore transparency entry: 1631650997
- Sigstore integration time:
-
Permalink:
Baldrax/TaleSpire-Encoding-Python@e5e8aa4992ec6093b76bcd39b19a52ad49ad770a -
Branch / Tag:
refs/tags/v1.2.3 - Owner: https://github.com/Baldrax
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@e5e8aa4992ec6093b76bcd39b19a52ad49ad770a -
Trigger Event:
release
-
Statement type: