feat: ATL pictures/contains/function/time, colour matrices and more Python for Ren'Py
ATL
- Image blocks become timelines: picture steps with dissolve, parallel, contains,
finite repeat, time, function f(trans, st, at), calls of other transforms with
arguments, on hover/idle events for buttons. Animations stop when their element
leaves the page
- Pictures defined by an expression (get_face_path("base")) are drawn at show time
- Purely graphical hints (shader, mesh, gl_*, u_*) are accepted and dropped
Colour
- matrixcolor and im.matrix.* as 5x5 matrices combined with `*`, applied through SVG
filters; im.MatrixColor/Scale/Crop/Blur/Composite and Text/Image as values
Python
- match statement, re/copy/time/datetime/defaultdict/functools.partial, more
str/dict methods, Character(...) created by code
- narrator("..."), Character calls, renpy.say and renpy.show/hide with expressions in
Python blocks become script nodes
- Audit follows reachability: functions and classes nothing refers to (custom
statement lexers, unused tools) no longer block an import
Docs: README and ARCHITECTURE now describe a multi-engine library (GameMaker and
QSP planned). Tests for the new runtime pieces.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
62ece25902
commit
ea03cebf6a
21 files changed
+1264
-93
No files matched your search
@@ -102,8 +102,7 @@ def test_renpy_atl_animation_becomes_a_timeline_not_a_static_pose():
|
||||
|
||||
|
||||
def test_renpy_atl_constructs_without_a_runtime_are_still_rejected():
|
||||
for body in ("function slide", "time 1.0:\n xalign 1.0", "matrixcolor TintMatrix('#f00')",
|
||||
"contains:\n 'a.png'"):
|
||||
for body in ("time 1.0:\n xalign 1.0", "knot (0, 0)", "circles 0.5", "contains 'a.png'"):
|
||||
unused = script(f'transform odd:\n {body}\nlabel start:\n "Hi"')
|
||||
require_supported_scripts(unused) # nothing shows it, so it cannot break the game
|
||||
used = script(f'transform odd:\n {body}\nlabel start:\n show eileen at odd\n "Hi"')
|
||||
|
||||
Reference in new issue
Block a user