aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorCleista <67157844+Cleista@users.noreply.github.com>2021-08-17 19:24:31 -0400
committerCleista <67157844+Cleista@users.noreply.github.com>2021-08-17 19:24:31 -0400
commit77f7360633c0d8fb201802aa7675b5cc1c6d3c10 (patch)
tree7171b8d5dbf61fb050ba395f41180d22203d6f1e /src/main
parent9ad481a449727b61c52d80306229763d576ec64c (diff)
downloadGT5-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.java63
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));