Перейти к содержимому

Pondus Inventory [Sable]

Мод позволяет добавить расчёт предметов в хранилищах на кораблях в физические расчёты Sable.

NeoForge
Загрузчики
NeoForge
Скачиваний на Modrinth
3 тыс.
Подписчиков на Modrinth
21
версий
15
Обновлён
4 июля 20264 июл.
Опубликован
в 2026

Коротко о моде

Работает на NeoForge
Для Minecraft 1.21–1.21.11
Нужен и в игре, и на сервере
Последняя версия — 0.15-Beta от 4 июля 2026
Лицензия MIT — бесплатно
Где нужен
В игреобязателенНа сервереобязателен

Нужен и в игре, и на сервере

Версии игры1.21–1.21.11
Описание переведено автоматическиПоказать оригинал (EN)

Pondus Inventory FI

Аддон для Sable, который заставляет каждый блок, предмет и жидкость тянуть свою лямку — буквально.

⚠️ Предупреждаю: мод всё ещё в активной разработке. Чтобы он работал с другими модами, придётся вручную править настройки. Вы предупреждены!

ℹ️ Если хотите помочь с заготовками весов для предметов, блоков и жидкостей из разных модов — напишите об этом в канале ⌬・synthesis-of-ideas. Все, чьи конфиги попадут в список, будут указаны на странице мода и в его описании.


Что всё это значит?

Pondus Inventory FI — компаньон-мод для физического движка Sable. Он предоставляет невероятно детальную систему определения того, сколько на самом деле весят блоки, предметы и жидкости.

Вы можете менять массу блока, предмета или жидкости на лету через настройки или игровые команды. Мод также заглядывает внутрь сундуков, бочек, резервуаров для жидкостей и любых других контейнеров и добавляет вес тому, что их держит — так что ваш дирижабль внезапно становится куда тяжелее, когда трюм забит нефтью, а переносной бак с водой перевешивает чашу весов, когда заполнен.

Идеально для построек с TerraFirmaCraft, Create, Sable или чем угодно ещё, где важны реалистичная масса, баланс и динамика жидкостей.


Что он умеет?

⚖️ Крутите массу блоков и жидкостей как хотите

Задайте собственный базовый вес почти для любого блока или жидкости через конфиг или команду /pondus mass. Можно даже нацелиться на целые группы по тегам вроде #minecraft:planks, #tfc:ores или #forge:water. Конфиг поддерживает математические выражения — пишите прямо в JSON-файле что-то вроде "2.5 * stack_size".

📦 Считает вес всего, что лежит в контейнерах

Любой контейнер (сундук, бочка, движущаяся конструкция из Create, резервуар для жидкости и т.д.) автоматически прибавляет суммарный вес всех хранящихся внутри предметов и жидкостей. Можно подкрутить inventory_multiplier для баланса (скажем, учитывается только 80% содержимого) и решить, включать ли в расчёт собственную массу блока-контейнера.

💧 Расчёт массы жидкостей

Pondus теперь поддерживает жидкости через capability Fluid Handler из NeoForge. Задайте массу на ведро для любой жидкости, и мод автоматически посчитает вес исходя из фактического объёма в милливедрах (mB). Идеально для реалистичных водонапорных башен, топливных баков, резервуаров с лавой или химических производств.

🌍 Глобальные модификаторы массы

Нужно сделать весь мир на 20% тяжелее, не редактируя сотни отдельных записей? Используйте global.json! В этом файле три множителя — block_mass_modifier, item_mass_modifier и fluid_mass_modifier — которые применяются к каждому блоку, предмету и жидкости в игре. Идеально для тонкой настройки общего физического баланса модпака одним изменением числа.

🗂️ Хранение конфигов по неймспейсам

Файлы конфигов теперь organised по модам внутри config/pondus_inventory_fi/. Каждый мод (например, minecraft, create, tfc) получает свою подпапку, а внутри неё вы кладёте стандартные blocks.json, items.json и fluids.json. Преимущества:

  • Больше никаких конфликтов ID между модами.
  • Проще управлять, делиться или версионировать конфиги каждого мода отдельно.
  • Мод автоматически переносит старые плоские конфиги (если они есть) в новую структуру и сохраняет их резервные копии в _migrated_backup.
Пример структуры папок:
config/pondus_inventory_fi/
├── global.json                # глобальные множители для всех блоков/предметов/жидкостей
├── minecraft/
│   ├── blocks.json
│   ├── items.json
│   └── fluids.json
├── tfc/
│   ├── blocks.json
│   ├── items.json
│   └── fluids.json
├── create/
│   ├── blocks.json
│   └── items.json
└── _migrated_backup/        # создаётся автоматически, если были старые конфиги
    ├── blocks.json
    ├── items.json
    └── fluids.json

### ⚙️ Конфиги, которые действительно имеют смысл
Каждый JSON-файл использует чистый и простой формат. Выражения вроде `"base_mass": "2.5 * stack_size"` или `"mass_per_bucket": "0.8 + density_factor"` вполне допустимы. А ещё всё можно перезагрузить на лету командой `/pondus reload` — перезапуск сервера не нужен.

### 🚀 **Помощник импорта при первом запуске**
Когда вы впервые запустите игру после установки Pondus, появится экран с вопросом, хотите ли вы импортировать массы из данных внешнего физического движка. Это избавит вас от ручного ввода масс для сотен блоков и предметов. Если пропустите — всегда сможете выполнить `/pondus import_external` позже (требуются права OP).

### 📥 **Автозаполнение отсутствующих записей**
Команда `/pondus populate` просканирует все зарегистрированные блоки, предметы и жидкости и добавит недостающие в конфиги со стандартными массами (0.5 для блоков, 0.01 для предметов, 1.0 для жидкостей за ведро). Существующие записи не трогаются, так что запускать её можно в любой момент. Идеально, чтобы быстро создать базу масс для нового модпака или после добавления кучи новых модов.

---

## Настройка

### Требования

Нужен **Sable**. И всё.

*(Поддержка жидкостей требует модов/блоков, реализующих capability `IFluidHandler` из NeoForge)*

### Конфиг-файлы

Все конфиги лежат в `config/pondus_inventory_fi/<mod_namespace>/`.

#### `global.json` – глобальные множители массы. Пример:

{ "block_mass_modifier": 1.0, "item_mass_modifier": 1.0, "fluid_mass_modifier": 1.0 }


Эти значения умножают итоговую рассчитанную массу **всех** блоков, предметов и жидкостей соответственно. Меняете одно число — масштабируете всю физическую систему вверх или вниз.

#### `blocks.json` – задаёт правила для блоков. Пример:

{ "minecraft:chest": { "block_id": "minecraft:chest", "base_mass": "2.5", "inventory_multiplier": 0.8, "include_container_mass": true }, "tfc:sand/red": { "block_id": "tfc:sand/red", "base_mass": "0.1", "inventory_multiplier": 1.0, "include_container_mass": false }, "#minecraft:planks": { "block_id": "#minecraft:planks", "base_mass": "0.5", "inventory_multiplier": 1.0, "include_container_mass": false } }


#### `items.json` – веса предметов. Пример:

{ "minecraft:iron_ingot": { "item_id": "minecraft:iron_ingot", "mass": "0.5", "per_stack": true }, "tfc:metal/ingot/cast_iron": { "item_id": "tfc:metal/ingot/cast_iron", "mass": "1.2", "per_stack": true } }


#### `fluids.json` – веса жидкостей. Пример:

{ "minecraft:water": { "fluid_id": "minecraft:water", "mass_per_bucket": "1.0" }, "minecraft:lava": { "fluid_id": "minecraft:lava", "mass_per_bucket": "3.5" }, "tfc:olive_oil": { "fluid_id": "tfc:olive_oil", "mass_per_bucket": "0.92" }, "#forge:crude_oil": { "fluid_id": "#forge:crude_oil", "mass_per_bucket": "0.85" } }


#### Кратко о параметрах:

| Параметр | Описание |
| --- | --- |
| `base_mass` / `mass` | Число или выражение (`"2.5"`, `"0.5 * stack_size"`, `"1.0 + nbt_power"`). |
| `mass_per_bucket` | Масса в кг для 1000 mB (1 ведро). Поддерживает выражения. |
| `per_stack` | Если `true`, масса умножается на количество предметов в стаке. |
| `inventory_multiplier` | Множитель для общего веса содержимого контейнера (например, `0.8` = 80%). |
| `include_container_mass` | Учитывается ли собственная масса блока-контейнера поверх его содержимого. |
| `block_mass_modifier` | Глобальный множитель, применяемый к итоговой массе **всех** блоков. |
| `item_mass_modifier` | Глобальный множитель, применяемый к итоговой массе **всех** предметов. |
| `fluid_mass_modifier` | Глобальный множитель, применяемый к итоговой массе **всех** жидкостей. |

> 💡 **Заметка о математике жидкостей:** Масса рассчитывается как `mass_per_bucket × (millibuckets / 1000.0)`. Так, 500 mB воды (`mass_per_bucket: 1.0`) весит ровно 0.5 кг.

---

## Команды в игре

Все команды требуют прав оператора (уровень 2). Вот что можно делать:


| Команда                                                |Что она делает                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |Пример                                                                      |
| ------------------------------------------------------ |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |---------------------------------------------------------------------------- |
| `/pondus mass <value> block [storage_modifier]` | Задать массу блока, на который вы смотрите. Необязательный `storage_modifier` задаёт множитель инвентаря (насколько тяжёлое содержимое). | `/pondus mass 5.0 block` или `/pondus mass 10.0 block 0.8` |
| `/pondus mass <value> item` | Задать массу предмета, который вы держите. | `/pondus mass 0.3 item` |
| `/pondus mass <value> fluid <fluid_id>` | Задать массу на ведро для жидкости. | `/pondus mass 1.0 fluid minecraft:water` |
| `/pondus mass <value> tag <id>` | Применить массу ко всем блокам/предметам/жидкостям с этим тегом. | `/pondus mass 1.0 tag #tfc:ores` |
| <code>/pondus populate [block_mass] [item_mass] [fluid_mass]</code> |Автоматически сканирует все зарегистрированные блоки, предметы и жидкости и добавляет недостающие записи в конфиги с указанными массами по умолчанию.<br>• Если масса не указана, используются разумные значения по умолчанию: <strong>0.5</strong> для блоков, <strong>0.01</strong> для предметов и <strong>1.0</strong> для жидкостей (кг на ведро).<br>• Существующие записи <strong>пропускаются</strong> — добавляются только недостающие.<br>• Конфиг сохраняется автоматически после сканирования.<br>• <strong>Когда использовать:</strong> Идеально для быстрого создания базы масс для нового модпака или после добавления множества модов — вы получаете основу для всего без ручного редактирования. |<code>/pondus populate</code> (использует значения по умолчанию)<br><code>/pondus populate 2.5 0.1 1.5</code> (свои массы) |
| `/pondus import_external` | Импортировать массы из данных внешнего физического движка (например, Sable) в конфиги Pondus. Полезно, если вы пропустили экран подтверждения при первом запуске. | `/pondus import_external` |
| `/pondus reload` | Горячая перезагрузка всех конфигов (включая `global.json`) и очистка кэшей. | `/pondus reload` |
| `/pondus sync` | Перестраивает физику для всех SubLevels (используйте после изменения масс). | `/pondus sync` |
| `/pondus config showmass <true/false>` | Включить или выключить показ массы предметов в подсказках. | `/pondus config showmass true` |
| `/pondus config showblockmass <true/false>` | Включить или выключить показ массы блоков в подсказках (для BlockItems). | `/pondus config showblockmass true` |

---

## Для разработчиков модов и сборок

### Регистрируйте массы прямо из кода:

```java
// Регистрация блока
MassRegistry.registerBlock("minecraft:stone", 
    new BlockMassEntry("minecraft:stone", "3.0", 1.0, true));

// Регистрация предмета
MassRegistry.registerItem("minecraft:diamond", 
    new ItemMassEntry("minecraft:diamond", "0.3", true));

// Регистрация жидкости
MassRegistry.registerFluid("minecraft:water", 
    new FluidMassEntry("minecraft:water", "1.0"));

// Регистрация по тегу
MassRegistry.registerBlock("#minecraft:logs", 
    new BlockMassEntry("#minecraft:logs", "0.8", 1.0, false));

Работа с кастомными данными NBT:

// Чтение
double power = InventoryMassCalculator.getCustomDataValue(stack, "power", 1.0);

// Запись
InventoryMassCalculator.setCustomDataValue(stack, "power", 2.5);

Внутренняя кухня расчёта массы жидкостей:

// FluidMassEntry автоматически конвертирует милливедра → кг
FluidMassEntry water = new FluidMassEntry("minecraft:water", "1.0");
double massFor500mb = water.getMass(500); // Возвращает 0.5 кг

// Выражения тоже поддерживаются
FluidMassEntry oil = new FluidMassEntry("tfc:olive_oil", "0.92 * density_mod");

Изменение конфигов на лету:

Если меняешь конфиги во время работы, не забудь сбросить кэши:

ModConfig.CONFIG.reload();
InventoryMassCache.clear();
// Затем выполни /pondus sync на сервере

💡 Про глобальные модификаторы: block_mass_modifier, item_mass_modifier и fluid_mass_modifier из global.json применяются автоматически во время расчёта массы. Тебе не нужно обрабатывать их в своём коде — просто регистрируй базовые значения, а глобальные множители сами их отмасштабируют.


Нашёл баг?

Отлично! (Ну, не отлично, но ты понял.) Вот что поможет мне больше всего:

  1. Возьми лог из logs/latest.log и поищи pondus_inventory_fi.
  2. Скажи мне версию мода, версию Minecraft, версию NeoForge и версию Sable.
  3. Опиши точно, что ты делал, что ожидал и что случилось вместо этого. Если есть ошибка, вставь нужный кусок лога.
  4. По проблемам с жидкостями: Укажи, с каким баком/блоком для жидкости ты тестировал и реализует ли он IFluidHandler.

Лицензия: MIT. Используй, переделывай, делись — только не убирай упоминание авторства.

Разработчик: CatCosYT & Fractal Interactive Discord: https://discord.gg/pZ42QYZTD6

Частые вопросы

Как установить Pondus Inventory [Sable]?

Установите NeoForge под свою версию Minecraft, скачайте Pondus Inventory [Sable] под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.

Для каких версий Minecraft есть Pondus Inventory [Sable]?

У Pondus Inventory [Sable] есть сборки для Minecraft 1.21–1.21.11.

Нужен ли Pondus Inventory [Sable] на сервере?

Нужен и в игре, и на сервере

Лицензия и источник
MIT Licenseможно свободно использовать и распространять с указанием автора
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

Сайт использует cookie: необходимые — для входа и темы, а также счётчики посещений Яндекс Метрика и LiveInternet — по ним мы видим, как пользуются сайтом. Рекламных cookie у нас нет. Подробнее