11package generations.gg.generations.core.generationscore.common.client.screen.mails
22
33import com.cobblemon.mod.common.Cobblemon
4- import com.cobblemon.mod.common.CobblemonNetwork
54import com.google.common.collect.Lists
6- import com.mojang.blaze3d.platform.GlStateManager
75import com.mojang.blaze3d.systems.RenderSystem
86import com.mojang.blaze3d.vertex.*
9- import generations.gg.generations.core.generationscore.common.GenerationsCore.implementation
107import generations.gg.generations.core.generationscore.common.network.packets.C2SEditMailPacket
118import generations.gg.generations.core.generationscore.common.world.item.MailItem
129import generations.gg.generations.core.generationscore.common.world.item.components.GenerationsDataComponents.SEALED_MAIL_DATA
13- import generations.gg.generations.core.generationscore.common.world.item.components.SealedMailContent
10+ import generations.gg.generations.core.generationscore.common.world.item.components.MailContent
1411import it.unimi.dsi.fastutil.ints.IntArrayList
1512import net.fabricmc.api.EnvType
1613import net.fabricmc.api.Environment
@@ -23,8 +20,8 @@ import net.minecraft.client.gui.GuiGraphics
2320import net.minecraft.client.gui.components.Button
2421import net.minecraft.client.gui.font.TextFieldHelper
2522import net.minecraft.client.gui.screens.Screen
26- import net.minecraft.client.renderer.GameRenderer
2723import net.minecraft.client.renderer.Rect2i
24+ import net.minecraft.client.renderer.RenderType
2825import net.minecraft.network.chat.CommonComponents
2926import net.minecraft.network.chat.Component
3027import net.minecraft.network.chat.Style
@@ -73,9 +70,9 @@ class MailEditScreen(private val owner: Player, private val book: ItemStack, pri
7370 private var displayCache: DisplayCache ? = DisplayCache .EMPTY
7471
7572 init {
76- val sealedMailContent : SealedMailContent ? = book.get(SEALED_MAIL_DATA .value())
77- if (sealedMailContent != null ) {
78- contents = sealedMailContent .content
73+ val mailContent : MailContent ? = book.get(SEALED_MAIL_DATA .value())
74+ if (mailContent != null ) {
75+ contents = mailContent .content
7976 }
8077
8178 location = (book.item as MailItem ).type.location
@@ -95,6 +92,10 @@ class MailEditScreen(private val owner: Player, private val book: ItemStack, pri
9592 }
9693 }
9794
95+ override fun renderBlurredBackground (partialTick : Float ) {
96+
97+ }
98+
9899 override fun tick () {
99100 super .tick()
100101 ++ this .frameTick
@@ -116,7 +117,7 @@ class MailEditScreen(private val owner: Player, private val book: ItemStack, pri
116117 this .addRenderableWidget(
117118 Button .builder(
118119 CommonComponents .GUI_DONE ,
119- { arg: Button ? ->
120+ { arg ->
120121 this .saveChanges(false )
121122 minecraft!! .setScreen(null )
122123 }).bounds(this .width / 2 + 2 , correctedHeight + 2 , 98 , 20 ).build()
@@ -139,13 +140,13 @@ class MailEditScreen(private val owner: Player, private val book: ItemStack, pri
139140 }
140141
141142 private fun updateLocalCopy (sign : Boolean ) {
142- val sealedMailContent : SealedMailContent = book.getOrDefault(SEALED_MAIL_DATA .value(), SealedMailContent ())
143+ val mailContent : MailContent = book.getOrDefault(SEALED_MAIL_DATA .value(), MailContent ())
143144
144- if (! contents.isEmpty ()) {
145- sealedMailContent .content = this .contents
145+ if (contents.isNotEmpty ()) {
146+ mailContent .content = this .contents
146147 }
147148 if (sign) {
148- sealedMailContent .author = owner.gameProfile.name
149+ mailContent .author = owner.gameProfile.name
149150 }
150151 }
151152
@@ -308,7 +309,7 @@ class MailEditScreen(private val owner: Player, private val book: ItemStack, pri
308309 for (lineInfo: LineInfo in displayCache!! .lines) {
309310 graphics.drawString(this .font, lineInfo.asComponent, lineInfo.x, lineInfo.y, - 0x1000000 , false )
310311 }
311- this .renderHighlight(displayCache.selection)
312+ this .renderHighlight(graphics, displayCache.selection)
312313 this .renderCursor(graphics, displayCache.cursor, displayCache.cursorAtEnd)
313314
314315 super .render(graphics, mouseX, mouseY, partialTick)
@@ -326,28 +327,14 @@ class MailEditScreen(private val owner: Player, private val book: ItemStack, pri
326327 }
327328 }
328329
329- private fun renderHighlight (selected : Array <Rect2i >) {
330- val tesselator: Tesselator = Tesselator .getInstance()
331- RenderSystem .setShader({ GameRenderer .getPositionShader() })
332- RenderSystem .setShaderColor(0.0f , 0.0f , 255.0f , 255.0f )
333- // RenderSystem.disableTexture();
334- RenderSystem .enableColorLogicOp()
335- RenderSystem .logicOp(GlStateManager .LogicOp .OR_REVERSE )
336- val bufferBuilder: BufferBuilder = tesselator.begin(VertexFormat .Mode .QUADS , DefaultVertexFormat .POSITION )
330+ private fun renderHighlight (graphics : GuiGraphics , selected : Array <Rect2i >) {
337331 for (rect2i: Rect2i in selected) {
338332 val i: Int = rect2i.x
339333 val j: Int = rect2i.y
340334 val k: Int = i + rect2i.width
341335 val l: Int = j + rect2i.height
342- bufferBuilder.addVertex(i.toFloat(), l.toFloat(), 0.0f )
343- bufferBuilder.addVertex(k.toFloat(), l.toFloat(), 0.0f )
344- bufferBuilder.addVertex(k.toFloat(), j.toFloat(), 0.0f )
345- bufferBuilder.addVertex(i.toFloat(), j.toFloat(), 0.0f )
336+ graphics.fill(RenderType .guiTextHighlight(), i, j, k, l, - 16776961 )
346337 }
347-
348- BufferUploader .drawWithShader(bufferBuilder.buildOrThrow())
349- RenderSystem .disableColorLogicOp()
350- // RenderSystem.enableTexture();
351338 }
352339
353340 private fun convertScreenToLocal (screenPos : Pos2i ): Pos2i {
@@ -522,7 +509,7 @@ class MailEditScreen(private val owner: Player, private val book: ItemStack, pri
522509 i : Int ,
523510 j : Int ,
524511 k : Int ,
525- l : Int
512+ l : Int ,
526513 ): Rect2i {
527514 val string: String = input.substring(l, i)
528515 val string2: String = input.substring(l, j)
@@ -550,7 +537,7 @@ class MailEditScreen(private val owner: Player, private val book: ItemStack, pri
550537 val cursorAtEnd : Boolean ,
551538 private val lineStarts : IntArray ,
552539 val lines : Array <LineInfo >,
553- val selection : Array <Rect2i >
540+ val selection : Array <Rect2i >,
554541 ) {
555542 fun getIndexAtPosition (font : Font , cursorPosition : Pos2i ): Int {
556543 val i: Int = cursorPosition.y / font.lineHeight
0 commit comments