类 PortalUtil


  • public class PortalUtil
    extends Object
    Mappings:
    Namespace Name
    official n
    intermediary net/minecraft/class_5459
    named net/minecraft/world/PortalUtil
    • 构造器详细资料

      • PortalUtil

        public PortalUtil()
    • 方法详细资料

      • getLargestRectangle

        public static PortalUtil.Rectangle getLargestRectangle​(BlockPos center,
                                                               Direction.Axis primaryAxis,
                                                               int primaryMaxBlocks,
                                                               Direction.Axis secondaryAxis,
                                                               int secondaryMaxBlocks,
                                                               Predicate<BlockPos> predicate)
        Gets the largest rectangle of blocks along two axes for which all blocks meet a predicate. Used for getting rectangles of Nether portal blocks.
        Mappings:
        Namespace Name Mixin selector
        official a Ln;a(Lgb;Lgg$a;ILgg$a;ILjava/util/function/Predicate;)Ln$a;
        intermediary method_30574 Lnet/minecraft/class_5459;method_30574(Lnet/minecraft/class_2338;Lnet/minecraft/class_2350$class_2351;ILnet/minecraft/class_2350$class_2351;ILjava/util/function/Predicate;)Lnet/minecraft/class_5459$class_5460;
        named getLargestRectangle Lnet/minecraft/world/PortalUtil;getLargestRectangle(Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/Direction$Axis;ILnet/minecraft/util/math/Direction$Axis;ILjava/util/function/Predicate;)Lnet/minecraft/world/PortalUtil$Rectangle;
      • moveWhile

        private static int moveWhile​(Predicate<BlockPos> predicate,
                                     BlockPos.Mutable mutable,
                                     Direction direction,
                                     int max)
        Mappings:
        Namespace Name Mixin selector
        official a Ln;a(Ljava/util/function/Predicate;Lgb$a;Lgg;I)I
        intermediary method_30575 Lnet/minecraft/class_5459;method_30575(Ljava/util/function/Predicate;Lnet/minecraft/class_2338$class_2339;Lnet/minecraft/class_2350;I)I
        named moveWhile Lnet/minecraft/world/PortalUtil;moveWhile(Ljava/util/function/Predicate;Lnet/minecraft/util/math/BlockPos$Mutable;Lnet/minecraft/util/math/Direction;I)I
      • findLargestRectangle

        static com.mojang.datafixers.util.Pair<PortalUtil.IntBounds,​Integer> findLargestRectangle​(int[] heights)
        Finds the largest rectangle within a histogram, where the vertical bars each have width 1 and height specified in heights.
        参数:
        heights - the heights of bars in the histogram
        返回:
        the base of the rectangle as an inclusive range and the height of the rectangle packed in a pair
        另请参阅:
        Largest Rectangle in Histogram - LeetCode
        Implementation Note:
        This implementation solves the problem using a stack. The stack maintains a collection of height limits of rectangles that may grow as the array iteration continues. When a new height is encountered, each position p in the stack would be popped if the rectangle with height limit at position p can no longer extend right. The popped rectangle becomes the return value if it has a larger area than the current candidate.

        When the rectangle area is calculated, the range is between p0 + 1, where p0 is the current top of stack after popping rectangles that can no longer extend, and the current iterated position i.

        Mappings:
        Namespace Name Mixin selector
        official a Ln;a([I)Lcom/mojang/datafixers/util/Pair;
        intermediary method_30576 Lnet/minecraft/class_5459;method_30576([I)Lcom/mojang/datafixers/util/Pair;
        named findLargestRectangle Lnet/minecraft/world/PortalUtil;findLargestRectangle([I)Lcom/mojang/datafixers/util/Pair;
      • method_34851

        public static Optional<BlockPos> method_34851​(BlockView blockView,
                                                      BlockPos blockPos,
                                                      Block block,
                                                      Direction direction,
                                                      Block block2)
        Mappings:
        Namespace Name Mixin selector
        official a Ln;a(Lbuv;Lgb;Lbyq;Lgg;Lbyq;)Ljava/util/Optional;
        intermediary method_34851 Lnet/minecraft/class_5459;method_34851(Lnet/minecraft/class_1922;Lnet/minecraft/class_2338;Lnet/minecraft/class_2248;Lnet/minecraft/class_2350;Lnet/minecraft/class_2248;)Ljava/util/Optional;
        named method_34851 Lnet/minecraft/world/PortalUtil;method_34851(Lnet/minecraft/world/BlockView;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/Block;Lnet/minecraft/util/math/Direction;Lnet/minecraft/block/Block;)Ljava/util/Optional;