@@ -24,9 +24,14 @@ import com.mojang.blaze3d.systems.RenderSystem
2424import net.minecraft.client.font.TextRenderer
2525import net.minecraft.client.gui.DrawContext
2626import net.minecraft.client.gui.tooltip.TooltipComponent
27+ import net.minecraft.client.render.MapRenderState
28+ import net.minecraft.client.render.RenderLayer
29+ import net.minecraft.component.DataComponentTypes
30+ import net.minecraft.component.type.MapIdComponent
2731import net.minecraft.item.FilledMapItem
2832import net.minecraft.item.ItemStack
2933import net.minecraft.item.map.MapState
34+ import net.minecraft.item.tooltip.TooltipData
3035import net.minecraft.util.Identifier
3136
3237
@@ -35,35 +40,36 @@ object MapPreview : Module(
3540 description = " Preview maps in your inventory" ,
3641 defaultTags = setOf(ModuleTag .RENDER )
3742) {
38- private val background = Identifier (" textures/map/map_background.png" )
43+ private val background = Identifier .ofVanilla (" textures/map/map_background.png" )
3944
40- // The map component is added via the draw context mixin, thanks mojang
41- class MapComponent (val stack : ItemStack ) : TooltipComponent {
45+ class MapComponent (val stack : ItemStack ) : TooltipData, TooltipComponent {
4246 val state: MapState ?
4347 get() = FilledMapItem .getMapState(stack, mc.world)
4448
45- val mapId: Int ?
46- get() = FilledMapItem .getMapId(stack )
49+ val mapId: MapIdComponent ?
50+ get() = stack.getOrDefault( DataComponentTypes . MAP_ID , null )
4751
48- override fun drawItems (fontRenderer : TextRenderer , x : Int , y : Int , context : DrawContext ) {
52+ override fun drawItems (textRenderer : TextRenderer , x : Int , y : Int , width : Int , height : Int , context : DrawContext ) {
4953 mapId?.let { id ->
50- // Values taken from net.minecraft.client.render.item.HeldItemRenderer.renderFirstPersonMap
51-
5254 val matrices = context.matrices
5355
5456 matrices.push()
5557 matrices.translate(x + 4.0 , y + 4.0 , 500.0 )
5658 matrices.scale(0.7f , 0.7f , 1f )
5759
5860 RenderSystem .enableBlend()
59- context.drawTexture(background, - 7 , - 7 , 0f , 0f , 142 , 142 , 142 , 142 )
61+ context.drawTexture(RenderLayer ::getGuiTextured, background, - 7 , - 7 , 0f , 0f , 142 , 142 , 142 , 142 )
6062
6163 matrices.translate(0.0 , 0.0 , 1.0 )
62- mc.gameRenderer.mapRenderer.draw(matrices, context.vertexConsumers, id, state, true , 240 )
64+
65+ val renderState = MapRenderState ()
66+ mc.mapRenderer.update(id, state, renderState)
67+ context.draw { mc.mapRenderer.draw(renderState, matrices, it, true , 0xF000F0 ) }
68+ matrices.pop()
6369 }
6470 }
6571
66- override fun getHeight (): Int {
72+ override fun getHeight (textRenderer : TextRenderer ): Int {
6773 return if (FilledMapItem .getMapState(stack, mc.world) != null ) 100
6874 else 0
6975 }
0 commit comments