diff options
4 files changed, 23 insertions, 18 deletions
diff --git a/src/main/java/gregtech/api/objects/GT_UO_DimensionList.java b/src/main/java/gregtech/api/objects/GT_UO_DimensionList.java index 1e4f54eb12..e34ea1d4dd 100644 --- a/src/main/java/gregtech/api/objects/GT_UO_DimensionList.java +++ b/src/main/java/gregtech/api/objects/GT_UO_DimensionList.java @@ -12,13 +12,14 @@ public class GT_UO_DimensionList { private String fCategory; private BiMap<String, GT_UO_Dimension> fDimensionList; - public int[] BlackList; + public int[] blackList =new int[0]; public GT_UO_DimensionList() { fDimensionList = HashBiMap.create(); } public GT_UO_Dimension GetDimension(int aDimension) { + if(CheckBlackList(aDimension)) return null; if (fDimensionList.containsKey(Integer.toString(aDimension))) return fDimensionList.get(Integer.toString(aDimension)); for (BiMap.Entry <String, GT_UO_Dimension> dl : fDimensionList.entrySet()) @@ -26,12 +27,12 @@ public class GT_UO_DimensionList { return dl.getValue(); return fDimensionList.get("Default"); } - + public boolean CheckBlackList(int aDimensionId){ try { - if (java.util.Arrays.binarySearch(BlackList, aDimensionId) >= 0) return true; - else return false; + return java.util.Arrays.binarySearch(blackList, aDimensionId) >= 0; } catch (Exception e) { + e.printStackTrace(); return false; } } @@ -68,14 +69,13 @@ public class GT_UO_DimensionList { fConfig.setCategoryComment(fCategory+".Overworld", "Set Overworld Generating"); fConfig.setCategoryComment(fCategory+".Moon", "Set Moon Generating"); - int[] BlackList = {-1,1}; - BlackList = aConfig.get(fCategory, "DimBlackList", BlackList, "Dimension IDs Black List").getIntList(); - java.util.Arrays.sort(BlackList); + blackList = new int[]{-1,1}; + blackList = aConfig.get(fCategory, "DimBlackList", blackList, "Dimension IDs Black List").getIntList(); + java.util.Arrays.sort(blackList); for (int i = 0 ; i < fConfig.getCategory(fCategory).getChildren().size(); i++) { GT_UO_Dimension Dimension = new GT_UO_Dimension((ConfigCategory)fConfig.getCategory(fCategory).getChildren().toArray()[i]); fDimensionList.put(Dimension.Dimension, Dimension); } } - } diff --git a/src/main/java/gregtech/api/util/GT_Utility.java b/src/main/java/gregtech/api/util/GT_Utility.java index 17e2f3d0c4..57a115973e 100644 --- a/src/main/java/gregtech/api/util/GT_Utility.java +++ b/src/main/java/gregtech/api/util/GT_Utility.java @@ -1946,10 +1946,10 @@ public class GT_Utility { } public static String joinListToString(List<String> list) { - String result = ""; + StringBuilder result = new StringBuilder(32); for (String s : list) - result += (result.isEmpty() ? "" : "|") + s; - return result; + result.append(result.length()==0?s:'|'+s); + return result.toString(); } public static ItemStack getIntegratedCircuit(int config){ @@ -2067,7 +2067,7 @@ public class GT_Utility { return tNBT.getString("author"); } - public static void setProspectionData(ItemStack aStack, int aX, int aY, int aZ, int aDim, FluidStack aFluid, String[] aOres) { + public static void setProspectionData(ItemStack aStack, int aX, int aY, int aZ, int aDim, FluidStack aFluid, String... aOres) { NBTTagCompound tNBT = getNBT(aStack); String tData = aX + "," + aY + "," + aZ + "," + aDim + ","; if (aFluid!=null) diff --git a/src/main/java/gregtech/common/GT_UndergroundOil.java b/src/main/java/gregtech/common/GT_UndergroundOil.java index 21c7a4aa0f..98cf09fe88 100644 --- a/src/main/java/gregtech/common/GT_UndergroundOil.java +++ b/src/main/java/gregtech/common/GT_UndergroundOil.java @@ -2,6 +2,7 @@ package gregtech.common; import gregtech.GT_Mod; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.objects.GT_UO_Dimension; import gregtech.api.objects.GT_UO_Fluid; import gregtech.api.objects.XSTR; import net.minecraft.world.ChunkCoordIntPair; @@ -36,14 +37,15 @@ public class GT_UndergroundOil { //Returns whole content for information purposes -> when drainSpeedCoeff < 0 //Else returns extracted fluidStack if amount > 0, or null otherwise public static FluidStack undergroundOil(Chunk chunk, float readOrDrainCoefficient) { - if (GT_Mod.gregtechproxy.mUndergroundOil.CheckBlackList(chunk.worldObj.provider.dimensionId)) return null; World aWorld = chunk.worldObj; + int dimensionId=aWorld.provider.dimensionId; + if (GT_Mod.gregtechproxy.mUndergroundOil.CheckBlackList(dimensionId)) return null; //Read hash map - HashMap<ChunkCoordIntPair, int[]> chunkData = dimensionWiseChunkData.get(aWorld.provider.dimensionId); + HashMap<ChunkCoordIntPair, int[]> chunkData = dimensionWiseChunkData.get(dimensionId); if(chunkData==null){ chunkData=new HashMap<>(1024); - dimensionWiseChunkData.put(aWorld.provider.dimensionId,chunkData); + dimensionWiseChunkData.put(dimensionId,chunkData); } int[] tInts = chunkData.get(chunk.getChunkCoordIntPair()); @@ -55,10 +57,12 @@ public class GT_UndergroundOil { } //GEN IT TO GET OBJECT... - final XSTR tRandom = new XSTR(aWorld.getSeed() + aWorld.provider.dimensionId * 2 + + final XSTR tRandom = new XSTR(aWorld.getSeed() + dimensionId * 2 + (chunk.getChunkCoordIntPair().chunkXPos>>3) + 8267 * (chunk.getChunkCoordIntPair().chunkZPos>>3)); - GT_UO_Fluid uoFluid = GT_Mod.gregtechproxy.mUndergroundOil.GetDimension(aWorld.provider.dimensionId).getRandomFluid(tRandom); + + GT_UO_Dimension dimension=GT_Mod.gregtechproxy.mUndergroundOil.GetDimension(dimensionId); + GT_UO_Fluid uoFluid = dimension.getRandomFluid(tRandom); //Fluid stack holder FluidStack fluidInChunk; diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_SeismicProspector.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_SeismicProspector.java index 7054e194f7..5d96f05afd 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_SeismicProspector.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_SeismicProspector.java @@ -51,11 +51,12 @@ public class GT_MetaTileEntity_SeismicProspector extends GT_MetaTileEntity_Basic public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { if (aBaseMetaTileEntity.isServerSide()) { ItemStack aStack = aPlayer.getCurrentEquippedItem(); + ItemData stackData= GT_OreDictUnificator.getItemData(aStack); if (!ready && (aStack != null) && ( (aStack.getItem() == Item.getItemFromBlock(Blocks.tnt) && aStack.stackSize > 1 ) || (aStack.getItem() == Ic2Items.industrialTnt.getItem() && aStack.stackSize > 0 ) || (aStack.getItem() == Ic2Items.dynamite.getItem() && aStack.stackSize > 3 ) || - (GT_OreDictUnificator.getItemData(aStack).mMaterial.mMaterial == Materials.Glyceryl && aStack.stackSize > 0 ) || + (stackData!=null && stackData.mMaterial.mMaterial == Materials.Glyceryl && aStack.stackSize > 0 ) || (aStack.getItem() == ItemList.Block_Powderbarrel.getItem() && aStack.getItemDamage()==ItemList.Block_Powderbarrel.get(1).getItemDamage() && aStack.stackSize > 7 ) ) ) { if ((!aPlayer.capabilities.isCreativeMode) && (aStack.stackSize != 111)) { |