Compare commits

..

5 Commits

Author SHA1 Message Date
f5ef31c88b Merge branch 'current' into dev 2023-10-18 12:57:55 +01:00
6fbf369d3e Bug fix
* Fixed sorting of numbered doll layers starting with double digits
2023-10-18 12:48:35 +01:00
7e768adddf Bug fix
Fixed flipped parameters in Bodyparts class init code, causing issues with mods
2023-09-08 20:40:46 +01:00
5d7c09a8a8 Bug fix
* Fixed update logo path
* Updated internals
2023-07-27 20:09:13 +01:00
083b8e4f3c Update whitespace 2023-07-27 17:40:02 +01:00
4 changed files with 12 additions and 6 deletions

View File

@ -9,7 +9,7 @@ init 1 python:
}
def __init__(self, name, categories, type, id, zorder=None, unlocked=False, level=0, blacklist=[], parent=None, modpath=None):
super().__init__(name, categories, type, id, None, zorder, unlocked, level, blacklist, parent, modpath)
super().__init__(name, categories, type, id, None, zorder, unlocked, level, blacklist, modpath, parent)
def __repr__(self):
return f"DollBodypart(name={self.name}, categories={self.categories}, type={self.type}, id={self.id}, color={self.color}, zorder={self.zorder}, unlocked={self.unlocked}, level={self.level}, blacklist={self.blacklist}, parent={self.parent}, modpath={self.modpath or None})"

View File

@ -69,7 +69,7 @@ init python:
salt = str( [self.name, self.char.pose, self.type, self.id, str(self.color), str(self.char.body._hash)] )
return hash(salt)
@functools.cache
@functools.cache # <- TODO: Reevaluate if this function should allow multiple caches (aside from different subpaths)
def get_layers(self, hash, subpath=""):
path = posixpath.join(self.modpath, "characters", self.name, "poses", self.char.pose, subpath, "clothes", self.type, self.id)
@ -130,7 +130,7 @@ init python:
else:
layers.setdefault(ltype, [f, zorder])
return layers
return dict(sorted(layers.items(), key=lambda x: (extract_number(x[0]), x[0])))
@functools.cache
def build_image(self, hash, subpath="", matrix=None, maxsize=(1010, 1200)):

View File

@ -225,3 +225,9 @@ init python early:
def execute_callbacks(callbacks):
for callback in callbacks: callback()
def extract_number(key):
match = re.match(r'^(\d+)', key)
if match:
return int(match.group(1))
return float('inf') # Return a large number for non-numeric keys

View File

@ -1,7 +1,7 @@
init python:
import requests
UPDATE_URL = bytes.fromhex("687474703a2f2f757064617465732e73696c76657273747564696f67616d65732e6f72672f6173736574732f757064617465732e6a736f6e").decode()
UPDATE_URL = bytes.fromhex("687474703a2f2f757064617465732e73696c76657273747564696f67616d65732e6f7267").decode()
UPDATE_VER = None
UPDATE_HINT = ""
@ -192,7 +192,7 @@ init python:
return im.Data(data, path)
# Fetch file if doesn't exist
url = url.split("updates.json")[0] + "logo.webp"
url = os.path.join(url.split("updates.json")[0], "logo.webp")
try:
response = requests.get(url, timeout=5)