diff options
author | Cleista <67157844+Cleista@users.noreply.github.com> | 2021-08-17 19:24:31 -0400 |
---|---|---|
committer | Cleista <67157844+Cleista@users.noreply.github.com> | 2021-08-17 19:24:31 -0400 |
commit | 77f7360633c0d8fb201802aa7675b5cc1c6d3c10 (patch) | |
tree | 7171b8d5dbf61fb050ba395f41180d22203d6f1e /src/main | |
parent | 9ad481a449727b61c52d80306229763d576ec64c (diff) | |
download | GT5-Unofficial-77f7360633c0d8fb201802aa7675b5cc1c6d3c10.tar.gz GT5-Unofficial-77f7360633c0d8fb201802aa7675b5cc1c6d3c10.tar.bz2 GT5-Unofficial-77f7360633c0d8fb201802aa7675b5cc1c6d3c10.zip |
Sort messages displayed to the player
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProspector.java | 63 |
1 files changed, 60 insertions, 3 deletions
diff --git a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProspector.java b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProspector.java index 65c25d0b1b..7b87da7b50 100644 --- a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProspector.java +++ b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProspector.java @@ -29,6 +29,9 @@ import net.minecraft.world.World; import net.minecraft.world.chunk.Chunk; import net.minecraftforge.fluids.FluidStack; +import java.util.List; +import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.SplittableRandom; @@ -45,6 +48,8 @@ public class BehaviourDetravToolProspector extends Behaviour_None { protected final int mCosts; + static final String CHAT_MSG_SEPARATOR = "--------------------"; + public BehaviourDetravToolProspector(int aCosts) { mCosts = aCosts; } @@ -114,15 +119,49 @@ public class BehaviourDetravToolProspector extends Behaviour_None { } } + // List to hold unsorted scanner messages + List<ChatComponentText> oreMessages = new ArrayList<ChatComponentText>(); + for (String key : ores.keySet()) { int value = ores.get(key); - addChatMassageByValue(aPlayer,value,key); + appendChatMessageByValue(oreMessages, aPlayer,value,key); + } + + // Define sort order by distance + List<String> sortOrder = Arrays.asList( + StatCollector.translateToLocal("detrav.scanner.distance.texts.4"), + StatCollector.translateToLocal("detrav.scanner.distance.texts.3"), + StatCollector.translateToLocal("detrav.scanner.distance.texts.2"), + StatCollector.translateToLocal("detrav.scanner.distance.texts.1"), + StatCollector.translateToLocal("detrav.scanner.distance.texts.0") + ); + + List<ChatComponentText> oreMessagesSorted = new ArrayList<ChatComponentText>(); + oreMessagesSorted.add(new ChatComponentText(CHAT_MSG_SEPARATOR)); + + // Sort ore messages by distance, separated by ----- + for(String oreFrequency : sortOrder) { + for(ChatComponentText msg : oreMessages) { + if (msg.getChatComponentText_TextValue().contains(oreFrequency)) { + oreMessagesSorted.add(msg); + } + } + + // Only append ----- separator if text has been added + if (!oreMessagesSorted.get(oreMessagesSorted.size() - 1).getChatComponentText_TextValue().contains(CHAT_MSG_SEPARATOR)) { + oreMessagesSorted.add(new ChatComponentText(CHAT_MSG_SEPARATOR)); + } } if( badluck == 0) { - aPlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.WHITE + StatCollector.translateToLocal("detrav.scanner.success"))); + oreMessages.add(new ChatComponentText(EnumChatFormatting.WHITE + StatCollector.translateToLocal("detrav.scanner.success"))); } else { - aPlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.WHITE + StatCollector.translateToLocal("detrav.scanner.fail").replace("%badluck", Integer.toString(badluck)))); + oreMessages.add(new ChatComponentText(EnumChatFormatting.WHITE + StatCollector.translateToLocal("detrav.scanner.fail").replace("%badluck", Integer.toString(badluck)))); + } + + // Print the sorted messages + for(ChatComponentText msg : oreMessagesSorted) { + aPlayer.addChatMessage(msg); } } @@ -263,6 +302,24 @@ public class BehaviourDetravToolProspector extends Behaviour_None { aPlayer.addChatMessage(new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.5"))); } + // Same as addChatMassageByValue but appends to a list of chat messages and spelled correctly + void appendChatMessageByValue(List<ChatComponentText> chatMessageList, EntityPlayer aPlayer, int value, String name) { + if (value < 0) { + chatMessageList.add(new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.found.texts.6") + name)); + } else if (value < 1) { + chatMessageList.add(new ChatComponentText(StatCollector.translateToLocal("detrav.scanner.found.texts.0"))); + } else if (value < 10) + chatMessageList.add(new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.1"))); + else if (value < 30) + chatMessageList.add(new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.2"))); + else if (value < 60) + chatMessageList.add(new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.3"))); + else if (value < 100) + chatMessageList.add(new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.4"))); + else + chatMessageList.add(new ChatComponentText(name + StatCollector.translateToLocal("detrav.scanner.found.texts.5"))); + } + public static int getPolution(World aWorld, int aX, int aZ) { return GT_Pollution.getPollution(aWorld.getChunkFromBlockCoords(aX, aZ)); |