Package com.hbm_m.util
Class MultipartFacingTransforms
java.lang.Object
com.hbm_m.util.MultipartFacingTransforms
Ориентация 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 TypeMethodDescriptionstatic intadvancedAssemblerBakedRotationY(net.minecraft.core.Direction facing) Advanced assembler: исторически baked-меш крутят ещё на 270° относительно той же vanilla-таблицы.static intberChunkMeshRotationY(net.minecraft.core.Direction facing) Deprecated.static intberChunkMeshRotationY(net.minecraft.core.Direction facing, int extraOffsetDeg) Deprecated.см.static intchemicalPlantBakedRotationY(net.minecraft.core.Direction facing) Угол для baked/chunk пути химзавода.static intchemicalPlantCanonicalRotationY(net.minecraft.core.Direction facing) Единый источник истины для химзавода в chunk-конвенции (угол для квада вModelHelper.transformQuadsByFacing): N/S получают +180° к legacy-сумме, E/W без сдвига.static intchemicalPlantPoseRotationY(net.minecraft.core.Direction facing) Угол для BER/VBO пути химзавода (PoseStack), рассчитанный из того же canonical-угла.static intdoorChunkMeshRotationY(net.minecraft.core.Direction facing, int declOffsetDeg) Двери: историческая таблица «facingDeg» + 90° + offset изDoorDecl.static intlegacyBlockEntityBakedRotationY(net.minecraft.core.Direction facing) Единственный поворот Y для chunk mesh multipart-моделей, которые не задаютrotationYв blockstate: тот же суммарный угол, чтоLegacyAnimator.setupBlockTransform(90° +legacyFacingRotationYDegrees(net.minecraft.core.Direction)) - синхрон с VBO/BER.static floatlegacyFacingRotationYDegrees(net.minecraft.core.Direction facing) Второй поворот по Y вsetupBlockTransform(после базовых 90°).static intnormalizeDeg360(int degrees) static intposeYawFromChunkYaw(int chunkYawDeg) Переводит chunk-угол (квады) в эквивалентный угол для PoseStack rotateY.static intvanillaChunkMeshRotationY(net.minecraft.core.Direction facing) Угол дляModelHelper.transformQuadsByFacingв стиле vanilla blockstate rotationY (N=0, E=90, S=180, W=270).
-
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.Ошибочно смешивал второй шаг BER с конвенциейvanillaChunkMeshRotationY(net.minecraft.core.Direction); не использовать для квадов. -
berChunkMeshRotationY
@Deprecated public static int berChunkMeshRotationY(net.minecraft.core.Direction facing, int extraOffsetDeg) Deprecated. -
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)
-
vanillaChunkMeshRotationY(net.minecraft.core.Direction); не использовать для квадов.