- Использовать данные max_stack_size компонент для управления очевидным максимальным размером стека элементов по умолчанию для упрощения настройки. Чтобы элементы отображались по умолчанию с максимальным размером стека N, просто добавьте элемент в max_stack_size_N.json, и логика тега элемента сделает все остальное.
- Tear the Hard -coded 99 разбить максимальный размер стека на части и заменить его чем-то более удобным.
Код: Выделить всё
public class ModTags{
public static final TagKey IS_STACK_SIZE_1 = createTag("stack_size_1" );
public static final TagKey IS_STACK_SIZE_2 = createTag("stack_size_2" );
public static final TagKey IS_STACK_SIZE_2 = createTag("stack_size_4" );
[...]
public static final TagKey IS_STACK_SIZE_2048 = createTag("stack_size_2048");
[...]
addReloadListener("stack_size_1" );
addReloadListener("stack_size_2" );
addReloadListener("stack_size_4" );
[...]
addReloadListener("stack_size_2048");
}}
Код: Выделить всё
@Mixin(ItemStack.class)
public abstract class ItemStack_SizeMixin implements ComponentHolder, FabricItemStack {
[...]
@Inject(method="getMaxCount", at = @At("HEAD"))
private void updateMaxStackSizeWithTag(CallbackInfoReturnable cir){
ItemStack thisAsStack = (ItemStack)(Object) this;
if ( thisAsStack.isIn(ModTags.Items.IS_STACK_SIZE_2048)) ChangeStackSize(thisAsStack, 2048 );
else if ( thisAsStack.isIn(ModTags.Items.IS_STACK_SIZE_1024)) ChangeStackSize(thisAsStack, 1024 );
[...]
}
}
А у меня точно нет: мой вопрос:
Как лучше всего систематически определять, хранить и проверять 2048 тегов предметов Minecraft? Ради людей, которые действительно хотят, чтобы max_stack_sizes был равен 372?
Я уже пробовал реализовать его как ArrayList, и это постоянно вызывало stackOverflows. Кроме того, у меня просто нет знаний Java, чтобы иметь представление.
Подробнее здесь: https://stackoverflow.com/questions/787 ... t-itemtags
Мобильная версия