Class MultipartFacingTransforms

java.lang.Object
com.hbm_m.util.MultipartFacingTransforms

public final class MultipartFacingTransforms extends Object
Ориентация multipart-моделей по Direction.

BER (LegacyAnimator.setupBlockTransform): translate(0.5,0,0.5)rotateY(90°)rotateY(legacyFacingRotationYDegrees) - только для PoseStack, не подставлять эту таблицу напрямую в ModelHelper.transformQuadsByFacing.

Baked/chunk квады используют ту же конвенцию угла, что и blockstate rotationY / javadoc ModelHelper: 0° North, 90° East, 180° South, 270° West - см. vanillaChunkMeshRotationY(Direction).

  • Method Summary

    Modifier and Type
    Method
    Description
    static int
    advancedAssemblerBakedRotationY(net.minecraft.core.Direction facing)
    Advanced assembler: исторически baked-меш крутят ещё на 270° относительно той же vanilla-таблицы.
    static int
    berChunkMeshRotationY(net.minecraft.core.Direction facing)
    Deprecated.
    Ошибочно смешивал второй шаг BER с конвенцией vanillaChunkMeshRotationY(net.minecraft.core.Direction); не использовать для квадов.
    static int
    berChunkMeshRotationY(net.minecraft.core.Direction facing, int extraOffsetDeg)
    Deprecated.
    см.
    static int
    chemicalPlantBakedRotationY(net.minecraft.core.Direction facing)
    Угол для baked/chunk пути химзавода.
    static int
    chemicalPlantCanonicalRotationY(net.minecraft.core.Direction facing)
    Единый источник истины для химзавода в chunk-конвенции (угол для квада в ModelHelper.transformQuadsByFacing): N/S получают +180° к legacy-сумме, E/W без сдвига.
    static int
    chemicalPlantPoseRotationY(net.minecraft.core.Direction facing)
    Угол для BER/VBO пути химзавода (PoseStack), рассчитанный из того же canonical-угла.
    static int
    doorChunkMeshRotationY(net.minecraft.core.Direction facing, int declOffsetDeg)
    Двери: историческая таблица «facingDeg» + 90° + offset из DoorDecl.
    static int
    legacyBlockEntityBakedRotationY(net.minecraft.core.Direction facing)
    Единственный поворот Y для chunk mesh multipart-моделей, которые не задают rotationY в blockstate: тот же суммарный угол, что LegacyAnimator.setupBlockTransform (90° + legacyFacingRotationYDegrees(net.minecraft.core.Direction)) - синхрон с VBO/BER.
    static float
    legacyFacingRotationYDegrees(net.minecraft.core.Direction facing)
    Второй поворот по Y в setupBlockTransform (после базовых 90°).
    static int
    normalizeDeg360(int degrees)
     
    static int
    poseYawFromChunkYaw(int chunkYawDeg)
    Переводит chunk-угол (квады) в эквивалентный угол для PoseStack rotateY.
    static int
    vanillaChunkMeshRotationY(net.minecraft.core.Direction facing)
    Угол для ModelHelper.transformQuadsByFacing в стиле vanilla blockstate rotationY (N=0, E=90, S=180, W=270).

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • legacyFacingRotationYDegrees

      public static float legacyFacingRotationYDegrees(net.minecraft.core.Direction facing)
      Второй поворот по Y в setupBlockTransform (после базовых 90°).
    • vanillaChunkMeshRotationY

      public static int vanillaChunkMeshRotationY(net.minecraft.core.Direction facing)
      Угол для ModelHelper.transformQuadsByFacing в стиле vanilla blockstate rotationY (N=0, E=90, S=180, W=270). Подходит для assembler-like моделей в Iris/chunk пути.
    • advancedAssemblerBakedRotationY

      public static int advancedAssemblerBakedRotationY(net.minecraft.core.Direction facing)
      Advanced assembler: исторически baked-меш крутят ещё на 270° относительно той же vanilla-таблицы.
    • legacyBlockEntityBakedRotationY

      public static int legacyBlockEntityBakedRotationY(net.minecraft.core.Direction facing)
      Единственный поворот Y для chunk mesh multipart-моделей, которые не задают rotationY в blockstate: тот же суммарный угол, что LegacyAnimator.setupBlockTransform (90° + legacyFacingRotationYDegrees(net.minecraft.core.Direction)) - синхрон с VBO/BER.

      Если в blockstate уже есть vanilla rotationY, не суммировать: либо убрать y из JSON, либо не вызывать этот метод для квадов (двойной поворот).

    • chemicalPlantCanonicalRotationY

      public static int chemicalPlantCanonicalRotationY(net.minecraft.core.Direction facing)
      Единый источник истины для химзавода в chunk-конвенции (угол для квада в ModelHelper.transformQuadsByFacing): N/S получают +180° к legacy-сумме, E/W без сдвига.
    • chemicalPlantBakedRotationY

      public static int chemicalPlantBakedRotationY(net.minecraft.core.Direction facing)
      Угол для baked/chunk пути химзавода.
    • poseYawFromChunkYaw

      public static int poseYawFromChunkYaw(int chunkYawDeg)
      Переводит chunk-угол (квады) в эквивалентный угол для PoseStack rotateY. Конвенции вращения в CPU-квадах и PoseStack направлены противоположно.
    • chemicalPlantPoseRotationY

      public static int chemicalPlantPoseRotationY(net.minecraft.core.Direction facing)
      Угол для BER/VBO пути химзавода (PoseStack), рассчитанный из того же canonical-угла.
    • berChunkMeshRotationY

      @Deprecated public static int berChunkMeshRotationY(net.minecraft.core.Direction facing)
      Deprecated.
      Ошибочно смешивал второй шаг BER с конвенцией vanillaChunkMeshRotationY(net.minecraft.core.Direction); не использовать для квадов.
    • berChunkMeshRotationY

      @Deprecated public static int berChunkMeshRotationY(net.minecraft.core.Direction facing, int extraOffsetDeg)
    • doorChunkMeshRotationY

      public static int doorChunkMeshRotationY(net.minecraft.core.Direction facing, int declOffsetDeg)
      Двери: историческая таблица «facingDeg» + 90° + offset из DoorDecl. Не совпадает с vanillaChunkMeshRotationY(net.minecraft.core.Direction) / BER - отдельная таблица для сохранения вида.
    • normalizeDeg360

      public static int normalizeDeg360(int degrees)