forked from SilverStudioGames/WTS
Xray Displayable
* Added support for image references * Added support for LayeredImage, and LayeredImageProxy * Added the ability to use show statements as a proxy for Xray displayables * Added previously omitted mask child to the visit method * Restored automatic image definitions (As a part of CG implementation effort)
This commit is contained in:
parent
38214d719e
commit
6603c68262
@ -36,13 +36,18 @@ init python:
|
|||||||
"mask",
|
"mask",
|
||||||
]
|
]
|
||||||
|
|
||||||
def __init__(self, child, overlay, mask=Null(), radius=0.25, **kwargs):
|
def __init__(self, child, overlay, mask=Null(), radius=0.25, tag_prefix="xray", **properties):
|
||||||
super(Xray, self).__init__()
|
super(Xray, self).__init__(**properties)
|
||||||
|
|
||||||
self.child = renpy.displayable(child)
|
self._child = child
|
||||||
self.overlay = renpy.displayable(overlay)
|
self._overlay = overlay
|
||||||
self.mask = renpy.displayable(mask)
|
self._mask = mask
|
||||||
|
|
||||||
|
self.child = ImageReference(child) if isinstance(child, basestring) else child
|
||||||
|
self.overlay = ImageReference(overlay) if isinstance(overlay, basestring) else overlay
|
||||||
|
self.mask = ImageReference(mask) if isinstance(mask, basestring) else mask
|
||||||
self.radius = radius
|
self.radius = radius
|
||||||
|
self.tag_prefix = tag_prefix
|
||||||
self.target = (0, 0)
|
self.target = (0, 0)
|
||||||
|
|
||||||
def render(self, width, height, st, at):
|
def render(self, width, height, st, at):
|
||||||
@ -69,6 +74,29 @@ init python:
|
|||||||
|
|
||||||
return rv
|
return rv
|
||||||
|
|
||||||
|
def per_interact(self):
|
||||||
|
tag_prefix = self.tag_prefix
|
||||||
|
redraw = False
|
||||||
|
|
||||||
|
for layer in self.nosave:
|
||||||
|
child = getattr(self, layer)
|
||||||
|
|
||||||
|
if isinstance(child, ImageReference):
|
||||||
|
name = getattr(self, "_{}".format(layer))
|
||||||
|
attributes = renpy.get_attributes(name) or renpy.get_attributes("{}_{}".format(tag_prefix, layer))
|
||||||
|
|
||||||
|
if not attributes:
|
||||||
|
continue
|
||||||
|
|
||||||
|
attributes = " ".join(attributes)
|
||||||
|
|
||||||
|
child = ImageReference("{} {}".format(name, attributes))
|
||||||
|
setattr(self, layer, child)
|
||||||
|
redraw = True
|
||||||
|
|
||||||
|
if redraw:
|
||||||
|
renpy.redraw(self, 0)
|
||||||
|
|
||||||
def event(self, ev, x, y, st):
|
def event(self, ev, x, y, st):
|
||||||
|
|
||||||
if not pygame.mouse.get_focused():
|
if not pygame.mouse.get_focused():
|
||||||
@ -84,4 +112,4 @@ init python:
|
|||||||
renpy.redraw(self, 0)
|
renpy.redraw(self, 0)
|
||||||
|
|
||||||
def visit(self):
|
def visit(self):
|
||||||
return [ self.child, self.overlay ]
|
return [ self.child, self.overlay, self.mask ]
|
||||||
|
@ -80,10 +80,10 @@ define config.debug_image_cache = False
|
|||||||
# define config.predict_screens = False
|
# define config.predict_screens = False
|
||||||
|
|
||||||
# Disable automatic image scanning
|
# Disable automatic image scanning
|
||||||
define config.automatic_images = None
|
# define config.automatic_images = None
|
||||||
define config.images_directory = None
|
# define config.images_directory = None
|
||||||
init -1:
|
# init -1:
|
||||||
define config.late_images_scan = True
|
# define config.late_images_scan = True
|
||||||
|
|
||||||
# Saving and loading
|
# Saving and loading
|
||||||
define config.save_directory = "Witch Trainer Silver"
|
define config.save_directory = "Witch Trainer Silver"
|
||||||
|
Loading…
Reference in New Issue
Block a user