创建Sable无重复修复

创建Sable无重复修复

修复了将方块组装成物理装置时物品与硬币复制的问题(Sable / Create Aeronautics / 模拟)。

NoDupeFix

阻止物品、硬币和容器在方块被组装成物理装置——即船只、载具以及任何使用 Sable、Create Aeronautics 或 simulated(simulated:physics_assembler)建造的东西——时发生复制。

问题

当物理模组将方块组装成装置时,存储内容的方块(物品提取口、机械臂、称重投掷器、Copycats+ 方块、Table Cloth 商店柜台、标牌、机械合成器、Numismatics 商店/存款机等)会被复制到装置中同时将内容掉落到世界中——一件物品变成了两件。

工作原理

所有这类组装器都会经过 Sable 的同一个方法(moveBlocks)。在其运行期间,NoDupeFix 会抑制任何物品掉落到世界中。装置已经携带了副本,因此不会丢失任何东西,也不会产生重复。

由于它作用于每一个掉落物品变成实体的节点,因此无论任何模组的任何方块,无论其存储方式如何——普通物品、Numismatics 硬币、自定义货币等——都能被覆盖。

性能

实际为零。它只是在实体生成时进行一次布尔检查——没有堆栈跟踪扫描,没有每 tick 的工作,没有后台任务。它只在装置组装的那一瞬间执行操作。

安装

将 jar 文件放入你的服务器(或单人游戏实例)的 mods/ 文件夹中。需要 NeoForge 1.21.1。基于 Sable 的物理模组是可选的——没有它,模组会无害地加载且不执行任何操作。原版客户端不需要它。

兼容性

  • NeoForge 1.21.1
  • 适用于 Sable、Create Aeronautics、simulated 以及任何基于 Sable 子层级组装构建的东西。
  • 不硬依赖 Create——在任何服务器上均安全。

NoDupeFix

Убирает дюп предметов, монет и содержимого блоков при сборке в контрапшены физ-модов — корабли, машины и всё, что строится через Sable, Create Aeronautics или simulated (simulated:physics_assembler).

Проблема

Когда физ-мод собирает блоки в контрапшен, блок с содержимым (Item Drain, Механическая рука, Весовой эжектор, блоки Copycats+, прилавок Table Cloth, Плакард, Механический крафтер, вендоры/депозиторы Numismatics и другие) копируется в контрапшен и роняет своё содержимое в мир — один предмет превращается в два.

Как работает

Все эти ассемблеры идут через один метод Sable (moveBlocks). Пока он выполняется, NoDupeFix гасит любой выброс предмета в мир. Копия уже уехала в контрапшен — ничего не теряется и не дублируется.

Перехват стоит там, где любой выпавший предмет становится сущностью, поэтому покрывает любой блок любого мода независимо от типа хранилища — обычные предметы, монеты Numismatics, кастомную валюту, что угодно.

Нагрузка

Практически нулевая — одна проверка булевой переменной при спавне сущностей. Без сканирования стека, без работы каждый тик, без фоновых задач.

Установка

Кинуть jar в mods/ на сервере (или в одиночной игре). NeoForge 1.21.1. Sable-мод опционален. Ванильным клиентам не нужен.


Полностью исследовано, написано, собрано и опубликовано через Claude Code (Anthropic).