Skip to content

Conversation

@HardyNLee
Copy link
Contributor

介绍

修复 stage state 中 live2dBlink 和 live2dFocus 参数可能不完整的问题

测试

changeFigure: path/to/model.json -id=aaa -focus={"x":-1} -next;
:focus left;
changeFigure: path/to/model.json -id=aaa -focus={"y":1} -next;
:focus left up (继承上一句的 left);

此 PR 前, 播放到最后一句, 再读档读到第一句, 并不会真的 focus left, 因为那时 focus 参数在 state 中不完整

@gemini-code-assist
Copy link

Summary of Changes

Hello @HardyNLee, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

此拉取请求旨在解决 stage state 中 Live2D 眨眼和焦点参数可能不完整的问题。通过引入基础参数并在更新或添加这些状态时进行合并,它确保了 Live2D 模型在不同场景(例如加载存档或状态切换)下能够正确地应用其眨眼和焦点设置,从而避免了因参数缺失导致的显示异常或行为不一致。

Highlights

  • 引入基础参数: 引入了 baseBlinkParambaseFocusParam,它们作为 Live2D 眨眼和焦点参数的默认值,用于确保状态的完整性。
  • Live2D 眨眼状态处理: 修改了 setLive2dBlink reducer 的逻辑,在添加新的眨眼状态或更新现有状态时,通过将传入的参数与 baseBlinkParam 或当前状态合并,确保 Live2D 眨眼参数始终是完整的。
  • Live2D 焦点状态处理: 修改了 setLive2dFocus reducer 的逻辑,在添加新的焦点状态或更新现有状态时,通过将传入的参数与 baseFocusParam 或当前状态合并,确保 Live2D 焦点参数始终是完整的。

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

你好,感谢你对这个问题的修复。通过合并基础参数和传入的部分参数,你确保了 live2dBlinklive2dFocus 在 state 中始终是完整的,这有效地解决了所描述的 bug。

代码的逻辑是正确的。我只发现了一个可以改进的地方,即 setLive2dBlinksetLive2dFocus 两个 reducer 中存在重复的逻辑。我已经在代码中提出了一个具体的建议,旨在通过重构来提高代码的可维护性。

总体来说,这是一个很好的修复!

Comment on lines 277 to 285
if (index < 0) {
// Add a new blink
state.live2dBlink.push({ target, blink });
const fullBlink = { ...baseBlinkParam, ...blink };
state.live2dBlink.push({ target, blink: fullBlink });
} else {
// Update the existing blink
state.live2dBlink[index].blink = blink;
const fullBlink = { ...state.live2dBlink[index].blink, ...blink };
state.live2dBlink[index].blink = fullBlink;
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

这部分用于添加或更新 live2dBlink 的逻辑与 setLive2dFocus reducer (291-299行) 中的逻辑几乎完全相同。

为了提高代码的可维护性并遵循 DRY (Don't Repeat Yourself) 原则,建议将此通用逻辑提取到一个可重用的辅助函数中。这样,如果未来需要修改此逻辑,只需在一个地方进行更改。

虽然当前实现是正确的,但进行此重构将使代码库更整洁。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant