Refactoring
This commit is contained in:
parent
c352f8cea3
commit
e5a7060af9
@ -13,8 +13,8 @@ init python:
|
|||||||
sprites = []
|
sprites = []
|
||||||
|
|
||||||
# Add body parts and skin layers from clothes, face, cum
|
# Add body parts and skin layers from clothes, face, cum
|
||||||
sprites.extend(("{}{}/{}.webp".format(self.imagepath, k, v[0]), v[1]) for k, v in self.body.iteritems() if v[0]) # Body parts
|
sprites.extend(("{}{}/{}.webp".format(self.imagepath, k, v[0]), v[1]) for k, v in self.body.items() if v[0]) # Body parts
|
||||||
sprites.extend((o[0].skin, self.zorder_skin) for o in self.char.clothes.itervalues() if o[0] and o[0].skin and o[2]) # Clothes skin
|
sprites.extend((o[0].skin, self.zorder_skin) for o in self.char.clothes.values() if o[0] and o[0].skin and o[2]) # Clothes skin
|
||||||
sprites.extend((x, self.zorder_skin) for x in self.char.face.get_skin()) # Face skin
|
sprites.extend((x, self.zorder_skin) for x in self.char.face.get_skin()) # Face skin
|
||||||
sprites.extend((x, self.zorder_skin) for x in self.char.cum.get_skin()) # Cum skin
|
sprites.extend((x, self.zorder_skin) for x in self.char.cum.get_skin()) # Cum skin
|
||||||
|
|
||||||
@ -31,7 +31,7 @@ init python:
|
|||||||
sprites = []
|
sprites = []
|
||||||
|
|
||||||
# Add body parts and skin layers from clothes
|
# Add body parts and skin layers from clothes
|
||||||
sprites.extend(("{}{}/{}.webp".format(self.imagepath, k, v[0]), v[1]) for k, v in self.body.iteritems() if v[0])
|
sprites.extend(("{}{}/{}.webp".format(self.imagepath, k, v[0]), v[1]) for k, v in self.body.items() if v[0])
|
||||||
if group:
|
if group:
|
||||||
sprites.extend((o.skin, self.zorder_skin) for o in group if o and o.skin)
|
sprites.extend((o.skin, self.zorder_skin) for o in group if o and o.skin)
|
||||||
|
|
||||||
@ -50,7 +50,7 @@ init python:
|
|||||||
"""Takes keyword argument(s) with the string name of body part file(s). Returns True if image is changed."""
|
"""Takes keyword argument(s) with the string name of body part file(s). Returns True if image is changed."""
|
||||||
changed = False
|
changed = False
|
||||||
|
|
||||||
for arg, value in kwargs.iteritems():
|
for arg, value in kwargs.items():
|
||||||
if value != self.body[str(arg)][0]:
|
if value != self.body[str(arg)][0]:
|
||||||
self.body[str(arg)][0] = value
|
self.body[str(arg)][0] = value
|
||||||
changed = True
|
changed = True
|
||||||
@ -72,7 +72,7 @@ init python:
|
|||||||
"""Takes keyword argument(s) with the string name of body type(s) and int value(s). Returns True if image is changed."""
|
"""Takes keyword argument(s) with the string name of body type(s) and int value(s). Returns True if image is changed."""
|
||||||
changed = False
|
changed = False
|
||||||
|
|
||||||
for arg, value in kwargs.iteritems():
|
for arg, value in kwargs.items():
|
||||||
if value != self.body[str(arg)][1]:
|
if value != self.body[str(arg)][1]:
|
||||||
self.body[str(arg)][1] = value
|
self.body[str(arg)][1] = value
|
||||||
changed = True
|
changed = True
|
||||||
|
@ -54,7 +54,7 @@ init python:
|
|||||||
for x in self.layers_additional:
|
for x in self.layers_additional:
|
||||||
self.__dict__[x] = []
|
self.__dict__[x] = []
|
||||||
|
|
||||||
for i in xrange(self.layers):
|
for i in range(self.layers):
|
||||||
path = "{}{}_{}.webp".format(self.imagepath, i, x)
|
path = "{}{}_{}.webp".format(self.imagepath, i, x)
|
||||||
if renpy.loadable(path):
|
if renpy.loadable(path):
|
||||||
self.__dict__[x].append(path)
|
self.__dict__[x].append(path)
|
||||||
@ -65,7 +65,7 @@ init python:
|
|||||||
self.__dict__[x+"_outline"] = path if renpy.loadable(path) else None
|
self.__dict__[x+"_outline"] = path if renpy.loadable(path) else None
|
||||||
|
|
||||||
def build_image(self):
|
def build_image(self):
|
||||||
sprites = [(self.apply_color("{}{}.webp".format(self.imagepath, x), x), x) for x in xrange(self.layers)]
|
sprites = [(self.apply_color("{}{}.webp".format(self.imagepath, x), x), x) for x in range(self.layers)]
|
||||||
|
|
||||||
# Add extra layers if exist
|
# Add extra layers if exist
|
||||||
for n, x in enumerate(self.layers_extra):
|
for n, x in enumerate(self.layers_extra):
|
||||||
|
@ -10,23 +10,23 @@ init python:
|
|||||||
self.cum = dict((k, None) for k in {"hair", "face", "breasts", "body", "crotch", "pussy", "legs"})
|
self.cum = dict((k, None) for k in {"hair", "face", "breasts", "body", "crotch", "pussy", "legs"})
|
||||||
|
|
||||||
def build_image(self):
|
def build_image(self):
|
||||||
sprites = tuple("{}{}/{}.webp".format(self.imagepath, k, v) for k, v in self.cum.iteritems() if v != None)
|
sprites = tuple("{}{}/{}.webp".format(self.imagepath, k, v) for k, v in self.cum.items() if v != None)
|
||||||
return sprites
|
return sprites
|
||||||
|
|
||||||
def get_skin(self):
|
def get_skin(self):
|
||||||
return ["{}{}/{}_skin.webp".format(self.imagepath, k, v) for k, v in self.cum.iteritems() if renpy.loadable("{}{}/{}_skin.webp".format(self.imagepath, k, v))]
|
return ["{}{}/{}_skin.webp".format(self.imagepath, k, v) for k, v in self.cum.items() if renpy.loadable("{}{}/{}_skin.webp".format(self.imagepath, k, v))]
|
||||||
|
|
||||||
def set_cum(self, *args, **kwargs):
|
def set_cum(self, *args, **kwargs):
|
||||||
"""Takes keyword argument(s) containing string name(s) of cum layers to apply or None. Returns True if image is changed."""
|
"""Takes keyword argument(s) containing string name(s) of cum layers to apply or None. Returns True if image is changed."""
|
||||||
changed = False
|
changed = False
|
||||||
|
|
||||||
if args:
|
if args:
|
||||||
for k, v in self.cum.iteritems():
|
for k, v in self.cum.items():
|
||||||
if v != args[0]:
|
if v != args[0]:
|
||||||
self.cum[k] = args[0]
|
self.cum[k] = args[0]
|
||||||
changed = True
|
changed = True
|
||||||
|
|
||||||
for arg, value in kwargs.iteritems():
|
for arg, value in kwargs.items():
|
||||||
if str(arg) != value:
|
if str(arg) != value:
|
||||||
self.cum[str(arg)] = value
|
self.cum[str(arg)] = value
|
||||||
changed = True
|
changed = True
|
||||||
|
@ -14,7 +14,7 @@ init python:
|
|||||||
### TODO: This piece of code needs to be simplified.
|
### TODO: This piece of code needs to be simplified.
|
||||||
|
|
||||||
# Add facial expressions
|
# Add facial expressions
|
||||||
for k, v in self.face.iteritems():
|
for k, v in self.face.items():
|
||||||
if v[0] and k not in ("eyes", "pupils"):
|
if v[0] and k not in ("eyes", "pupils"):
|
||||||
sprites.append(("{}{}/{}.webp".format(self.imagepath, k, v[0]), v[1]))
|
sprites.append(("{}{}/{}.webp".format(self.imagepath, k, v[0]), v[1]))
|
||||||
|
|
||||||
@ -51,18 +51,18 @@ init python:
|
|||||||
return sprites
|
return sprites
|
||||||
|
|
||||||
def get_skin(self):
|
def get_skin(self):
|
||||||
for k, v in self.face.iteritems():
|
for k, v in self.face.items():
|
||||||
skin_path = "{}{}/{}_skin.webp".format(self.imagepath, k, v[0])
|
skin_path = "{}{}/{}_skin.webp".format(self.imagepath, k, v[0])
|
||||||
if renpy.loadable(skin_path):
|
if renpy.loadable(skin_path):
|
||||||
yield skin_path
|
yield skin_path
|
||||||
|
|
||||||
def get_face(self):
|
def get_face(self):
|
||||||
return dict((k, v[0]) for k, v in self.face.iteritems())
|
return dict((k, v[0]) for k, v in self.face.items())
|
||||||
|
|
||||||
def set_face(self, **kwargs):
|
def set_face(self, **kwargs):
|
||||||
"""Takes keyword argument(s) with the string name of expression file(s). Returns True if image is changed."""
|
"""Takes keyword argument(s) with the string name of expression file(s). Returns True if image is changed."""
|
||||||
changed = False
|
changed = False
|
||||||
for arg, value in kwargs.iteritems():
|
for arg, value in kwargs.items():
|
||||||
if value not in (self.face[str(arg)][0], False):
|
if value not in (self.face[str(arg)][0], False):
|
||||||
self.face[str(arg)][0] = value
|
self.face[str(arg)][0] = value
|
||||||
changed = True
|
changed = True
|
||||||
@ -84,7 +84,7 @@ init python:
|
|||||||
def set_zorder(self, **kwargs):
|
def set_zorder(self, **kwargs):
|
||||||
"""Takes keyword argument(s) with the string name of face type(s) and int value(s). Returns True if image is changed."""
|
"""Takes keyword argument(s) with the string name of face type(s) and int value(s). Returns True if image is changed."""
|
||||||
changed = False
|
changed = False
|
||||||
for arg, value in kwargs.iteritems():
|
for arg, value in kwargs.items():
|
||||||
if value != self.face[str(arg)][1]:
|
if value != self.face[str(arg)][1]:
|
||||||
self.face[str(arg)][1] = value
|
self.face[str(arg)][1] = value
|
||||||
changed = True
|
changed = True
|
||||||
|
@ -10,4 +10,3 @@ init python:
|
|||||||
|
|
||||||
outfit_last = outfit = get_character_outfit(c, type="last")
|
outfit_last = outfit = get_character_outfit(c, type="last")
|
||||||
outfit_last.save()
|
outfit_last.save()
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ init python:
|
|||||||
|
|
||||||
for x in self.layers_additional:
|
for x in self.layers_additional:
|
||||||
self.__dict__[x] = []
|
self.__dict__[x] = []
|
||||||
for i in xrange(self.layers):
|
for i in range(self.layers):
|
||||||
path = "{}{}_{}.webp".format(self.imagepath, i, x)
|
path = "{}{}_{}.webp".format(self.imagepath, i, x)
|
||||||
if renpy.loadable(path):
|
if renpy.loadable(path):
|
||||||
self.__dict__[x].append(path)
|
self.__dict__[x].append(path)
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -9,7 +9,7 @@ init python:
|
|||||||
self.price = price
|
self.price = price
|
||||||
self.char = self.group[0].char
|
self.char = self.group[0].char
|
||||||
self.unlocked = unlocked
|
self.unlocked = unlocked
|
||||||
self.schedule = dict(self.default_schedule.items() + schedule.items())
|
self.schedule = dict(list(self.default_schedule.items()) + list(schedule.items()))
|
||||||
self.hash = self.generate_hash()
|
self.hash = self.generate_hash()
|
||||||
self.temp = temp
|
self.temp = temp
|
||||||
self.hidden = hidden
|
self.hidden = hidden
|
||||||
@ -33,7 +33,7 @@ init python:
|
|||||||
return self.hash == obj.hash
|
return self.hash == obj.hash
|
||||||
|
|
||||||
def generate_hash(self):
|
def generate_hash(self):
|
||||||
salt = str( sorted([ sorted([x.name, x.type, x.id, x.color]) for x in self.group ]) )
|
salt = str( sorted( [sorted([x.name, x.type, x.id, str(x.color)] ) for x in self.group]) )
|
||||||
return hash(salt)
|
return hash(salt)
|
||||||
|
|
||||||
def delete(self):
|
def delete(self):
|
||||||
@ -127,7 +127,7 @@ init python:
|
|||||||
def save(self):
|
def save(self):
|
||||||
"""Overwrites this outfit with clothes currently equipped by the character."""
|
"""Overwrites this outfit with clothes currently equipped by the character."""
|
||||||
self.group = []
|
self.group = []
|
||||||
for v in self.char.clothes.itervalues():
|
for v in self.char.clothes.values():
|
||||||
if v[0]:
|
if v[0]:
|
||||||
self.group.append(v[0].clone())
|
self.group.append(v[0].clone())
|
||||||
self.rebuild_image()
|
self.rebuild_image()
|
||||||
@ -149,7 +149,7 @@ init python:
|
|||||||
return self.schedule
|
return self.schedule
|
||||||
|
|
||||||
def set_schedule(self, **kwargs):
|
def set_schedule(self, **kwargs):
|
||||||
for k, v in kwargs.iteritems():
|
for k, v in kwargs.items():
|
||||||
self.schedule[k] = v
|
self.schedule[k] = v
|
||||||
|
|
||||||
def has_type(self, *args):
|
def has_type(self, *args):
|
||||||
@ -168,7 +168,7 @@ init python:
|
|||||||
def has_any_type(self, *args):
|
def has_any_type(self, *args):
|
||||||
"""Takes arguments containing string cloth types. Returns True if ANY of them is worn, False otherwise."""
|
"""Takes arguments containing string cloth types. Returns True if ANY of them is worn, False otherwise."""
|
||||||
if "clothes" in args:
|
if "clothes" in args:
|
||||||
for k in self.char.clothes.iterkeys():
|
for k in self.char.clothes.keys():
|
||||||
if not k.startswith(self.blacklist_toggles):
|
if not k.startswith(self.blacklist_toggles):
|
||||||
if self.has_type(k):
|
if self.has_type(k):
|
||||||
return True
|
return True
|
||||||
|
@ -2,19 +2,14 @@ init python:
|
|||||||
import threading
|
import threading
|
||||||
|
|
||||||
class DollThread(threading.Thread, NoRollback):
|
class DollThread(threading.Thread, NoRollback):
|
||||||
def __init__(self, group=None, target=None, name=None, args=(), kwargs={}, Verbose=None):
|
def __init__(self, group=None, target=None, name=None, args=(), kwargs=None, *, daemon=None):
|
||||||
super(DollThread, self).__init__(group, target, name, args, kwargs, Verbose)
|
threading.Thread.__init__(self, group, target, name, args, kwargs, daemon=daemon)
|
||||||
|
|
||||||
self._return = None
|
self._return = None
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
try:
|
if self._target is not None:
|
||||||
self._return = self._Thread__target(*self._Thread__args, **self._Thread__kwargs)
|
self._return = self._target(*self._args, **self._kwargs)
|
||||||
except:
|
|
||||||
import traceback
|
|
||||||
traceback.print_exc()
|
|
||||||
|
|
||||||
if config.developer:
|
|
||||||
raise Exception("Thread just pooped itself.")
|
|
||||||
|
|
||||||
renpy.restart_interaction()
|
renpy.restart_interaction()
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ init -1 python:
|
|||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
queue = self.queue
|
queue = self.queue
|
||||||
queue = filter(lambda x: (x.wait <= 0) and (x.daytime == game.daytime), queue)
|
queue = [x for x in queue if (x.wait <= 0) and (x.daytime == game.daytime)]
|
||||||
queue.sort(key=lambda x: x.priority)
|
queue.sort(key=lambda x: x.priority)
|
||||||
|
|
||||||
for ev in queue:
|
for ev in queue:
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -30,12 +30,12 @@ init -1 python:
|
|||||||
output.append("zero")
|
output.append("zero")
|
||||||
else:
|
else:
|
||||||
s = str(n)
|
s = str(n)
|
||||||
groups = (len(s)+2)/3
|
groups = (len(s)+2)//3
|
||||||
s = s.zfill(groups*3)
|
s = s.zfill(groups*3)
|
||||||
|
|
||||||
for i in xrange(0, groups*3, 3):
|
for i in range(0, groups*3, 3):
|
||||||
h,t,u = int(s[i]), int(s[i+1]), int(s[i+2])
|
h,t,u = int(s[i]), int(s[i+1]), int(s[i+2])
|
||||||
g = groups-(i/3+1)
|
g = groups-(i//3+1)
|
||||||
|
|
||||||
if h > 0:
|
if h > 0:
|
||||||
output.append(units[h]+" hundred")
|
output.append(units[h]+" hundred")
|
||||||
@ -120,7 +120,7 @@ init -1 python:
|
|||||||
if isinstance(obj, _list):
|
if isinstance(obj, _list):
|
||||||
return [make_revertable(x) for x in obj]
|
return [make_revertable(x) for x in obj]
|
||||||
elif isinstance(obj, _dict):
|
elif isinstance(obj, _dict):
|
||||||
return dict([(make_revertable(k), make_revertable(v)) for (k,v) in obj.iteritems()])
|
return dict([(make_revertable(k), make_revertable(v)) for (k,v) in obj.items()])
|
||||||
else:
|
else:
|
||||||
return obj
|
return obj
|
||||||
|
|
||||||
@ -136,10 +136,10 @@ init -1 python:
|
|||||||
|
|
||||||
def timeit(func, loops=10000, args=(), kwargs={}):
|
def timeit(func, loops=10000, args=(), kwargs={}):
|
||||||
start = time.time()
|
start = time.time()
|
||||||
for i in xrange(loops):
|
for i in range(loops):
|
||||||
func(*args, **kwargs)
|
func(*args, **kwargs)
|
||||||
end = time.time()
|
end = time.time()
|
||||||
print("The task has taken {} seconds to finish".format(end-start))
|
print(f"The task has taken {end-start} seconds to finish")
|
||||||
|
|
||||||
def list_swap_values(l, val1, val2):
|
def list_swap_values(l, val1, val2):
|
||||||
"""Mutates the original list."""
|
"""Mutates the original list."""
|
||||||
@ -191,7 +191,7 @@ init -1 python:
|
|||||||
renpy.display.tts.tts(str(s))
|
renpy.display.tts.tts(str(s))
|
||||||
|
|
||||||
def is_in_lead(house):
|
def is_in_lead(house):
|
||||||
if isinstance(house, basestring):
|
if isinstance(house, str):
|
||||||
house = getattr(renpy.store, house)
|
house = getattr(renpy.store, house)
|
||||||
|
|
||||||
return (house == max(gryffindor, slytherin, ravenclaw, hufflepuff))
|
return (house == max(gryffindor, slytherin, ravenclaw, hufflepuff))
|
||||||
|
@ -101,7 +101,7 @@ init python:
|
|||||||
|
|
||||||
# We need to make sure not to add quotes
|
# We need to make sure not to add quotes
|
||||||
# to expressions or variables.
|
# to expressions or variables.
|
||||||
if isinstance(val, basestring):
|
if isinstance(val, str):
|
||||||
val = "\"{}\"".format(val)
|
val = "\"{}\"".format(val)
|
||||||
|
|
||||||
# Insert new expression
|
# Insert new expression
|
||||||
@ -109,11 +109,11 @@ init python:
|
|||||||
d[expr] = val
|
d[expr] = val
|
||||||
|
|
||||||
# Convert to list of tuples
|
# Convert to list of tuples
|
||||||
# l = [(k, "\"{}\"".format(v)) for k, v in d.iteritems() if not v is None] # This is faster, but not robust enough.
|
# l = [(k, "\"{}\"".format(v)) for k, v in d.items() if not v is None] # This is faster, but not robust enough.
|
||||||
|
|
||||||
l = _list()
|
l = _list()
|
||||||
|
|
||||||
for key, val in d.iteritems():
|
for key, val in d.items():
|
||||||
if key in kw_args and val is None:
|
if key in kw_args and val is None:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@ -268,7 +268,7 @@ init python:
|
|||||||
|
|
||||||
for expr in ("mouth", "eyes", "eyebrows", "pupils", "cheeks", "tears"):
|
for expr in ("mouth", "eyes", "eyebrows", "pupils", "cheeks", "tears"):
|
||||||
path = "characters/{}/face/{}/".format(name, expr)
|
path = "characters/{}/face/{}/".format(name, expr)
|
||||||
files = filter(lambda x: path in x, all_files)
|
files = [x for x in all_files if path in x]
|
||||||
|
|
||||||
d[key][expr] = [x.split(path)[1].split(".webp")[0] for x in files if x.endswith(".webp") and not any(f in x for f in filters)]
|
d[key][expr] = [x.split(path)[1].split(".webp")[0] for x in files if x.endswith(".webp") and not any(f in x for f in filters)]
|
||||||
|
|
||||||
@ -290,7 +290,7 @@ init python:
|
|||||||
# Define expressions for Snape.
|
# Define expressions for Snape.
|
||||||
filters = ("b01", "b01_01", "b02", "picture_Frame", "wand")
|
filters = ("b01", "b01_01", "b02", "picture_Frame", "wand")
|
||||||
path = "characters/snape/main/"
|
path = "characters/snape/main/"
|
||||||
files = filter(lambda x: path in x, all_files)
|
files = [x for x in all_files if path in x]
|
||||||
|
|
||||||
d["sna"] = _dict()
|
d["sna"] = _dict()
|
||||||
d["sna"]["expression"] = [x.split(path)[1].split(".webp")[0] for x in files if x.endswith(".webp") and not any(f in x for f in filters)]
|
d["sna"]["expression"] = [x.split(path)[1].split(".webp")[0] for x in files if x.endswith(".webp") and not any(f in x for f in filters)]
|
||||||
@ -338,7 +338,7 @@ init python:
|
|||||||
# if we don't, we'll end up messing up
|
# if we don't, we'll end up messing up
|
||||||
# the order of keywordless arguments.
|
# the order of keywordless arguments.
|
||||||
imap = {v: i for i, v in enumerate(keywords)}
|
imap = {v: i for i, v in enumerate(keywords)}
|
||||||
d[who] = OrderedDict(sorted(d[who].items(), key=lambda x: imap[x[0]]))
|
d[who] = OrderedDict(sorted(list(d[who].items()), key=lambda x: imap[x[0]]))
|
||||||
return d
|
return d
|
||||||
|
|
||||||
def get_expression_types(self, who):
|
def get_expression_types(self, who):
|
||||||
@ -349,7 +349,7 @@ init python:
|
|||||||
|
|
||||||
def get_expressions_active_type(self, who, type):
|
def get_expressions_active_type(self, who, type):
|
||||||
expr = self.get_expressions_active(who).get(type)
|
expr = self.get_expressions_active(who).get(type)
|
||||||
if isinstance(expr, basestring):
|
if isinstance(expr, str):
|
||||||
expr = strip(expr)
|
expr = strip(expr)
|
||||||
return expr
|
return expr
|
||||||
|
|
||||||
@ -371,7 +371,7 @@ init python:
|
|||||||
|
|
||||||
def get_expressions_last_type(self, who, type):
|
def get_expressions_last_type(self, who, type):
|
||||||
expr = self.get_expressions_last(who).get(type, None)
|
expr = self.get_expressions_last(who).get(type, None)
|
||||||
if isinstance(expr, basestring):
|
if isinstance(expr, str):
|
||||||
expr = strip(expr)
|
expr = strip(expr)
|
||||||
return expr
|
return expr
|
||||||
|
|
||||||
@ -391,7 +391,7 @@ init python:
|
|||||||
if last == active:
|
if last == active:
|
||||||
return
|
return
|
||||||
|
|
||||||
for type, val in persistent.iteritems():
|
for type, val in persistent.items():
|
||||||
if val is False:
|
if val is False:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@ -459,7 +459,7 @@ screen editor():
|
|||||||
if e.node:
|
if e.node:
|
||||||
vbox:
|
vbox:
|
||||||
hbox:
|
hbox:
|
||||||
for expr_type in e.get_expression_types(e.node.who).iterkeys():
|
for expr_type in e.get_expression_types(e.node.who).keys():
|
||||||
textbutton "[expr_type]":
|
textbutton "[expr_type]":
|
||||||
action [CaptureFocus(expr_type), SetScreenVariable("focused", expr_type)]
|
action [CaptureFocus(expr_type), SetScreenVariable("focused", expr_type)]
|
||||||
selected GetFocusRect(expr_type)
|
selected GetFocusRect(expr_type)
|
||||||
@ -510,7 +510,7 @@ screen editor():
|
|||||||
textbutton "[e.live_code]" action SetScreenVariable("focused", 0)
|
textbutton "[e.live_code]" action SetScreenVariable("focused", 0)
|
||||||
|
|
||||||
if e.node:
|
if e.node:
|
||||||
for expr_type, expr_list in e.get_expression_types(e.node.who).iteritems():
|
for expr_type, expr_list in e.get_expression_types(e.node.who).items():
|
||||||
|
|
||||||
if GetFocusRect(expr_type):
|
if GetFocusRect(expr_type):
|
||||||
dismiss action [ClearFocus(expr_type), SetScreenVariable("focused", None)]
|
dismiss action [ClearFocus(expr_type), SetScreenVariable("focused", None)]
|
||||||
|
@ -4,7 +4,7 @@ init python:
|
|||||||
line = fp.readline()
|
line = fp.readline()
|
||||||
while line:
|
while line:
|
||||||
path, area = line.strip("\r\n").split(':')
|
path, area = line.strip("\r\n").split(':')
|
||||||
whitespace_dict[path] = map(int, area.split(','))
|
whitespace_dict[path] = list(map(int, area.split(',')))
|
||||||
line = fp.readline()
|
line = fp.readline()
|
||||||
|
|
||||||
def crop_whitespace(path):
|
def crop_whitespace(path):
|
||||||
@ -25,7 +25,7 @@ init python:
|
|||||||
return Transform(sprite, crop=(x, y, w, h), xsize=xsize, ysize=ysize, fit="contain", matrixcolor=matrix, subpixel=True)
|
return Transform(sprite, crop=(x, y, w, h), xsize=xsize, ysize=ysize, fit="contain", matrixcolor=matrix, subpixel=True)
|
||||||
|
|
||||||
def get_zoom(image, size):
|
def get_zoom(image, size):
|
||||||
if isinstance(image, basestring):
|
if isinstance(image, str):
|
||||||
image = Image(image)
|
image = Image(image)
|
||||||
|
|
||||||
r = renpy.render(image, 800, 800, 0, 0)
|
r = renpy.render(image, 800, 800, 0, 0)
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user