Files
EaglercraftX-1.8-workspace/src/main/java/net/minecraft/client/gui/GuiUtilRenderComponents.java

111 lines
4.3 KiB
Java
Raw Normal View History

2024-02-14 20:52:11 -08:00
package net.minecraft.client.gui;
import java.util.ArrayList;
import java.util.List;
import com.google.common.collect.Lists;
import net.minecraft.client.Minecraft;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.IChatComponent;
/**+
* This portion of EaglercraftX contains deobfuscated Minecraft 1.8 source code.
*
* Minecraft 1.8.8 bytecode is (c) 2015 Mojang AB. "Do not distribute!"
* Mod Coder Pack v9.18 deobfuscation configs are (c) Copyright by the MCP Team
*
* EaglercraftX 1.8 patch files (c) 2022-2024 lax1dude, ayunami2000. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
public class GuiUtilRenderComponents {
public static String func_178909_a(String parString1, boolean parFlag) {
return !parFlag && !Minecraft.getMinecraft().gameSettings.chatColours
? EnumChatFormatting.getTextWithoutFormattingCodes(parString1)
: parString1;
}
public static List<IChatComponent> func_178908_a(IChatComponent parIChatComponent, int parInt1,
FontRenderer parFontRenderer, boolean parFlag, boolean parFlag2) {
int i = 0;
ChatComponentText chatcomponenttext = new ChatComponentText("");
ArrayList arraylist = Lists.newArrayList();
ArrayList arraylist1 = Lists.newArrayList(parIChatComponent);
for (int j = 0; j < arraylist1.size(); ++j) {
IChatComponent ichatcomponent = (IChatComponent) arraylist1.get(j);
String s = ichatcomponent.getUnformattedTextForChat();
boolean flag = false;
if (s.contains("\n")) {
int k = s.indexOf(10);
String s1 = s.substring(k + 1);
s = s.substring(0, k + 1);
ChatComponentText chatcomponenttext1 = new ChatComponentText(s1);
chatcomponenttext1.setChatStyle(ichatcomponent.getChatStyle().createShallowCopy());
arraylist1.add(j + 1, chatcomponenttext1);
flag = true;
}
String s4 = func_178909_a(ichatcomponent.getChatStyle().getFormattingCode() + s, parFlag2);
String s5 = s4.endsWith("\n") ? s4.substring(0, s4.length() - 1) : s4;
int i1 = parFontRenderer.getStringWidth(s5);
ChatComponentText chatcomponenttext2 = new ChatComponentText(s5);
chatcomponenttext2.setChatStyle(ichatcomponent.getChatStyle().createShallowCopy());
if (i + i1 > parInt1) {
String s2 = parFontRenderer.trimStringToWidth(s4, parInt1 - i, false);
String s3 = s2.length() < s4.length() ? s4.substring(s2.length()) : null;
if (s3 != null && s3.length() > 0) {
int l = s2.lastIndexOf(" ");
if (l >= 0 && parFontRenderer.getStringWidth(s4.substring(0, l)) > 0) {
s2 = s4.substring(0, l);
if (parFlag) {
++l;
}
s3 = s4.substring(l);
} else if (i > 0 && !s4.contains(" ")) {
s2 = "";
s3 = s4;
}
ChatComponentText chatcomponenttext3 = new ChatComponentText(s3);
chatcomponenttext3.setChatStyle(ichatcomponent.getChatStyle().createShallowCopy());
arraylist1.add(j + 1, chatcomponenttext3);
}
i1 = parFontRenderer.getStringWidth(s2);
chatcomponenttext2 = new ChatComponentText(s2);
chatcomponenttext2.setChatStyle(ichatcomponent.getChatStyle().createShallowCopy());
flag = true;
}
if (i + i1 <= parInt1) {
i += i1;
chatcomponenttext.appendSibling(chatcomponenttext2);
} else {
flag = true;
}
if (flag) {
arraylist.add(chatcomponenttext);
i = 0;
chatcomponenttext = new ChatComponentText("");
}
}
arraylist.add(chatcomponenttext);
return arraylist;
}
}