diff options
Diffstat (limited to 'src')
2 files changed, 14 insertions, 15 deletions
diff --git a/src/main/java/com/github/bartimaeusnek/crossmod/galacticgreg/GT_TileEntity_VoidMiner_Base.java b/src/main/java/com/github/bartimaeusnek/crossmod/galacticgreg/GT_TileEntity_VoidMiner_Base.java index b8631f063d..6e2f133ddd 100644 --- a/src/main/java/com/github/bartimaeusnek/crossmod/galacticgreg/GT_TileEntity_VoidMiner_Base.java +++ b/src/main/java/com/github/bartimaeusnek/crossmod/galacticgreg/GT_TileEntity_VoidMiner_Base.java @@ -23,7 +23,6 @@ import static gregtech.api.enums.GT_Values.VN; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.stream.Collectors; import net.minecraft.block.Block; @@ -47,6 +46,7 @@ import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_DrillerBase public abstract class GT_TileEntity_VoidMiner_Base extends GT_MetaTileEntity_DrillerBase { private VoidMinerUtility.DropMap dropMap = null; + private VoidMinerUtility.DropMap extraDropMap = null; private float totalWeight; private int multiplier = 1; @@ -172,6 +172,10 @@ public abstract class GT_TileEntity_VoidMiner_Base extends GT_MetaTileEntity_Dri currentWeight += entry.getValue(); if (randomNumber < currentWeight) return entry.getKey().getItemStack(); } + for (Map.Entry<GT_Utility.ItemId, Float> entry : this.extraDropMap.getInternalMap().entrySet()) { + currentWeight += entry.getValue(); + if (randomNumber < currentWeight) return entry.getKey().getItemStack(); + } } } @@ -224,9 +228,9 @@ public abstract class GT_TileEntity_VoidMiner_Base extends GT_MetaTileEntity_Dri * @param id the specified dim id */ private void handleExtraDrops(int id) { - Optional.ofNullable(VoidMinerUtility.extraDropsDimMap.get(id)).ifPresent( - extraDropMap -> extraDropMap.getInternalMap() - .forEach((ItemId, weight) -> this.dropMap.addDrop(ItemId.getItemStack(), weight))); + if (VoidMinerUtility.extraDropsDimMap.containsKey(id)) { + extraDropMap = VoidMinerUtility.extraDropsDimMap.get(id); + } } /** @@ -236,13 +240,13 @@ public abstract class GT_TileEntity_VoidMiner_Base extends GT_MetaTileEntity_Dri */ private void handleModDimDef(int id) { if (VoidMinerUtility.dropMapsByDimId.containsKey(id)) { - this.dropMap = VoidMinerUtility.dropMapsByDimId.get(id).copy(); + this.dropMap = VoidMinerUtility.dropMapsByDimId.get(id); } else { String chunkProviderName = ((ChunkProviderServer) this.getBaseMetaTileEntity().getWorld() .getChunkProvider()).currentChunkProvider.getClass().getName(); if (VoidMinerUtility.dropMapsByChunkProviderName.containsKey(chunkProviderName)) { - this.dropMap = VoidMinerUtility.dropMapsByChunkProviderName.get(chunkProviderName).copy(); + this.dropMap = VoidMinerUtility.dropMapsByChunkProviderName.get(chunkProviderName); } } } @@ -253,10 +257,11 @@ public abstract class GT_TileEntity_VoidMiner_Base extends GT_MetaTileEntity_Dri */ private void calculateDropMap() { this.dropMap = new VoidMinerUtility.DropMap(); + this.extraDropMap = new VoidMinerUtility.DropMap(); int id = this.getBaseMetaTileEntity().getWorld().provider.dimensionId; this.handleModDimDef(id); this.handleExtraDrops(id); - this.totalWeight = dropMap.getTotalWeight(); + this.totalWeight = dropMap.getTotalWeight() + extraDropMap.getTotalWeight(); } /** diff --git a/src/main/java/com/github/bartimaeusnek/crossmod/galacticgreg/VoidMinerUtility.java b/src/main/java/com/github/bartimaeusnek/crossmod/galacticgreg/VoidMinerUtility.java index 4aaf466f97..7d4b205426 100644 --- a/src/main/java/com/github/bartimaeusnek/crossmod/galacticgreg/VoidMinerUtility.java +++ b/src/main/java/com/github/bartimaeusnek/crossmod/galacticgreg/VoidMinerUtility.java @@ -107,13 +107,6 @@ public class VoidMinerUtility { public Map<GT_Utility.ItemId, Float> getInternalMap() { return internalMap; } - - public DropMap copy() { - DropMap result = new DropMap(); - result.internalMap.putAll(internalMap); - result.totalWeight = totalWeight; - return result; - } } public static final Map<Integer, DropMap> dropMapsByDimId = new HashMap<>(); @@ -130,10 +123,11 @@ public class VoidMinerUtility { * Computes the ores of the dims */ public static void generateDropMaps() { - // vanilla dims or TF + // vanilla dims dropMapsByDimId.put(-1, getDropMapVanilla(-1)); dropMapsByDimId.put(0, getDropMapVanilla(0)); dropMapsByDimId.put(1, getDropMapVanilla(1)); + // Twilight Forest dropMapsByDimId.put(7, getDropMapVanilla(7)); // ross dims |