aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/github/bartimaeusnek/crossmod/galacticgreg/GT_TileEntity_VoidMiner_Base.java19
-rw-r--r--src/main/java/com/github/bartimaeusnek/crossmod/galacticgreg/VoidMinerUtility.java10
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