diff options
author | boubou_19 <miisterunknown@gmail.com> | 2021-07-17 17:39:56 +0200 |
---|---|---|
committer | boubou_19 <miisterunknown@gmail.com> | 2021-07-17 17:39:56 +0200 |
commit | c047cd309d35bc6eceb01f24a98ab96c7da04f88 (patch) | |
tree | 88088c610becc17c72f2cc541565f253cd89edb4 /src | |
parent | 8ba61587610029ebd7ee9c97f8cee931b74972d5 (diff) | |
download | GT5-Unofficial-c047cd309d35bc6eceb01f24a98ab96c7da04f88.tar.gz GT5-Unofficial-c047cd309d35bc6eceb01f24a98ab96c7da04f88.tar.bz2 GT5-Unofficial-c047cd309d35bc6eceb01f24a98ab96c7da04f88.zip |
fix void miner drops in the twilight forest
Former-commit-id: eff10776ce76b21b7c7a56b7bd040a41150866e0
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/com/github/bartimaeusnek/crossmod/galacticgreg/GT_TileEntity_VoidMiner_Base.java | 44 |
1 files changed, 30 insertions, 14 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 f4400fab11..6a8eaefa9c 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 @@ -48,6 +48,7 @@ import gregtech.common.GT_Worldgen_GT_Ore_SmallPieces; import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_DrillerBase; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; import net.minecraft.world.gen.ChunkProviderServer; import net.minecraftforge.fluids.FluidStack; @@ -168,31 +169,46 @@ public abstract class GT_TileEntity_VoidMiner_Base extends GT_MetaTileEntity_Dri } private Predicate<GT_Worldgen_GT_Ore_Layer> makeOreLayerPredicate() { - switch (this.getBaseMetaTileEntity().getWorld().provider.dimensionId) { + World world = this.getBaseMetaTileEntity().getWorld(); + switch (world.provider.dimensionId) { case -1: return gt_worldgen -> gt_worldgen.mNether; case 0: return gt_worldgen -> gt_worldgen.mOverworld; case 1: return gt_worldgen -> gt_worldgen.mEnd || gt_worldgen.mEndAsteroid; + case 7: + /* + explicitely giving different dim numbers so it default to false in the config, keeping compat + with the current worldgen config + */ + + return gt_worldgen -> gt_worldgen.isGenerationAllowed(world, 0, 7); default: throw new IllegalStateException(); } } - + private Predicate<GT_Worldgen_GT_Ore_SmallPieces> makeSmallOresPredicate() { - switch (this.getBaseMetaTileEntity().getWorld().provider.dimensionId) { + World world = this.getBaseMetaTileEntity().getWorld(); + switch (world.provider.dimensionId) { case -1: return gt_worldgen -> gt_worldgen.mNether; case 0: return gt_worldgen -> gt_worldgen.mOverworld; case 1: return gt_worldgen -> gt_worldgen.mEnd; + case 7: + /* + explicitely giving different dim numbers so it default to false in the config, keeping compat + with the current worldgen config + */ + return gt_worldgen -> gt_worldgen.isGenerationAllowed(world, 0, 7); default: throw new IllegalStateException(); } } - + private void getDropsVanillaVeins(Predicate<GT_Worldgen_GT_Ore_Layer> oreLayerPredicate) { GT_Worldgen_GT_Ore_Layer.sList.stream().filter(gt_worldgen -> gt_worldgen.mEnabled && oreLayerPredicate.test(gt_worldgen)).forEach(element -> { dropmap.put(new Pair<>((int) element.mPrimaryMeta,false), (float) element.mWeight); @@ -208,17 +224,17 @@ public abstract class GT_TileEntity_VoidMiner_Base extends GT_MetaTileEntity_Dri dropmap.put(new Pair<>((int) element.mMeta,false), (float) element.mAmount) ); } - + private void getDropMapVanilla() { getDropsVanillaVeins(makeOreLayerPredicate()); getDropsVanillaSmallOres(makeSmallOresPredicate()); } - + private void getDropMapSpace(ModDimensionDef finalDef) { getDropsOreVeinsSpace(finalDef); getDropsSmallOreSpace(finalDef); } - + private void getDropsOreVeinsSpace(ModDimensionDef finalDef) { Set space = GalacticGreg.oreVeinWorldgenList.stream() .filter(gt_worldgen -> gt_worldgen.mEnabled && gt_worldgen instanceof GT_Worldgen_GT_Ore_Layer_Space && ((GT_Worldgen_GT_Ore_Layer_Space) gt_worldgen).isEnabledForDim(finalDef)) @@ -286,7 +302,7 @@ public abstract class GT_TileEntity_VoidMiner_Base extends GT_MetaTileEntity_Dri if (storedNobleGas == null || !consumeNobleGas(storedNobleGas)) multiplier = TIER_MULTIPLIER; } - + private void getDropMapBartworks(ModDimensionDef finalDef, int aID) { Consumer<BW_OreLayer> addToList = makeAddToList(); if (aID == ConfigHandler.ross128BID) @@ -310,7 +326,7 @@ public abstract class GT_TileEntity_VoidMiner_Base extends GT_MetaTileEntity_Dri } }; } - + private ModDimensionDef makeModDimDef() { return getModContainers().stream() .flatMap(modContainer -> modContainer.getDimensionList().stream()) @@ -318,7 +334,7 @@ public abstract class GT_TileEntity_VoidMiner_Base extends GT_MetaTileEntity_Dri .equals(((ChunkProviderServer) this.getBaseMetaTileEntity().getWorld().getChunkProvider()).currentChunkProvider.getClass().getName())) .findFirst().orElse(null); } - + private void addOresVeinsBartworks(ModDimensionDef finalDef, Consumer<BW_OreLayer> addToList) { try { Set space = GalacticGreg.oreVeinWorldgenList.stream() @@ -328,7 +344,7 @@ public abstract class GT_TileEntity_VoidMiner_Base extends GT_MetaTileEntity_Dri space.forEach(addToList); } catch (NullPointerException ignored) {} } - + private void addSmallOresBartworks(ModDimensionDef finalDef) { try { Set space = GalacticGreg.smallOreWorldgenList.stream() @@ -341,7 +357,7 @@ public abstract class GT_TileEntity_VoidMiner_Base extends GT_MetaTileEntity_Dri ); } catch (NullPointerException ignored) {} } - + private void handleExtraDrops(int id) { Optional.ofNullable(getExtraDropsDimMap().get(id)).ifPresent(e -> e.forEach(f -> dropmap.put(f.getKey(), f.getValue()))); } @@ -357,7 +373,7 @@ public abstract class GT_TileEntity_VoidMiner_Base extends GT_MetaTileEntity_Dri } private void handleModDimDef(int id) { - if (id <= 1 && id >= -1) + if ((id <= 1 && id >= -1) || id == 7) getDropMapVanilla(); Optional.ofNullable(makeModDimDef()).ifPresent(def -> { handleDimBasedDrops(def, id); @@ -375,7 +391,7 @@ public abstract class GT_TileEntity_VoidMiner_Base extends GT_MetaTileEntity_Dri private void makeDropMap() { if (dropmap == null || totalWeight == 0) - calculateDropMap(); + calculateDropMap(); } private void handleOutputs() { |