aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech
diff options
context:
space:
mode:
authorMartin Robertz <dream-master@gmx.net>2021-11-17 17:58:59 +0100
committerGitHub <noreply@github.com>2021-11-17 17:58:59 +0100
commitc696e261ab826d711a09622aacff841a01cfeb2a (patch)
tree3f19b2a1de306ca762b168a9239c87611ab7d53d /src/main/java/gregtech
parentccca72109fb092bd88defa47cd04f5b499417877 (diff)
parent2419eb0491d8648cbd1aef159b897fa953ca558a (diff)
downloadGT5-Unofficial-c696e261ab826d711a09622aacff841a01cfeb2a.tar.gz
GT5-Unofficial-c696e261ab826d711a09622aacff841a01cfeb2a.tar.bz2
GT5-Unofficial-c696e261ab826d711a09622aacff841a01cfeb2a.zip
Merge pull request #737 from GTNewHorizons/patch-uo
Fix NPE and math bugs in underground oil
Diffstat (limited to 'src/main/java/gregtech')
-rw-r--r--src/main/java/gregtech/api/util/GT_ChunkAssociatedData.java10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/main/java/gregtech/api/util/GT_ChunkAssociatedData.java b/src/main/java/gregtech/api/util/GT_ChunkAssociatedData.java
index b28cb429b4..bd9148b516 100644
--- a/src/main/java/gregtech/api/util/GT_ChunkAssociatedData.java
+++ b/src/main/java/gregtech/api/util/GT_ChunkAssociatedData.java
@@ -126,13 +126,13 @@ public abstract class GT_ChunkAssociatedData<T extends GT_ChunkAssociatedData.ID
public final T get(World world, int chunkX, int chunkZ) {
SuperRegion region = masterMap.computeIfAbsent(world.provider.dimensionId, ignored -> new ConcurrentHashMap<>())
.computeIfAbsent(getRegionID(chunkX, chunkZ), c -> new SuperRegion(world, c));
- return region.get(chunkX % regionLength, chunkZ % regionLength);
+ return region.get(Math.floorMod(chunkX, regionLength), Math.floorMod(chunkZ, regionLength));
}
protected final void set(World world, int chunkX, int chunkZ, T data) {
SuperRegion region = masterMap.computeIfAbsent(world.provider.dimensionId, ignored -> new ConcurrentHashMap<>())
.computeIfAbsent(getRegionID(chunkX, chunkZ), c -> new SuperRegion(world, c));
- region.set(chunkX % regionLength, chunkZ % regionLength, data);
+ region.set(Math.floorMod(chunkX, regionLength), Math.floorMod(chunkZ, regionLength), data);
}
protected final boolean isCreated(int dimId, int chunkX, int chunkZ) {
@@ -142,7 +142,7 @@ public abstract class GT_ChunkAssociatedData<T extends GT_ChunkAssociatedData.ID
SuperRegion region = dimData.getOrDefault(getRegionID(chunkX, chunkZ), null);
if (region == null) return false;
- return region.isCreated(chunkX % regionLength, chunkZ % regionLength);
+ return region.isCreated(Math.floorMod(chunkX, regionLength), Math.floorMod(chunkZ, regionLength));
}
public void clear() {
@@ -162,7 +162,9 @@ public abstract class GT_ChunkAssociatedData<T extends GT_ChunkAssociatedData.ID
}
public void save(World world) {
- saveRegions(masterMap.get(world.provider.dimensionId).values().stream());
+ Map<ChunkCoordIntPair, SuperRegion> map = masterMap.get(world.provider.dimensionId);
+ if (map != null)
+ saveRegions(map.values().stream());
}
private void saveRegions(Stream<SuperRegion> stream) {