aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/kubatech/config/Config.java8
-rw-r--r--src/main/java/kubatech/loaders/MobRecipeLoader.java28
-rw-r--r--src/main/java/kubatech/nei/Mob_Handler.java10
-rw-r--r--src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeExterminationChamber.java3
-rw-r--r--src/main/resources/assets/kubatech/lang/en_US.lang5
-rw-r--r--src/main/resources/assets/kubatech/lang/zh_CN.lang3
6 files changed, 29 insertions, 28 deletions
diff --git a/src/main/java/kubatech/config/Config.java b/src/main/java/kubatech/config/Config.java
index da6bd4a16a..f16fc68ac1 100644
--- a/src/main/java/kubatech/config/Config.java
+++ b/src/main/java/kubatech/config/Config.java
@@ -63,6 +63,7 @@ public class Config {
_CacheRegenerationTrigger.ModAdditionRemovalChange;
public static boolean includeEmptyMobs = true;
public static String[] mobBlacklist;
+ public static double playerOnlyDropsModifier = .1d;
private static void load(Configuration configuration) {
Category category = Category.MOB_HANDLER;
@@ -114,6 +115,13 @@ public class Config {
},
"These mobs will be skipped when generating recipe map")
.getStringList();
+ playerOnlyDropsModifier = configuration
+ .get(
+ category.get(),
+ "PlayerOnlyDropsModifier",
+ .1d,
+ "Hard player only loot (such as core mod drops) will be multiplied by this number")
+ .getDouble();
}
}
diff --git a/src/main/java/kubatech/loaders/MobRecipeLoader.java b/src/main/java/kubatech/loaders/MobRecipeLoader.java
index dc9a19fb28..be5fa5af9e 100644
--- a/src/main/java/kubatech/loaders/MobRecipeLoader.java
+++ b/src/main/java/kubatech/loaders/MobRecipeLoader.java
@@ -209,14 +209,7 @@ public class MobRecipeLoader {
mOutputs = (ArrayList<MobDrop>) outputs.clone();
int maxdamagechance = 0;
- for (Iterator<MobDrop> iterator = mOutputs.iterator(); iterator.hasNext(); ) {
- MobDrop o = iterator.next();
- if (o.playerOnly) {
- iterator.remove();
- continue;
- }
- if (o.damages != null) for (int v : o.damages.values()) maxdamagechance += v;
- }
+ for (MobDrop o : mOutputs) if (o.damages != null) for (int v : o.damages.values()) maxdamagechance += v;
mMaxDamageChance = maxdamagechance;
maxEntityHealth = e.getMaxHealth();
mDuration = Math.max(MOB_SPAWN_INTERVAL, (int) ((maxEntityHealth / DIAMOND_SPIKES_DAMAGE) * 10d));
@@ -226,14 +219,7 @@ public class MobRecipeLoader {
public void refresh() {
int maxdamagechance = 0;
- for (Iterator<MobDrop> iterator = mOutputs.iterator(); iterator.hasNext(); ) {
- MobDrop o = iterator.next();
- if (o.playerOnly) {
- iterator.remove();
- continue;
- }
- if (o.damages != null) for (int v : o.damages.values()) maxdamagechance += v;
- }
+ for (MobDrop o : mOutputs) if (o.damages != null) for (int v : o.damages.values()) maxdamagechance += v;
mMaxDamageChance = maxdamagechance;
}
@@ -248,6 +234,10 @@ public class MobRecipeLoader {
ArrayList<ItemStack> stacks = new ArrayList<>(mOutputs.size());
for (MobDrop o : mOutputs) {
int chance = o.chance;
+ if (o.playerOnly) {
+ chance = (int) ((double) chance * Config.MobHandler.playerOnlyDropsModifier);
+ if (chance < 1) chance = 1;
+ }
int amount = o.stack.stackSize;
if (o.lootable && lootinglevel > 0) {
chance += lootinglevel * 5000;
@@ -1186,8 +1176,7 @@ public class MobRecipeLoader {
recipe.mOutputs.removeIf(removal::isMatching);
}
drops.addAll(override.additions);
- recipe.mOutputs.addAll(
- override.additions.stream().filter(d -> !d.playerOnly).collect(Collectors.toList()));
+ recipe.mOutputs.addAll(override.additions);
LoadConfigPacket.instance.mobsOverrides.put(k, override);
}
recipe.refresh();
@@ -1233,8 +1222,7 @@ public class MobRecipeLoader {
recipe.mOutputs.removeIf(removal::isMatching);
}
drops.addAll(override.additions);
- recipe.mOutputs.addAll(
- override.additions.stream().filter(d -> !d.playerOnly).collect(Collectors.toList()));
+ recipe.mOutputs.addAll(override.additions);
drops.sort(Comparator.comparing(d -> d.type)); // Fix GUI
}
recipe.refresh();
diff --git a/src/main/java/kubatech/nei/Mob_Handler.java b/src/main/java/kubatech/nei/Mob_Handler.java
index 3031b2ccf8..a06be40182 100644
--- a/src/main/java/kubatech/nei/Mob_Handler.java
+++ b/src/main/java/kubatech/nei/Mob_Handler.java
@@ -91,6 +91,7 @@ public class Mob_Handler extends TemplateRecipeHandler {
BOSS,
LOOTABLE,
PLAYER_ONLY,
+ EEC_CHANCE,
;
final String key;
@@ -501,10 +502,13 @@ public class Mob_Handler extends TemplateRecipeHandler {
NBTTagList extratooltip = new NBTTagList();
if (chance != 10000)
- extratooltip.appendTag(new NBTTagString(
- EnumChatFormatting.RESET + CHANCE.get() + (chance / 100) + "." + (chance % 100) + "%"));
+ extratooltip.appendTag(new NBTTagString(EnumChatFormatting.RESET + CHANCE.get((double) chance / 100d)));
if (lootable) extratooltip.appendTag(new NBTTagString(EnumChatFormatting.RESET + LOOTABLE.get()));
- if (isPlayerOnly) extratooltip.appendTag(new NBTTagString(EnumChatFormatting.RESET + PLAYER_ONLY.get()));
+ if (isPlayerOnly) {
+ extratooltip.appendTag(new NBTTagString(EnumChatFormatting.RESET + PLAYER_ONLY.get()));
+ extratooltip.appendTag(new NBTTagString(EnumChatFormatting.RESET
+ + EEC_CHANCE.get(((double) chance / 100d) * Config.MobHandler.playerOnlyDropsModifier)));
+ }
extratooltip.appendTag(new NBTTagString(EnumChatFormatting.RESET + AVERAGE_REMINDER.get()));
NBTTagCompound itemtag = this.items[0].getTagCompound();
diff --git a/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeExterminationChamber.java b/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeExterminationChamber.java
index e8c6da86bf..9153e44f7b 100644
--- a/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeExterminationChamber.java
+++ b/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeExterminationChamber.java
@@ -779,7 +779,8 @@ public class GT_MetaTileEntity_ExtremeExterminationChamber
if (!MobNameToRecipeMap.containsKey(mobType)) return invalid;
- return new Text(mobType).color(Color.GREEN.dark(3));
+ return new Text(StatCollector.translateToLocal("entity." + mobType + ".name"))
+ .color(Color.GREEN.dark(3));
}
})
.setEnabled(isFixed));
diff --git a/src/main/resources/assets/kubatech/lang/en_US.lang b/src/main/resources/assets/kubatech/lang/en_US.lang
index 8a486e2c8e..de090859be 100644
--- a/src/main/resources/assets/kubatech/lang/en_US.lang
+++ b/src/main/resources/assets/kubatech/lang/en_US.lang
@@ -12,10 +12,11 @@ mobhandler.mod=Mod:
mobhandler.max_health=Max health:
mobhandler.boss=BOSS
mobhandler.cannot_use_vial=Can't be in soul vial
-mobhandler.chance=Chance:
+mobhandler.chance=Chance: %.2f%%
mobhandler.average_reminder=§7§oPlease remember that these are average drops.
mobhandler.lootable=Looting is applied
-mobhandler.player_only=§7Does not drop in EEC
+mobhandler.player_only=§7Hard player-only
+mobhandler.eec_chance=§5Chance to drop in EEC: %.2f%%
#Commands
commandhandler.invalid=§cInvalid use ! The proper use of this command is /%s
diff --git a/src/main/resources/assets/kubatech/lang/zh_CN.lang b/src/main/resources/assets/kubatech/lang/zh_CN.lang
index cdd3ee3d20..23bfd14aaf 100644
--- a/src/main/resources/assets/kubatech/lang/zh_CN.lang
+++ b/src/main/resources/assets/kubatech/lang/zh_CN.lang
@@ -13,7 +13,6 @@ mobhandler.max_health=最大生命值:
mobhandler.chance=几率:
mobhandler.average_reminder=§7§o请注意,这些是掉落的平均期望值.
mobhandler.lootable=掠夺附魔已生效
-mobhandler.player_only=§7不在工业屠宰场内掉落
#Commands
commandhandler.invalid=§c无效使用 ! 该指令的正确使用是 /%s
@@ -99,4 +98,4 @@ achievement.teacollection.pu-erh_tea.desc=§4助消化,味道也像泥土
achievement.teacollection.red_tea.desc=§c为什么会有人喝这个?
achievement.teacollection.white_tea.desc=§e最健康的一款
achievement.teacollection.yellow_tea.desc=§6青草味更浓的绿茶
-achievement.teacollection.ultimate_tea.desc=§4§l一茶饮尽 \ No newline at end of file
+achievement.teacollection.ultimate_tea.desc=§4§l一茶饮尽