DSPTrashBuilding
A standalone placeable trash can building. Sorters feed it and everything inserted is destroyed. / 独立建筑垃圾桶:用分拣器送入的物品会被立即销毁。
By LLL_112
CHANGELOG
Changelog
1.2.3
- 实体配色改为 红白相间 的工业面板:
- 白色主体 + 分散的红色装饰板;
- 白色面板上加红色警示带,红白相互点缀;
- 深色面板接缝、亮白色铆钉,接近原版建筑的配色风格;
- 顶点颜色改为中性色,不再给整体叠加橙色。
- 背包 / 建造栏 / 配方图标由同一模型实时渲染,颜色同步更新。
1.2.2
- 修复标注黑白名单物品时
UIStorageGrid._OnUpdate抛出IndexOutOfRangeException的问题。- 原因:垃圾桶储物容量是 4×3=12,但原版储物窗口的格子固定为 10 列,
窗口实际生成 10×2=20 个格子;第 13~20 格访问
storage.grids时越界。 - 修复:垃圾桶储物改为 10×2=20 格,与窗口格子一一对应; 旧存档中 12 格的垃圾桶在打开窗口时自动无损扩容到 20 格 (原有名单保留)。
- 黑白名单上限从 12 个物品增加到 20 个。
- 原因:垃圾桶储物容量是 4×3=12,但原版储物窗口的格子固定为 10 列,
窗口实际生成 10×2=20 个格子;第 13~20 格访问
1.2.1
- 修复读档时
GPUInstancingManager.Init()空引用、一直停留在“载入中”的问题。- 原因:模型使用了稀疏的高 ID 714,并把
LDB.models.modelArray强行扩展到 778 项; 读档重建 GameMain 时,GPU instancing 初始化遍历这个稀疏数组会崩溃。 - 现在模型改用紧凑 ID(本次为 666),不再扩展 / 稀疏化
modelArray。 - 旧存档实体里保存的
modelIndex = 714通过兼容别名继续有效, 旧版本放置的垃圾桶不会失效。
- 原因:模型使用了稀疏的高 ID 714,并把
- 其余功能与 1.2.0 相同(科技解锁、原版箱子 UI、80×80 图标)。
1.2.0
- 配方的解锁条件改为科技 自动化冶金(原为开局解锁)。
- 修复制造台与复制器“建筑”页里看不到垃圾桶配方的问题:
- 原配方
GridIndex = 2909的行号是 8,而配方表只有 8 行(行号 0~7), 两个界面都会直接把这条配方过滤掉且不报错; - 现在只在 2xxx 建筑页的行 1~8、列 1~14 内选择空位。
- 原配方
- 黑白名单 UI 改为直接使用原版储物箱窗口:
- 窗口可随意拖动,样式、字体、格子、按钮全部与原版一致;
- 物品选择器由原版逻辑在格子旁弹出,不再与窗口重叠;
- 中键点击格子设置该格的名单物品,右键清除(与原版箱子设置过滤器一致);
- 窗口底部的“自动化容量限制”一行改为黑白名单切换(左黑右白), 旁边的原版按钮也可点击切换;
- 名单物品显示在原版格子的筛选图标位置。
- 修复背包 / 建造栏 / 配方图标只显示垃圾桶一个角的问题:
- 游戏的图标图集固定从每张图标纹理的 (0,0) 复制 80×80, 之前生成的 256×256 图标只会被复制左下角一块;
- 现在改为高分辨率渲染后降采样为 80×80,并按模型投影范围重新取景。
- 删除自定义黑白名单面板及其自绘 UI 代码。
- 旧存档兼容:名单仍保存在储物组件的格子 filter 与 bans 字段中; 已研究“自动化冶金”的旧存档会自动补解锁该配方。
1.1.0
- 恢复配方:4 个铁块 → 1 个垃圾桶,开局解锁,复制器与制造台均可生产。
- 点击垃圾桶打开箱子风格的黑白名单面板:
- 4×3 共 12 个格子,左键点击选择物品,右键清除;
- 底部按钮切换黑名单 / 白名单,格子颜色与提示同步变化。
- 黑白名单直接保存在储物组件的格子 filter 与 bans 字段中,随建筑存档, 不需要 DSPModSave 等额外存档模组。
- 过滤在
StorageComponent.AddItem/AddItemFiltered/AddItemFilteredBanOnly/AddCargo的 Prefix 中处理;被拒绝的物品不写入格子,分拣器会持有并重试。 - 储物容量改为 4×3(12 格),旧建筑在打开面板时自动扩容。
1.0.0
- 新增独立建筑物品「垃圾桶」,建造分类 4,配方 4 铁块。
- 12 个分拣器接口;分拣器送入的物品立即销毁。
- 建造预览、建造菜单图标、双语名称/描述。
- 抑制点击建筑时弹出原版储物窗口。
- 修复:不再伪造传送带接口。储物建筑不能作为传送带端点,伪造接口会导致
PlanetFactory.OnBeltBuilt空引用报错且传送带无法建造。 - 修复:运行时预制体内的碰撞体位置保持正确,建造预览与点击选中正常。
- 修复:
PlanetFactory.PrefabDescByModelIndex是在 LDBTool 追加本模组模型之前 建立的静态缓存,导致索引 714 为 null。在垃圾桶附近建造传送带时,OnBeltBuilt遍历附近实体并读取该缓存,触发空引用。现在会在注册后补全缓存项。 - 物品/配方图标改为使用放置模型(视觉 donor)的原版图标, 背包、物品栏、建造菜单和手动制造界面的图标与放置出来的实体一致。
- 外观:对原版 LOD 网格做安全顶点变形(上窄下宽、整体压矮 10%), 使用橙色金属面板贴图重新上色,正面玻璃材质替换为与背面一致的实体外壳。 保持原有子网格/材质/LOD 结构,避免再次触发 GPU instancing 崩溃。
- 图标改为从变形后的实际模型实时渲染,颜色/形状与放置实体一致。
- 移除 RecipeProto:物品不再出现在制造面板和制造台中,也没有手动制造配方。
- 已知限制:储物类建筑不能直接接传送带,必须用分拣器送入。
- 已知限制:垃圾桶没有配方,需要沙盒物品列表、存档或其他方式获得。