aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProspector.java63
-rw-r--r--src/main/resources/assets/detravscannermod/lang/en_US.lang22
-rw-r--r--src/main/resources/assets/detravscannermod/lang/zh_CN.lang20
3 files changed, 81 insertions, 24 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));
diff --git a/src/main/resources/assets/detravscannermod/lang/en_US.lang b/src/main/resources/assets/detravscannermod/lang/en_US.lang
index 1ace46a6b3..b3c8e569b1 100644
--- a/src/main/resources/assets/detravscannermod/lang/en_US.lang
+++ b/src/main/resources/assets/detravscannermod/lang/en_US.lang
@@ -4,21 +4,21 @@ detrav.scanner.mode.2=Set Mode: Underground Fluids
detrav.scanner.mode.3=Set Mode: Pollution
detrav.scanner.mode.error=Set Mode: ERROR
-detrav.scanner.distance.texts.0= next to you,
-detrav.scanner.distance.texts.1= close to you,
-detrav.scanner.distance.texts.2= at medium range,
-detrav.scanner.distance.texts.3= at long range,
-detrav.scanner.distance.texts.4= far away,
+detrav.scanner.distance.texts.0= §nnext to you,§r
+detrav.scanner.distance.texts.1= §nclose to you,§r
+detrav.scanner.distance.texts.2= §nat medium range,§r
+detrav.scanner.distance.texts.3= §nat long range,§r
+detrav.scanner.distance.texts.4= §nfar away,§r
detrav.scanner.small_ore.keyword=Small
detrav.scanner.found.texts.0=Found nothing of interest
-detrav.scanner.found.texts.1= traces.
-detrav.scanner.found.texts.2= small sample.
-detrav.scanner.found.texts.3= medium sample.
-detrav.scanner.found.texts.4= large sample.
-detrav.scanner.found.texts.5= very large sample.
-detrav.scanner.found.texts.6=Found
+detrav.scanner.found.texts.1= §8traces§r.
+detrav.scanner.found.texts.2= §7small sample§r.
+detrav.scanner.found.texts.3= §2medium sample§r.
+detrav.scanner.found.texts.4= §elarge sample§r.
+detrav.scanner.found.texts.5= §dvery large sample§r.
+detrav.scanner.found.texts.6=Found
# Don't translate "%badluck"
detrav.scanner.success=All chunks scanned successfully!
diff --git a/src/main/resources/assets/detravscannermod/lang/zh_CN.lang b/src/main/resources/assets/detravscannermod/lang/zh_CN.lang
index c5b920e60e..8f6f1ca137 100644
--- a/src/main/resources/assets/detravscannermod/lang/zh_CN.lang
+++ b/src/main/resources/assets/detravscannermod/lang/zh_CN.lang
@@ -4,20 +4,20 @@ detrav.scanner.mode.2=设置模式:地下流体
detrav.scanner.mode.3=设置模式:污染
detrav.scanner.mode.error=设置模式:错误
-detrav.scanner.distance.texts.0= 位于当前区块,
-detrav.scanner.distance.texts.1= 距离1-2区块,
-detrav.scanner.distance.texts.2= 距离3-5区块,
-detrav.scanner.distance.texts.3= 距离6-8区块,
-detrav.scanner.distance.texts.4= 距离9区块及以上,
+detrav.scanner.distance.texts.0= §n位于当前区块§r,
+detrav.scanner.distance.texts.1= §n距离1-2区块§r,
+detrav.scanner.distance.texts.2= §n距离3-5区块§r,
+detrav.scanner.distance.texts.3= §n距离6-8区块§r,
+detrav.scanner.distance.texts.4= §n距离9区块及以上§r,
detrav.scanner.small_ore.keyword=贫瘠
detrav.scanner.found.texts.0=没有发现矿石
-detrav.scanner.found.texts.1= 零星(1-9).
-detrav.scanner.found.texts.2= 少量(10-29).
-detrav.scanner.found.texts.3= 中等(30-59).
-detrav.scanner.found.texts.4= 较多(60-99).
-detrav.scanner.found.texts.5= 极多(100+).
+detrav.scanner.found.texts.1= §8零星(1-9)§r.
+detrav.scanner.found.texts.2= §7少量(10-29)§r.
+detrav.scanner.found.texts.3= §2中等(30-59)§r.
+detrav.scanner.found.texts.4= §e较多(60-99)§r.
+detrav.scanner.found.texts.5= §d极多(100+)§r.
detrav.scanner.found.texts.6=发现
# Don't translate "%badluck"