diff options
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一茶饮尽 |