Symbol depth: instance animation, button states, and the sixteen symbol.* commands the shell never binds

未关闭
#137 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
25/100
Issue 类型
功能
描述清晰度
基本清楚
活跃度
活跃
技术栈
rust
领域
desktop-dev

调研方向

Start with the parity matrix in docs/planning/generated/dom-parity.md and decision 0044, which list the setAnimInstance* verbs as carried in the engine, then find where the shell's menus, panels and tools dispatch commands. Each of the sixteen symbol.* commands needs a real dispatch from the shell surface, and the renderer must honour any value it writes. Done means the reachability measurement rises, the floor is re-pinned with cargo run -p xtask -- reachability --bless, and a regression test fails when a binding is removed.

由索引模型根据 Issue 内容生成。

描述

enhancement parity

The engine already carries these sixteen symbol.* commands; the shell's designed surface never binds any of them.

The DOM parity matrix (docs/planning/generated/dom-parity.md) marks all six setAnimInstance* verbs as carried (decision 0044) — the engine writes the ANNi / ANXf / ANYf / ANRi carriers and they round-trip. What is missing is the surface: a user cannot set an instance's frame count, loop count, offset, rotation, scale or start/end opacity, and CS6 exposes all six. The loop count also closes a residual already recorded in docs/NEXT.md (20.3) and docs/TASKS.md row 8 — "a document-level loop count (CS6's {loopCount:%Ai})".

The commands:

  • symbol.setAnimInstanceNumFrames, symbol.setAnimInstanceLoopCount, symbol.setAnimInstanceOffsetDist, symbol.setAnimInstanceRotationAmount, symbol.setAnimInstanceScaleAmount, symbol.setAnimInstanceStartEndOpacity — the instance animation properties.
  • symbol.setButtonOptions, symbol.setButtonAutoSlice, symbol.setButtonShowDownOnLoad, symbol.setButtonIncludeDownState, symbol.setButtonIncludeOverWhileDownState — the button-symbol states and the auto-slice wiring.
  • symbol.setParam, symbol.setCustomData — the parameter and custom-data carriers.
  • symbol.editDetach, symbol.editReorder — the symbol editor's detach and reorder verbs.
  • symbol.duplicateSymbolForAlias — the alias duplication path (decision 0053).

Acceptance:

  • each command named here is dispatched from the shell's designed surface — a menu row, a panel field or a tool action. A literal in a comment does not count: the gate is a literal scan, and the binding has to be a real dispatch.
  • where the surface writes a value the renderer ignores, the renderer honours it too. A field that engages and changes nothing observable is not a binding.
  • the reachability measurement rises accordingly and the floor is re-pinned deliberately with cargo run -p xtask -- reachability --bless (the bless refuses to lower it).
  • a regression test fails when the binding is removed.
主要语言
Rust
星标
11
派生
1
平均合并
13 小时 16 分钟
30 天内合并 PR
38

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

aliasfoxkde/FireCraft 的其他 Issue

查看 aliasfoxkde/FireCraft 的全部 Issue

相似的 Issue

更多 Rust Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。