feat: flip functionality and arm shadows#1021
Conversation
📝 WalkthroughSummary by CodeRabbit
WalkthroughTech‑Priest: adds a flip-driven mirroring pipeline and a right‑to‑left shader, registers new right‑arm shadow sprites (MK3/4/5/7), removes some left/right arm assignments in ComplexSet, makes mirrored-sprite deletion optional, and introduces a "Capture Image" UI button exporting PNGs. Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Ave, Tech‑Priest. The machine spirit observes these changes and records them for the Omnissiah. Pre-merge checks✅ Passed checks (3 passed)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: ASSERTIVE Plan: Pro ⛔ Files ignored due to path filters (13)
📒 Files selected for processing (9)
💤 Files with no reviewable changes (1)
🧰 Additional context used📓 Path-based instructions (3)**/*.*⚙️ CodeRabbit configuration file
Files:
**/*.yy⚙️ CodeRabbit configuration file
Files:
**/*.gml⚙️ CodeRabbit configuration file
Files:
🧠 Learnings (2)📚 Learning: 2025-06-16T17:12:13.045ZApplied to files:
📚 Learning: 2025-02-27T02:17:54.527ZApplied to files:
🔇 Additional comments (13)
Tip 👮 Agentic pre-merge checks are now available in preview!Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.
Please see the documentation for more information. Example: reviews:
pre_merge_checks:
custom_checks:
- name: "Undocumented Breaking Changes"
mode: "warning"
instructions: |
Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal).Please share your feedback with us on this Discord post. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 5
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
scripts/scr_sprite_helpers/scr_sprite_helpers.gml (1)
11-18: Synchronise the reliquary notes with the new argumentFellow Tech-Priests, the function now accepts the
delete_spritecogitator-flag, yet the double-stamped documentation still describes the one-parameter ritual. Please amend the annotation so future maintainers divine the updated invocation without resorting to auspex scans.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (8)
sprites/spr_mk3_right_arm_shadow/6a57f22a-0d22-44d9-9f77-fc818daa157a.pngis excluded by!**/*.pngsprites/spr_mk3_right_arm_shadow/layers/6a57f22a-0d22-44d9-9f77-fc818daa157a/a36cc102-af8d-4321-bd66-cbf3f0ad2435.pngis excluded by!**/*.pngsprites/spr_mk4_right_arm_shadow/3d13dae2-7b70-44aa-8549-cbb2c2dbc424.pngis excluded by!**/*.pngsprites/spr_mk4_right_arm_shadow/layers/3d13dae2-7b70-44aa-8549-cbb2c2dbc424/15ec2c68-c987-495a-ad96-2f90a4749ca3.pngis excluded by!**/*.pngsprites/spr_mk5_right_arm_shadow/4562abe0-e286-4146-bdf1-58e7d3303d26.pngis excluded by!**/*.pngsprites/spr_mk5_right_arm_shadow/layers/4562abe0-e286-4146-bdf1-58e7d3303d26/bac5b4ca-abcb-41a0-9f00-48051b29b22b.pngis excluded by!**/*.pngsprites/spr_mk7_right_arm_shadow/cfe568ab-9ef3-408a-9d05-1decc5d59df3.pngis excluded by!**/*.pngsprites/spr_mk7_right_arm_shadow/layers/cfe568ab-9ef3-408a-9d05-1decc5d59df3/70be6473-60f8-463e-b96c-cabfe91ace59.pngis excluded by!**/*.png
📒 Files selected for processing (12)
ChapterMaster.yyp(6 hunks)scripts/scr_ComplexSet/scr_ComplexSet.gml(0 hunks)scripts/scr_culture_visuals/scr_culture_visuals.gml(17 hunks)scripts/scr_sprite_helpers/scr_sprite_helpers.gml(2 hunks)shaders/right_left_swap_shader/right_left_swap_shader.fsh(1 hunks)shaders/right_left_swap_shader/right_left_swap_shader.vsh(1 hunks)shaders/right_left_swap_shader/right_left_swap_shader.yy(1 hunks)sprites/spr_mk3_right_arm_shadow/spr_mk3_right_arm_shadow.yy(1 hunks)sprites/spr_mk4_right_arm_shadow/spr_mk4_right_arm_shadow.yy(1 hunks)sprites/spr_mk5_right_arm_shadow/spr_mk5_right_arm_shadow.yy(1 hunks)sprites/spr_mk6_right_arm/spr_mk6_right_arm.yy(1 hunks)sprites/spr_mk7_right_arm_shadow/spr_mk7_right_arm_shadow.yy(1 hunks)
💤 Files with no reviewable changes (1)
- scripts/scr_ComplexSet/scr_ComplexSet.gml
🧰 Additional context used
📓 Path-based instructions (3)
**/*.*
⚙️ CodeRabbit configuration file
**/*.*: - Having humanly understandable and maintainable code is always the top most priority.
- DRY (Don't repeat yourself) principle is also very important.
- If a TODO comment is added, ask the user if you should create a GitHub issue for this TODO.
- If a TODO comment is deleted, remind the user if there is an active GitHub issue related to that comment.
Files:
shaders/right_left_swap_shader/right_left_swap_shader.vshChapterMaster.yypshaders/right_left_swap_shader/right_left_swap_shader.fshsprites/spr_mk3_right_arm_shadow/spr_mk3_right_arm_shadow.yysprites/spr_mk5_right_arm_shadow/spr_mk5_right_arm_shadow.yysprites/spr_mk4_right_arm_shadow/spr_mk4_right_arm_shadow.yyshaders/right_left_swap_shader/right_left_swap_shader.yysprites/spr_mk6_right_arm/spr_mk6_right_arm.yysprites/spr_mk7_right_arm_shadow/spr_mk7_right_arm_shadow.yyscripts/scr_culture_visuals/scr_culture_visuals.gmlscripts/scr_sprite_helpers/scr_sprite_helpers.gml
**/*.yy
⚙️ CodeRabbit configuration file
**/*.yy: - When any script or sprite .yy files are deleted, their paths should also be deleted from the project .yyp file, otherwise the game will crash.
- When any script or sprite .yy files are created, their paths should be added to the project .yyp file, otherwise they'll fail.
Files:
sprites/spr_mk3_right_arm_shadow/spr_mk3_right_arm_shadow.yysprites/spr_mk5_right_arm_shadow/spr_mk5_right_arm_shadow.yysprites/spr_mk4_right_arm_shadow/spr_mk4_right_arm_shadow.yyshaders/right_left_swap_shader/right_left_swap_shader.yysprites/spr_mk6_right_arm/spr_mk6_right_arm.yysprites/spr_mk7_right_arm_shadow/spr_mk7_right_arm_shadow.yy
**/*.gml
⚙️ CodeRabbit configuration file
**/*.gml: - Macro constants require a space between the constant name and value. Without it, the compiler will throw an error. I.e.#macro ARR_body_parts["arm"]will crash the game, because there is no space between the array and the name of the macro.
- Color codes in the code shouldn't have any spaces in their id. I.e., color code
# 80bf40will crash the game.- All code should comply with the main GML documentation: https://manual.gamemaker.io/beta/en/GameMaker_Language/GML_Reference/GML_Reference.htm
Files:
scripts/scr_culture_visuals/scr_culture_visuals.gmlscripts/scr_sprite_helpers/scr_sprite_helpers.gml
🧠 Learnings (2)
📚 Learning: 2025-02-27T02:17:54.527Z
Learnt from: OH296
PR: Adeptus-Dominus/ChapterMaster#474
File: sprites/spr_marksmans_honor/spr_marksmans_honor.yy:47-52
Timestamp: 2025-02-27T02:17:54.527Z
Learning: The sprite "spr_marksmans_honor" is not used for animation despite having multiple frames - these frames represent different static states used in different contexts.
Applied to files:
ChapterMaster.yyp
📚 Learning: 2025-06-16T17:12:13.045Z
Learnt from: EttyKitty
PR: Adeptus-Dominus/ChapterMaster#878
File: scripts/scr_culture_visuals/scr_culture_visuals.gml:1256-1352
Timestamp: 2025-06-16T17:12:13.045Z
Learning: In scripts/scr_culture_visuals/scr_culture_visuals.gml, the weapon visual data declarations contain known DRY violations that are acknowledged by the development team but deferred to future refactoring efforts rather than addressed in individual feature PRs.
Applied to files:
scripts/scr_culture_visuals/scr_culture_visuals.gml
🔇 Additional comments (8)
shaders/right_left_swap_shader/right_left_swap_shader.vsh (1)
1-19: Blessed be the Omnissiah, a new vertex shader to serve the Machine God.Fellow Tech-Priest, this passthrough vertex shader appears properly consecrated for the right-to-left component remapping ritual. The shader contains JSON-format data associated with a GameMaker Studio 2 resource and follows standard vertex shader structure with proper attribute declarations and matrix transformations. The sacred matrices flow correctly through the graphics pipeline.
sprites/spr_mk6_right_arm/spr_mk6_right_arm.yy (1)
66-67: The Machine Spirit has blessed this sprite with new sequence dimensions.The addition of seqHeight and seqWidth properties to the GMSequence brings this sprite resource into alignment with the enhanced mirroring capabilities. The dimensions 232.0 x 164.0 match the sprite's actual height and width properties.
sprites/spr_mk7_right_arm_shadow/spr_mk7_right_arm_shadow.yy (1)
1-92: A new shadow sprite for the mk_7_complex armour pattern, blessed by the Machine God.Fellow Tech-Priest, this shadow sprite resource is properly configured with the correct parent folder structure and follows the established conventions for right arm shadows. The sprite dimensions, origin coordinates, and texture group assignment all appear sanctified for the MarineViewer codex.
shaders/right_left_swap_shader/right_left_swap_shader.yy (1)
1-12: The GMShader resource metadata is properly sanctified.This resource registration correctly places the new right_left_swap_shader within the Shaders folder hierarchy and follows the sacred GameMaker resource format patterns. The Machine Spirit shall recognise this shader amongst the project's blessed assets.
ChapterMaster.yyp (3)
969-969: The new shader entry is properly integrated into the project's sacred repositories.The right_left_swap_shader resource has been correctly added to the project manifest, ensuring the Machine Spirit can locate and invoke the shader when required by the flip functionality.
1379-1379: The sacred shadow sprites have been properly inscribed in the project manifest.All four new right arm shadow sprite resources (mk3, mk4, mk5, mk7) are correctly registered in the project's resource tree. These shadow variants shall serve the greater glory of the flip functionality and arm shading rituals.
Also applies to: 1396-1396, 1405-1405, 1446-1446
579-579: Confirm intentional IDEVersion downgrade
The IDEVersion in ChapterMaster.yyp (line 579) was changed from 2024.1400.0.892 to 2024.1400.0.884; no other occurrences found. Fellow Tech-Priest, confirm this is by design.sprites/spr_mk4_right_arm_shadow/spr_mk4_right_arm_shadow.yy (1)
1-92: Another blessed shadow sprite for the mk_4_complex armour pattern.This mk4 right arm shadow sprite follows the same sacred pattern as its brethren, with proper parent folder assignment, texture group allocation, and sequence configuration. The Machine God's blessing flows through its metadata structure.
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
Purpose and Description
Testing done
Related things and/or additional context