模块范围
Public API(公开 API)
严重程度
Broken feature(功能不可用)
发生了什么?
ModSecondaryResourceRegistry中的AlwaysShowInCombatUiForCharacter()和RegisterCombatUiAlwaysVisibleWhen()都沒有效果
我看了原始碼AlwaysShowInCombatUiForCharacter()是調用RegisterCombatUiAlwaysVisibleWhen()於是我直接設定registry.RegisterCombatUiAlwaysVisibleWhen(ManaDefinition.LocalId, _ => false);測試,結果也還是會在遊玩任何角色時顯示(即使此次級資源數量是0)
复现步骤
我按照此次級資源教學撰寫了以下程式碼。
public static class ExEnergyManager
{
public static SecondaryResourceDefinition ManaDefinition { get; private set; } = null!;
public static string ManaId { get; private set; } = string.Empty;
public static void Register()
{
var registry = RitsuLibFramework.GetSecondaryResourceRegistry(Entry.ModId);
ManaDefinition = registry.Register("mana", new SecondaryResourceDefinition(
defaultAmount: 0,
baseMaxAmount: 100,
turnStartPolicy: SecondaryResourceTurnStartPolicy.None,
persistencePolicy: SecondaryResourcePersistencePolicy.Run,
smallIconPath: "res://...png",
largeIconPath: "res://...png"
));
ManaId = ManaDefinition.Id;
// 就算直接寫false也還是會在所有角色顯示
registry.RegisterCombatUiAlwaysVisibleWhen(ManaDefinition.LocalId, _ => false);
registry.RegisterCombatUi(
"mana_combat_ui",
parent =>
{
var row = NSecondaryResourceCounter.Create(ManaDefinition, SecondaryResourceCounterStyle.Default);
var energyCounter = parent.GetNode<Control>("%EnergyCounterContainer");
row.Position = energyCounter.Position + new Vector2(-80, -120);
return row;
},
ctx => ctx.Node.Bind(ctx.Player)
);
}
}
期望行为
會錯誤地在任何角色戰鬥時顯示次級資源圖標和Counter在能量圖標的左上方。
日志 / 堆栈
RitsuLib 版本
0.4.20
运行环境
Windows 11, STS2 0.107.0
模块范围
Public API(公开 API)
严重程度
Broken feature(功能不可用)
发生了什么?
ModSecondaryResourceRegistry中的AlwaysShowInCombatUiForCharacter()和RegisterCombatUiAlwaysVisibleWhen()都沒有效果我看了原始碼
AlwaysShowInCombatUiForCharacter()是調用RegisterCombatUiAlwaysVisibleWhen()於是我直接設定registry.RegisterCombatUiAlwaysVisibleWhen(ManaDefinition.LocalId, _ => false);測試,結果也還是會在遊玩任何角色時顯示(即使此次級資源數量是0)复现步骤
我按照此次級資源教學撰寫了以下程式碼。
期望行为
會錯誤地在任何角色戰鬥時顯示次級資源圖標和Counter在能量圖標的左上方。
日志 / 堆栈
RitsuLib 版本
0.4.20
运行环境
Windows 11, STS2 0.107.0