Skip to content

Commit 1307b6c

Browse files
authored
Improved Screenshotting (#4)
* make copy button 9x9 * make font scale 2x and image width max text width in screenshots
1 parent 4e587bc commit 1307b6c

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

src/main/java/cc/woverflow/chatting/mixin/GuiNewChatMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ private void drawCopyChatBox(int right, int top) {
204204
GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f);
205205
chatting$right = right;
206206
Gui.drawModalRectWithCustomSizedTexture(right + 1, top, 0f, 0f, 9, 9, 9, 9);
207-
drawRect(right + 1, top, right + 11, top + 9, (((right + ModCompatHooks.getXOffset() + 3) <= (UMouse.getScaledX() / mc.ingameGUI.getChatGUI().getChatScale()) && (right + ModCompatHooks.getXOffset()) + 13 > (UMouse.getScaledX() / mc.ingameGUI.getChatGUI().getChatScale())) ? CleanButton.Companion.getHoveredColor() : CleanButton.Companion.getColor()));
207+
drawRect(right + 1, top, right + 10, top + 9, (((right + ModCompatHooks.getXOffset() + 3) <= (UMouse.getScaledX() / mc.ingameGUI.getChatGUI().getChatScale()) && (right + ModCompatHooks.getXOffset()) + 13 > (UMouse.getScaledX() / mc.ingameGUI.getChatGUI().getChatScale())) ? CleanButton.Companion.getHoveredColor() : CleanButton.Companion.getColor()));
208208
GlStateManager.disableAlpha();
209209
GlStateManager.disableRescaleNormal();
210210
GlStateManager.disableLighting();

src/main/kotlin/cc/woverflow/chatting/Chatting.kt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ object Chatting {
198198
val hud = Minecraft.getMinecraft().ingameGUI
199199
val chat = hud.chatGUI
200200
val i = MathHelper.floor_float(chat.chatWidth / chat.chatScale)
201-
return screenshot(GuiUtilRenderComponents.splitText(line.chatComponent, i, Minecraft.getMinecraft().fontRendererObj, false, false).map { it.formattedText }.reversed(), chat.chatWidth)
201+
return screenshot(GuiUtilRenderComponents.splitText(line.chatComponent, i, Minecraft.getMinecraft().fontRendererObj, false, false).map { it.formattedText }.reversed())
202202
}
203203

204204
private fun screenshotChat() {
@@ -215,11 +215,11 @@ object Chatting {
215215
chatLines.add(drawnLines[i].chatComponent.formattedText)
216216
}
217217

218-
screenshot(chatLines, chat.chatWidth)?.copyToClipboard()
218+
screenshot(chatLines)?.copyToClipboard()
219219
}
220220
}
221221

222-
private fun screenshot(messages: List<String>, width: Int): BufferedImage? {
222+
private fun screenshot(messages: List<String>): BufferedImage? {
223223
if (messages.isEmpty()) {
224224
EssentialAPI.getNotifications().push("Chatting", "Chat window is empty.")
225225
return null
@@ -230,10 +230,11 @@ object Chatting {
230230
}
231231

232232
val fr: FontRenderer = ModCompatHooks.fontRenderer
233-
val fb: Framebuffer = createBindFramebuffer(width * 3, (messages.size * 9) * 3)
233+
val width = messages.maxOf { fr.getStringWidth(it) }
234+
val fb: Framebuffer = createBindFramebuffer(width * 2, (messages.size * 9) * 2)
234235
val file = File(Minecraft.getMinecraft().mcDataDir, "screenshots/chat/" + fileFormatter.format(Date()))
235236

236-
GlStateManager.scale(3f, 3f, 1f)
237+
GlStateManager.scale(2f, 2f, 1f)
237238
val scale = Minecraft.getMinecraft().gameSettings.chatScale
238239
GlStateManager.scale(scale, scale, 1f)
239240
for (i in messages.indices) {

0 commit comments

Comments
 (0)