Интеграция API и аддонов (MC 26.2)
Этот документ содержит сведения о точках интеграции сторонних модов, взаимодействии с API DasikLibrary и программных запросах скоплений в Minecraft 26.2.
📊 Информационный блок интеграции
| Свойство | Значение |
|---|---|
| Архитектура API | Нативные ванильные API ItemEntity и ItemStack |
| Протокол хранения данных | Прямой ItemStack.getCount() (VarInt / 32-битный Integer) |
| API GameRule | DynamicGameRuleManager (API DasikLibrary) |
| Интерфейсы типизации | Совместимо с интерфейсами магнитов и сущностей предметов |
🔌 Программные запросы к скоплениям для разработчиков аддонов
Поскольку Item Clumps хранит размер скопления непосредственно в стандартном объекте ItemStack, разработчикам аддонов не требуются специальные фасады для чтения или изменения количества:
1. Чтение количества предметов в скоплении
java
// Standard ItemEntity instance
ItemEntity entity = ...;
// Native vanilla getter returns true mega-count (e.g. 5000)
int trueCount = entity.getItem().getCount();2. Проверка возможности объединения
java
// Queries Item Clumps customIsMergable logic
boolean canMerge = entity.isMergable();3. Безопасное изменение количества в скоплении
java
// When mutating item entity counts, always update the stack object:
ItemStack stack = entity.getItem().copyWithCount(newCount);
entity.setItem(stack); // Triggers custom name tag update automatically!🧲 Хук «утиной типизации» для магнитов и полета предметов
Если вы разрабатываете магнит для предметов или телекинез, вы можете предотвратить слияние предметов в полете, добавив один из следующих методов в миксин ItemEntity:
java
public boolean ig_magnet$isMagnetized() {
return this.isFlyingTowardsPlayer;
}
// Or legacy alternative:
public boolean ig$isMagnetized() {
return this.isFlyingTowardsPlayer;
}Item Clumps автоматически вызывает этот метод через рефлексию во время проверки слияния.
