numlinka / d3dxSkinManage

3dmigoto skin mods manage tool
GNU General Public License v3.0
368 stars 143 forks source link

关于MOD销毁时的BUG #16

Open EndRainCloud opened 4 months ago

EndRainCloud commented 4 months ago

1.销毁时,未装载的以disabled前缀的MOD,文件删除不会生效,会在缓存文件夹里留下缓存

2.在已经装载过MOD后,我把该MOD在resources文件夹里的压缩文件(原始文件)删除了,但这似乎没有影响我对该MOD的任何使用,包括重新装载和在工作区直接修改MOD。我不清楚那个压缩文件在之后有什么其他的作用。

因此,是否可以直接放弃resource文件夹的使用,直接将要导入的MOD加上SHA复制或解压到work文件夹? 或是在首次装载时自动删除resource文件夹里的文件?

EndRainCloud commented 4 months ago

不对...似乎是某些时候时间会根据原始文件的存在,重新生成窗口里的MOD列表?

昨天作死删除了所有MOD的源文件,然后今天发现列表空了。但用户MOD列表(index_2024-05.json)的内容没变,工作文件夹也没有变化。 于是我在resources文件夹做了一个名字相同的空文件顶位,然后恢复正常了。

所以把原始文件变成空文件是否是一个很方便且没什么副作用的做法?

numlinka commented 3 months ago
  1. 销毁时,并不会删除 disabled 缓存,这意味着在执行错误操作时,仍有机会将该资源以某种特殊的方式找回。
  2. 在装载后 resources 的内容不应该被删除,它作为这是一个本地文件的保证,即便你清空整个 3dmigoto 工作文件夹,或是更换 3dimigoto 的版本,都不会影响到你导入的模组,你仍然可以在新的工作区中启用它,如果你删除了这些内容,该功能则会受到影响,但在缓存数据表没有被整体刷新之前,这一切都不会被感知。
  3. 不能。
  4. 在进行修改数据表操作的时候,缓存数据表会被刷新,这是会根据本地文件重新计算列表。
  5. index 文件只负责保存所关联的附加数据,如果 resources 文件消失,则会被认为这个数据在本地是不存在的。
  6. 没有。

在现在看来这套结构设计并不好,起码我是这么认为的;这个项目很烂,有很多历史遗留问题,所以它对一些特殊情况的判断并不准确,它似乎不太契合你的操作风格,你可以尝试其它更成熟的项目来管理你的资源。 例如 SkinSelectImpactJust Another Skin Manager