From 8a46c870fdecd5d6b08c298656912341125d0f35 Mon Sep 17 00:00:00 2001 From: kuba6000 Date: Fri, 6 Aug 2021 15:42:41 +0200 Subject: Fix void miner ore generation Fix ores that are impossible to get because of their weight < 1 Former-commit-id: 3522bd46ed16293667c73626e16fd10f616fbe69 --- .../galacticgreg/GT_TileEntity_VoidMiner_Base.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'src/main/java/com') 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 21596437e9..a383eb1923 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 @@ -22,6 +22,8 @@ package com.github.bartimaeusnek.crossmod.galacticgreg; +//import com.github.bartimaeusnek.bartworks.MainMod; + import bloodasp.galacticgreg.GT_Worldgen_GT_Ore_Layer_Space; import bloodasp.galacticgreg.GT_Worldgen_GT_Ore_SmallPieces_Space; import bloodasp.galacticgreg.GalacticGreg; @@ -268,12 +270,19 @@ public abstract class GT_TileEntity_VoidMiner_Base extends GT_MetaTileEntity_Dri } private Pair getOreDamage() { - int curentWeight = 0; + /* + dropmap.values().forEach(f -> { + if(f < 1.f) + MainMod.LOGGER.info(f); + }); + */ + + float curentWeight = 0.f; while (true) { - int randomeint = (Math.abs(XSTR.XSTR_INSTANCE.nextInt((int) Math.ceil(totalWeight)))); + float randomnumber = XSTR.XSTR_INSTANCE.nextFloat() * totalWeight; for (Map.Entry, Float> entry : dropmap.entrySet()) { curentWeight += entry.getValue(); - if (randomeint < curentWeight) + if (randomnumber < curentWeight) return entry.getKey(); } } -- cgit