- 38
- 2
- 1
Всем добра
При создании меню для блока столкнулся с проблемой, что менюшка получает неправильный выход из метода:
Экран всегда получает False. Покопавшись в блоках и повыводя тестовые значения, я был поражен.

Позиция И внутри BlockEntity, И внутри самого блока смещена на 1 по Z. Такой же результат я получаю от других блоков в моде. Что это?? Почему это?? Как это чинить?? Я не понимаю, вообще ничего. Прошу помощи.
При создании меню для блока столкнулся с проблемой, что менюшка получает неправильный выход из метода:
Java:
// In some Block class
public static boolean isHeat(Level pLevel, BlockPos pPos) {
BlockState blockBelow = pLevel.getBlockState(pPos);
if (blockBelow.is(Blocks.CAMPFIRE) || blockBelow.is(Blocks.SOUL_CAMPFIRE)) {
return blockBelow.getValue(CampfireBlock.LIT);
}
return false;
}
// In some BlockEntity class
public boolean isHeat() {
if (level != null) {
return CookingPotBlock.isHeat(level, worldPosition);
}
return false;
}
// In some MenuScreen class
private void renderIcons(GuiGraphics pGuiGraphics) {
if (blockEntity.isHeat()) {
pGuiGraphics.blit(TEXTURE, this.leftPos + 10, this.topPos + 10, 176, 0, 14,12);
}
}

Java:
// Тест на примере костра
@Inject(method = "use", at = @At("HEAD"))
protected void onUse(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit, CallbackInfoReturnable<InteractionResult> cir) {
System.out.println("pos:");
System.out.println(pPos.getX());
System.out.println(pPos.getY());
System.out.println(pPos.getZ());
}
// Вывод:
pos:
103
66
-68