找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 笨030504

[经验分享探讨] INI织网者 - 船新体验的节点编辑器

[复制链接]
发表于 2025-9-28 15:19:33 | 显示全部楼层
整合了最新版模块库的1.05x版。注意,此版本保存的工程文件在旧版本上不受支持。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 2 0

使用道具 举报

发表于 2025-9-30 21:15:59 | 显示全部楼层
顶喵
回复

使用道具 举报

发表于 2026-3-6 22:39:05 | 显示全部楼层
大项目,太强了。之前拿到这个需求的时候真的有些头大,没想到真有巨佬搓出来了,强
回复

使用道具 举报

发表于 2026-3-26 20:54:20 | 显示全部楼层

INI织网者 1.0.8

BUG修复:
修复了三级及以上菜单不能正常工作的bug。
修复了文本编辑模式出现多个AresInherit行的bug。
修复了格式化组件识别出错时没有正确处理的bug。
修复了输入类型为String的处理异常bug。
修复了编辑栏当中非可重语句出现意外的重复键的bug。
修复了切换语言时重置主菜单宽度的bug。
修复了一个与文本编辑有关的崩溃bug。
修复了连线不能选择正确INI的bug。
修复了修改模块注册名时链接错乱的bug。
修复了模块上语句顺序与编辑栏不一致的bug。
修复了解除语句包连接后也不会输出块的bug。
修复了字典没收录的语句不显示的bug。
修复了字典没收录的语句设置显示状态在文本编辑后丢失的bug。
修复了字典未收录语句转节点时连线崩溃的bug。
修复了字典未收录语句连线显示异常的bug。
修复了创建模块副本时丢失语句显示状态的bug。
修复了选中单个模块时按下Ctrl+X无响应的bug。
修复了拖动多个模块时模块坐标向鼠标偏移的bug。
修复了csv解析时对双写引号处理异常的bug。
修复了链接多个东西的节点,删除链接对象时候逗号会残留的bug。
修复了字典里面没收录的语句,直接打=no不会被判为bool的bug。
修复了语句包没有正确更新标题栏样式的bug。
修复了配置文件缺项时默认值工作异常的bug。
修复了列表第一个项无法正确移除的bug。
修复了高帧率下一次ctrl+v会连续粘贴多次的bug。
修复了模块变动时没有正确更新模块列表的bug。
修复了预载模块时无法正确识别换行符为CR或带有BOM的模块的bug。
修复了注释名丢失的bug。
修复了EnumCombo输入组件的排版bug。
修复了Ctrl+A不能正确全选的bug。
修复了MultipleChoice/EnumRadio输入组件在不满行时把下个组件拉到同一行的bug。
修复了在输入框上复制/剪切/删除/粘贴影响整个画布的bug。
修复了删除最后一个模块且这个模块有对外连接时显示异常的bug。
修复了修改值的时候链接没有立即保持一致的bug。
修复了单击链接限制1的节点时不能断开连接的bug。
修复了模块宽度伸缩异常的bug。
修复了自动导出时偶发数目不匹配弹窗的bug。

修复了处于不同INI的语句包和模块不能合并的bug。
修复了Bool输入组件指定格式无效的bug。
修复了输出空语句的bug。
修复了包含接收节点值的列表无法正确导出的bug。
修复了继承接收节点值时的显示与导出异常bug。
修复了继承无法在读档时保留显示状态的bug。
修复了接收节点无法递归替换的bug。
修复了反向链接时候不会按照连线限制约束值的bug。
修复了注释块文本框过窄的bug。
修复了打开选择文件窗口后无法正常放置模块的bug。
修复了模块上最后一个显示的是文本输入框时有额外空行的bug。
修复了接收节点遮挡右键菜单的bug。
修复了缩放时编组块的宽度异常的bug。
修复了双击节点自己的短注释时不能转输入框的bug。
修复了自动拉长模块时短注释被节点挡住的bug。
修复了完全一致的语句多次输出的bug。
修复了跳过导出模块时仍然输出多余回车的bug。
修复了SameLine为true时EnumRadio和MultipleChoice输入类型结尾不换行的bug。
修复了取消隐藏模块时的异常位移bug。
修复了解组时模块的异常位移与未恢复原位置关系的bug。
修复了关闭时保存弹窗的异常位移bug。
修复了接收节点的环形链接检测误判的bug。
修复了RegType缺少Default字段时在内置类型上报错的bug。
修复了可重语句当中的索引异常的bug。
修复了字号≤18时右键菜单无限延长的bug。
修复了初始隐藏的Bool类型输入组件显示时崩溃的bug。
修复了ExportConstraint工作异常的bug。
修复了SetValue活动时一直显示未保存的bug。
修复了ValueList格式类型不读取ExportConstraint属性的bug。

新增与改进功能:


功能调整:
添加了语句包、可重语句、接收节点等。
现在类型为_AnyType的块可以被任何类型的块连接。
可以在模块当中使用WidthRatio#Var=<float>调整模块宽度较标准的比例。默认是1.0,数字越大模块越宽。
为模块添加了跳过导出和隐藏标题栏的选项;和单值块一样可以使用#Var标签启用。
(单值块:SingleVal#Var=true;跳过导出:SkipExport#Var=true;隐藏标题栏:SkipTitle#Var=true)
现在设置了SkipExport为true的模块不会自动生成AresInherit语句。
现在可以同时继承多个模块了。
解除了语句属于哪个SubSec的硬编码。
解除了语句是否进行环形链接检查的硬编码。
现在UseFlagPack这个语句不再有硬编码的设定。
现在继承语句被硬编码为不是可重的。
现在按Ctrl+D会创建选中模块的副本。
现在按ESC会关闭界面上的弹窗。
添加了集线器/字符串列表/单值块/顺序集线器几个特殊模块。

配置调整:
升级模块库到最新版本。
添加了新的TypeAltSpecial.csv,包含了一些特殊的Key。
更新了language.ini,调整了本地化文本。
增补了字库的字符。
在hint.txt当中增补了一些内容。
添加了-logconfig命令行参数,让程序按顺序输出加载的配置文件名称。
RegisterType添加了RegisterListName属性,允许指定导出时使用的注册表名称。
RegisterTypes.json当中,将RegisterType当中每个类型定义的Export属性更名为NeedRegisterList。
RegisterTypes.json当中,将RegisterType当中每个类型定义的IniType属性更名为ExportToINI。
RegisterTypes.json当中,现在RegisterType的DefaultLinks属性支持使用_MyType和_AnyType来指定默认连接的目标类型。
添加了RegisterTypesSpecial.json,包括了SubSec等信息。

代码重构:
重构了数据同步更新的逻辑。
重构了对字典未收录语句的处理逻辑。
重构了选择模式的逻辑。
重构了创建副本的逻辑。
重构了标识框绘制的逻辑。
重构了导出顺序的控制逻辑。
重构了反向链接的逻辑。
重构了导出INI的逻辑。
重构了语句字典的逻辑,大幅减少了内存占用。
重构了模块库加载的逻辑,大幅减少了内存占用。
重构了INI行的数据通路。
重构了链接显示的逻辑。
重构了动态数据的存储,大幅减少了运行时体积。
重构了整体的数据通路。
整体调整了模块尺寸的控制逻辑。
大幅提升了运行时的性能。
清理了部分废弃代码和弃用的工作模式。
池化了所有的语句键名,减少了运行时的内存占用。


UI:
现在如果打开自动导出,且未设置所有INI的导出文件名时,会在导出时弹窗提示用户设置。
现在编辑栏添加行时会根据输入的部分Key提示候选项。
现在编辑栏添加语句时可以按照首字母序列查找。
现在如果模块上的描述文字太长,会拉伸模块宽度以适应。
现在拖拽窗口时的尺寸抖动更小了。
现在保存时不会再弹出请稍候的提示了。
调整了链接限制为0时的处理逻辑,现在行为与107之前一致。
调整了语句包节点的连线位置。
被连接到语句包节点的块的左上节点会移到顶部中间。
编辑栏添加了“粘贴时刷新注册名”的选项,默认开启。
增补了关于页面的内容。
补充了必要的版权信息。
重新调整了输入框的渲染逻辑以解决框太长的问题。
现在在编辑栏上右键单击控制语句是否在模块上显示的按钮时,会弹出编辑该语句在模块上描述的文本框。
大幅调整了调试菜单的内容。
现在注释块/集线器/字符串列表/单值块/顺序集线器单独分到了系统模块里面。
现在可以切换节点和输入框的组件可以直接双击占据的行切换。
减小了缩放模块时节点左右抖动的幅度。
继续调整了画布上的排版操作。
略微调大了模块的基准宽度(约10%)。
右键模块上语句的短描述会弹出包括转节点/接收节点/编辑注释/删除行的菜单。
现在编辑栏上右键Key和右键控制模块上显示的节点有相同的效果。
现在编辑栏上右键Key/控制模块上显示的节点时添加了一个删除该行的按钮。

导出INI:
现在即使没有任何修改,按下保存也会重新导出INI了。
现在会在导出时自动进行环形继承/环形语句包连接检测,在发现环形时会弹窗提示并阻止导出。
现在导出模板时会连带注释名一起导出。
现在会按照继承顺序自动调整字段的输出顺序了。
现在在导出INI的开头会放一个占位的块以防Ares无法正确处理继承。
增加了接收节点的环形链接检测,现在不会因为此类情况在导出时闪退了。

为文本编辑模式添加了“放弃修改”的按钮,按下会退出文本编辑且不应用修改。
为Import导出模式的IniType添加了_AnyType的选项,从所有INI当中搜索并合并。
调整了NewLineAfterDesc=true时接收节点和接收区域的位置。
为控制接收节点的AcceptType添加了NodeColor项,可以独立于链接类型控制节点颜色。
添加了新的Nothing导出模式,表示这个语句不被导出。

输入表单:
新增一个值为空的行时,会尝试写入输入表单的初始值。
现在按F1时MultipleChoice/EnumCombo/EnumRadio输入组件也会在选项值和短描述之间切换。
预置的Import输入类型分为Import和ImportAndMerge,其中MergeTarget属性分别为false和true。
为输入类型添加了LineIDFrom属性,现在可以显示可重组件的编号了。
为输入类型添加了Multiple选项,控制语句是否是可重的。
为输入类型添加了NewLineAfterDesc选项,控制短描述之后是否会换行。
--输入组件--
为所有的输入组件添加了Disabled/ColoredFrame两个属性。
为所有的输入组件添加了显示条件,控制什么时候显示这个组件。
现在输入组件的Hint字段可以填写长短描述了。
调整了InputText和InputInt输入组件的排版处理。
为MultipleChoice和EnumRadio添加了MaxInOneLine属性,允许在一行内显示多个选项。
现在MultipleChoice输入组件加入了Delim属性,允许指定选项之间的分隔符,默认为逗号。
添加了新的SetValue输入组件。
添加了ColorPanel输入组件,用于控制颜色显示。
将InputText/Bool/EnumCombo/InputInt/SliderInt/ColorPanel输入组件UI上的注释挪到了左侧。
为输入组件的显示条件添加了正则表达式控制的选项。
--格式组件--
添加了<Export_Key>这个新的格式组件,允许在文本中直接使用Key的值。
添加了Collect格式组件,专用于语句的导出模式。
为格式组件添加了导出条件,仅导出环节生效。
为纯文本组件添加了另一种定义方式。
之前仅供导出模式的格式组件现在也在接收节点当中可用。
添加了获取当前模块注册名的格式组件<Export_Registry>。
添加了ValueList类型的格式组件,将多个ValueID的值以逗号分隔的形式输出。
添加了RandomString类型的格式组件,输出指定长度的随机字符串。
添加了LineIndexFrom类型的格式组件,输出键的重数索引。
--接收节点--
添加了语句的接收节点:如果当前语句”已经被当作接收节点“或”配置里面说可以当作接收节点“,那么就会占据对应的接收区域;
没有接收区域也可以手动连到某个语句。
语句被当作的类型由配置决定,缺少配置时取当前模块的类型为默认值。
导出时被替换成的字符串由配置决定,缺少配置时取这一行的值为默认值。
看到的那个节点只是个样子货,需要把线拉到语句上面(此时UI会有指示)
连接到接收节点时语句的值变为Section$$Key。
为接收节点添加了FullArea属性,为true时会让单个语句的接收区域占满整个模块。
--导出模式--
添加了Recompose这个新的导出模式,会根据值和输入表单重组出新的键值对。
Import类型的导出模式加入了MergeTarget属性,决定被导入的目标是否会单独导出,为true时不会,默认false。
Import类型的导出模式当中IniType属性现在可以填写_MyType指定为当前块的INI类型。
Import类型的导出模式当中IniType属性现在可以填写_LinkType指定从链接类型得到目标的INI类型。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|Archiver|手机版|管理员邮箱|红警DIY论坛 |网站地图

GMT+8, 2026-5-1 22:36 , Processed in 0.058416 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表