Encoding and decoding tools for TaleSpire data
Project description
TaleSpire-Encoding-Python
Encoding/Decoding tools for TaleSpire
This repository is just getting started.
It currently contains two encoding types:
- Slabs (v1, v2)
- Creature Blueprints (v1, v2)
Installation:
With pip you can install specific releases.
pip install git+https://github.com/Baldrax/TaleSpire-Encoding-Python.git@vX.X.X
Replace the version with the version you want to install:
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.2.tar.gz
(27.9 kB
view details)
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.2.tar.gz.
File metadata
- Download URL: talespire_encoding-1.2.2.tar.gz
- Upload date:
- Size: 27.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3caf71e8695e6640249a03284dc43622e75bbd013f59c1398b547a57bee68387
|
|
| MD5 |
baf632f676e24940c2476630cafed391
|
|
| BLAKE2b-256 |
b29d51ffb8ec1057a55b6720e3baa64176801eb56004951178c95ee7da3b5bf7
|
File details
Details for the file talespire_encoding-1.2.2-py3-none-any.whl.
File metadata
- Download URL: talespire_encoding-1.2.2-py3-none-any.whl
- Upload date:
- Size: 25.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c78d469435fd02bd904801d6a685ef1cee5d8156fb5be240d2e3a65e64c1c5d
|
|
| MD5 |
231ad44274167f4026be61c60d15a9c5
|
|
| BLAKE2b-256 |
f8b8633ffcc35f6fb575161a908a79ad91cc41db1b0295ee9603308fc3b2ce80
|