// Path: src/main/java/fi/dy/masa/minihud/data/OrderedBlockPosLong.java
// public class OrderedBlockPosLong
// {
//     public final long posLong;
//     public final int order;
// 
//     public OrderedBlockPosLong(long posLong, int order)
//     {
//         this.posLong = posLong;
//         this.order = order;
//     }
// 
//     public BlockPos getPos()
//     {
//         return BlockPos.fromLong(this.posLong);
//     }
// 
//     @Override
//     public boolean equals(Object o)
//     {
//         if (this == o) {return true;}
//         if (o == null || this.getClass() != o.getClass()) {return false;}
// 
//         OrderedBlockPosLong that = (OrderedBlockPosLong) o;
// 
//         if (this.posLong != that.posLong) {return false;}
//         return this.order == that.order;
//     }
// 
//     @Override
//     public int hashCode()
//     {
//         int result = (int) (this.posLong ^ (this.posLong >>> 32));
//         result = 31 * result + this.order;
//         return result;
//     }
// 
//     public static OrderedBlockPosLong of(BlockPos pos, int order)
//     {
//         return new OrderedBlockPosLong(pos.toLong(), order);
//     }
// }


import java.util.ArrayList;
import java.util.List;
import java.util.function.BooleanSupplier;
import java.util.function.Supplier;
import org.lwjgl.opengl.GL11;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.entity.Entity;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.ChunkPos;
import net.minecraft.util.math.Vec3d;
import fi.dy.masa.malilib.render.ShapeRenderUtils;
import fi.dy.masa.malilib.render.TextRenderUtils;
import fi.dy.masa.malilib.render.overlay.BaseRenderObject;
import fi.dy.masa.malilib.util.data.Color4f;
import fi.dy.masa.minihud.data.OrderedBlockPosLong;
import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap;
package fi.dy.masa.minihud.renderer;


public abstract class BaseBlockPositionListOverlayRenderer extends OverlayRendererBase
{
// Path: src/main/java/fi/dy/masa/minihud/data/OrderedBlockPosLong.java
// public class OrderedBlockPosLong
// {
//     public final long posLong;
//     public final int order;
// 
//     public OrderedBlockPosLong(long posLong, int order)
//     {
//         this.posLong = posLong;
//         this.order = order;
//     }
// 
//     public BlockPos getPos()
//     {
//         return BlockPos.fromLong(this.posLong);
//     }
// 
//     @Override
//     public boolean equals(Object o)
//     {
//         if (this == o) {return true;}
//         if (o == null || this.getClass() != o.getClass()) {return false;}
// 
//         OrderedBlockPosLong that = (OrderedBlockPosLong) o;
// 
//         if (this.posLong != that.posLong) {return false;}
//         return this.order == that.order;
//     }
// 
//     @Override
//     public int hashCode()
//     {
//         int result = (int) (this.posLong ^ (this.posLong >>> 32));
//         result = 31 * result + this.order;
//         return result;
//     }
// 
//     public static OrderedBlockPosLong of(BlockPos pos, int order)
//     {
//         return new OrderedBlockPosLong(pos.toLong(), order);
//     }
// }


// Path: src/main/java/fi/dy/masa/minihud/renderer/BaseBlockPositionListOverlayRenderer.java
import java.util.ArrayList;
import java.util.List;
import java.util.function.BooleanSupplier;
import java.util.function.Supplier;
import org.lwjgl.opengl.GL11;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.entity.Entity;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.ChunkPos;
import net.minecraft.util.math.Vec3d;
import fi.dy.masa.malilib.render.ShapeRenderUtils;
import fi.dy.masa.malilib.render.TextRenderUtils;
import fi.dy.masa.malilib.render.overlay.BaseRenderObject;
import fi.dy.masa.malilib.util.data.Color4f;
import fi.dy.masa.minihud.data.OrderedBlockPosLong;
import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap;

package fi.dy.masa.minihud.renderer;


public abstract class BaseBlockPositionListOverlayRenderer extends OverlayRendererBase
{
    protected final Long2ObjectOpenHashMap<ArrayList<OrderedBlockPosLong>> textPositions = new Long2ObjectOpenHashMap<>();