From 4908d5967c3dfeff5616c65144e701859b9e30a2 Mon Sep 17 00:00:00 2001 From: boubou19 Date: Tue, 27 Aug 2024 20:50:30 +0200 Subject: Config/gregtech.cfg (#2939) * first pass on config migration * second pass on config migration * removing bad configs * rename config classes and register them * move debug options to its own debug category * migrate pollution * finish migrating general config * removing useless config * finish GregTech.cfg port to GTNHLib * don't accidentally force panic mode in dev env * typo * defaults are now handled by the confg handler * remove dead config * force config save after defaults are being written * stop messing with the GregTech.cfg externally * removing comments * new underground fluid builder and porting default underground fluids to code * move config handlers of gregtech.cfg in their own package * process MachineStats.cfg * yeeted MaterialProperties.cfg * remove unused compat in GTNH * process OverpoweredStuff.cfg * process Other.cfg * ungregify some config variables * remove unused variables * fix Ids.cfg not being populated * delete duplicate printing of MTE IDs in GT5U clients * bump hodgepodge version to get mod phase timers * process Client.cfg * fix bad category naming * registering all the config handlers in gui * bump GTNHLib version * actually only registering client configs * use proper double arrays now * move GT ore mixes to patternbuilders * dead code * fix multifiles config not being handled properly * import class from NHCore * removing reflection * use enums for registration * yeet config for Asteroid dimensions * remove unused since 2015 enum entry * todo * rework oremix enums * imported dimension data in enums * convert old dirty predicate into proper one * hook gagreg onto the OreMixes enum * finally nuke worldgen.ore.mix config category! * hook gagreg small ores onto the SmallOres enum * imported dim values in enum * fix dirty work around in vm predicate * yeet unused classes * hook GT stones to GTStones enum * yeet all the remaining booleans in the worldgen category * port endasteroids category * port general category * deprecated * yeet unused bw compat * finish worldgen config migration * hardcode config into code * remove not generated config entry * remove Unification.cfg * fix build * migrate oreveins away from config * migrate small ores away from config * delete config parser * forgotten * fix EoH recipe crash in dev * fix GT NEI Ore Plugin config and csv paths * shade opencsv * rewrite csv generator * spotless apply --- .../GT_Worldgen_GT_Ore_Layer_Space.java | 135 +- .../GT_Worldgen_GT_Ore_SmallPieces_Space.java | 73 +- .../galacticgreg/GT_Worldgenerator_Space.java | 61 +- .../java/bloodasp/galacticgreg/GalacticGreg.java | 22 - .../java/bloodasp/galacticgreg/ModRegisterer.java | 283 --- .../bloodasp/galacticgreg/SpaceDimRegisterer.java | 179 ++ .../java/bloodasp/galacticgreg/WorldGenGaGT.java | 75 +- src/main/java/bloodasp/galacticgreg/api/Enums.java | 6 - .../enums/DimensionBlockMetaDefinitionList.java | 57 + .../galacticgreg/api/enums/DimensionDef.java | 228 ++ .../galacticgreg/api/enums/ModContainers.java | 19 + .../enums/properties/AsteroidPropertyBuilder.java | 105 + .../api/enums/properties/Asteroids.java | 78 + .../bartworks/BW_Worldgen_Ore_Layer_Space.java | 253 --- .../bartworks/BW_Worldgen_Ore_SmallOre_Space.java | 165 -- .../dynconfig/DynamicDimensionConfig.java | 130 +- .../dynconfig/DynamicOreMixWorldConfig.java | 93 - .../registry/GalacticGregRegistry.java | 16 +- .../tileentities/multis/GT_TileEntity_DEHP.java | 5 +- .../system/oregen/BW_WorldGenRoss128b.java | 16 - .../system/oregen/BW_WorldGenRoss128ba.java | 39 - .../crossmod/galacticgreg/VoidMinerUtility.java | 42 +- .../crossmod/galacticraft/GalacticraftProxy.java | 13 - .../technus/tectech/recipe/EyeOfHarmonyRecipe.java | 96 +- src/main/java/gregtech/GT_Mod.java | 77 +- src/main/java/gregtech/api/GregTech_API.java | 23 +- .../java/gregtech/api/enums/ConfigCategories.java | 1 + src/main/java/gregtech/api/enums/Dimensions.java | 33 + src/main/java/gregtech/api/enums/GTStones.java | 398 ++++ .../gregtech/api/enums/ManualOreDictTweaks.java | 70 + src/main/java/gregtech/api/enums/Materials.java | 258 +-- src/main/java/gregtech/api/enums/Mods.java | 12 - src/main/java/gregtech/api/enums/OreMixes.java | 982 ++++++++ src/main/java/gregtech/api/enums/SmallOres.java | 555 +++++ .../gregtech/api/enums/UndergroundFluidNames.java | 43 + .../interfaces/metatileentity/IMetaTileEntity.java | 3 +- .../api/metatileentity/MetaPipeEntity.java | 3 +- .../api/metatileentity/MetaTileEntity.java | 3 +- .../implementations/GT_MetaPipeEntity_Cable.java | 10 - .../implementations/GT_MetaPipeEntity_Fluid.java | 5 +- .../GT_MetaTileEntity_MultiBlockBase.java | 21 +- .../GT_MetaTileEntity_Transformer.java | 3 +- .../gregtech/api/objects/GT_UO_DimensionList.java | 580 ++++- .../api/recipe/maps/LargeBoilerFuelBackend.java | 10 +- .../gregtech/api/util/GT_ClientPreference.java | 14 +- src/main/java/gregtech/api/util/GT_Config.java | 4 +- src/main/java/gregtech/api/world/GT_Worldgen.java | 74 +- .../java/gregtech/api/world/GT_Worldgen_Ore.java | 34 - .../api/world/GT_Worldgen_Ore_SingleBlock.java | 52 - .../GT_Worldgen_Ore_SingleBlock_UnderLava.java | 54 - .../java/gregtech/client/GT_GUI_ClientConfig.java | 66 +- src/main/java/gregtech/client/GT_GuiFactory.java | 20 +- src/main/java/gregtech/common/GT_Client.java | 23 +- src/main/java/gregtech/common/GT_Proxy.java | 237 +- .../gregtech/common/GT_Worldgen_GT_Ore_Layer.java | 71 +- .../common/GT_Worldgen_GT_Ore_SmallPieces.java | 64 +- .../java/gregtech/common/GT_Worldgen_Stone.java | 38 +- .../java/gregtech/common/GT_Worldgenerator.java | 34 +- src/main/java/gregtech/common/OreMixBuilder.java | 86 + src/main/java/gregtech/common/SmallOreBuilder.java | 60 + src/main/java/gregtech/common/StoneBuilder.java | 66 + .../config/client/ConfigColorModulation.java | 25 + .../common/config/client/ConfigInterface.java | 29 + .../common/config/client/ConfigPreference.java | 21 + .../common/config/client/ConfigRender.java | 46 + .../gregtech/common/config/client/ConfigWaila.java | 21 + .../common/config/gregtech/ConfigDebug.java | 79 + .../common/config/gregtech/ConfigFeatures.java | 34 + .../common/config/gregtech/ConfigGeneral.java | 254 +++ .../common/config/gregtech/ConfigHarvestLevel.java | 28 + .../common/config/gregtech/ConfigMachines.java | 147 ++ .../config/gregtech/ConfigOreDropBehavior.java | 24 + .../common/config/gregtech/ConfigPollution.java | 129 ++ .../machinestats/ConfigBronzeSolarBoiler.java | 32 + .../common/config/machinestats/ConfigMachines.java | 34 + .../config/machinestats/ConfigMassFabricator.java | 33 + .../ConfigMicrowaveEnergyTransmitter.java | 28 + .../machinestats/ConfigSteelSolarBoiler.java | 32 + .../config/machinestats/ConfigTeleporter.java | 28 + .../common/config/opstuff/ConfigGeneral.java | 48 + .../common/config/other/ConfigGeneral.java | 24 + .../common/config/worldgen/ConfigEndAsteroids.java | 33 + .../common/config/worldgen/ConfigGeneral.java | 48 + .../common/items/GT_MetaGenerated_Item_01.java | 4 +- .../common/items/GT_MetaGenerated_Tool_01.java | 66 +- .../items/behaviors/Behaviour_Spray_Color.java | 10 +- .../boilers/GT_MetaTileEntity_Boiler_Solar.java | 117 +- .../GT_MetaTileEntity_Boiler_Solar_Steel.java | 26 +- .../GT_MetaTileEntity_DieselGenerator.java | 7 +- .../generators/GT_MetaTileEntity_GasTurbine.java | 9 - .../GT_MetaTileEntity_MagicEnergyConverter.java | 7 +- .../GT_MetaTileEntity_MagicalEnergyAbsorber.java | 46 +- .../GT_MetaTileEntity_NaquadahReactor.java | 13 +- .../GT_MetaTileEntity_PlasmaGenerator.java | 15 +- .../generators/GT_MetaTileEntity_SteamTurbine.java | 13 +- .../basic/GT_MetaTileEntity_Massfabricator.java | 16 +- ..._MetaTileEntity_MicrowaveEnergyTransmitter.java | 15 +- .../basic/GT_MetaTileEntity_Teleporter.java | 13 +- .../multi/GT_MetaTileEntity_Cleanroom.java | 1 + .../load/GT_Loader_MetaTileEntities_Recipes.java | 17 +- .../gregtech/loaders/misc/GT_Achievements.java | 13 +- .../loaders/oreprocessing/ProcessingOre.java | 12 +- .../loaders/oreprocessing/ProcessingRawOre.java | 11 +- .../gregtech/loaders/postload/GT_PostLoad.java | 9 +- .../loaders/postload/GT_Worldgenloader.java | 2383 +------------------- .../postload/recipes/DistilleryRecipes.java | 11 - .../preload/GT_Loader_Item_Block_And_Fluid.java | 75 +- .../java/gregtech/loaders/preload/GT_PreLoad.java | 722 ++---- .../everglades/gen/gt/WorldGen_GT_Ore_Layer.java | 16 +- .../GT_MetaTileEntity_Hatch_Muffler_Adv.java | 5 +- .../GT_MetaTileEntity_TesseractGenerator.java | 3 +- .../GT_MetaTileEntity_TesseractTerminal.java | 3 +- .../GT_MetaTileEntity_SemiFluidGenerator.java | 11 - .../GregtechMetaTileEntityGeothermalGenerator.java | 13 +- .../GregtechMetaTileEntityRocketFuelGenerator.java | 15 +- .../GT_MetaTileEntity_ULV_CombustionGenerator.java | 59 - .../ULV/GT_MetaTileEntity_ULV_SteamTurbine.java | 42 - .../GregtechMetaTileEntity_MassFabricator.java | 17 +- .../java/pers/gwyog/gtneioreplugin/Config.java | 36 +- .../pers/gwyog/gtneioreplugin/GTNEIOrePlugin.java | 47 +- .../plugin/gregtech5/PluginGT5SmallOreStat.java | 4 +- .../plugin/gregtech5/PluginGT5VeinStat.java | 4 +- .../pers/gwyog/gtneioreplugin/util/CSVMaker.java | 209 +- .../gwyog/gtneioreplugin/util/DimensionHelper.java | 200 +- .../gwyog/gtneioreplugin/util/GT5CFGHelper.java | 225 -- .../gtneioreplugin/util/GT5OreLayerHelper.java | 79 +- .../gtneioreplugin/util/GT5OreSmallHelper.java | 176 +- .../pers/gwyog/gtneioreplugin/util/Oremix.java | 593 +---- .../pers/gwyog/gtneioreplugin/util/SmallOre.java | 82 + .../gwyog/gtneioreplugin/util/Veinrenamer.java | 23 - .../pers/gwyog/gtneioreplugin/util/XtoBool.java | 34 - 131 files changed, 6139 insertions(+), 6841 deletions(-) delete mode 100644 src/main/java/bloodasp/galacticgreg/ModRegisterer.java create mode 100644 src/main/java/bloodasp/galacticgreg/SpaceDimRegisterer.java create mode 100644 src/main/java/bloodasp/galacticgreg/api/enums/DimensionBlockMetaDefinitionList.java create mode 100644 src/main/java/bloodasp/galacticgreg/api/enums/DimensionDef.java create mode 100644 src/main/java/bloodasp/galacticgreg/api/enums/ModContainers.java create mode 100644 src/main/java/bloodasp/galacticgreg/api/enums/properties/AsteroidPropertyBuilder.java create mode 100644 src/main/java/bloodasp/galacticgreg/api/enums/properties/Asteroids.java delete mode 100644 src/main/java/bloodasp/galacticgreg/bartworks/BW_Worldgen_Ore_Layer_Space.java delete mode 100644 src/main/java/bloodasp/galacticgreg/bartworks/BW_Worldgen_Ore_SmallOre_Space.java delete mode 100644 src/main/java/bloodasp/galacticgreg/dynconfig/DynamicOreMixWorldConfig.java create mode 100644 src/main/java/gregtech/api/enums/Dimensions.java create mode 100644 src/main/java/gregtech/api/enums/GTStones.java create mode 100644 src/main/java/gregtech/api/enums/ManualOreDictTweaks.java create mode 100644 src/main/java/gregtech/api/enums/OreMixes.java create mode 100644 src/main/java/gregtech/api/enums/SmallOres.java create mode 100644 src/main/java/gregtech/api/enums/UndergroundFluidNames.java delete mode 100644 src/main/java/gregtech/api/world/GT_Worldgen_Ore.java delete mode 100644 src/main/java/gregtech/api/world/GT_Worldgen_Ore_SingleBlock.java delete mode 100644 src/main/java/gregtech/api/world/GT_Worldgen_Ore_SingleBlock_UnderLava.java create mode 100644 src/main/java/gregtech/common/OreMixBuilder.java create mode 100644 src/main/java/gregtech/common/SmallOreBuilder.java create mode 100644 src/main/java/gregtech/common/StoneBuilder.java create mode 100644 src/main/java/gregtech/common/config/client/ConfigColorModulation.java create mode 100644 src/main/java/gregtech/common/config/client/ConfigInterface.java create mode 100644 src/main/java/gregtech/common/config/client/ConfigPreference.java create mode 100644 src/main/java/gregtech/common/config/client/ConfigRender.java create mode 100644 src/main/java/gregtech/common/config/client/ConfigWaila.java create mode 100644 src/main/java/gregtech/common/config/gregtech/ConfigDebug.java create mode 100644 src/main/java/gregtech/common/config/gregtech/ConfigFeatures.java create mode 100644 src/main/java/gregtech/common/config/gregtech/ConfigGeneral.java create mode 100644 src/main/java/gregtech/common/config/gregtech/ConfigHarvestLevel.java create mode 100644 src/main/java/gregtech/common/config/gregtech/ConfigMachines.java create mode 100644 src/main/java/gregtech/common/config/gregtech/ConfigOreDropBehavior.java create mode 100644 src/main/java/gregtech/common/config/gregtech/ConfigPollution.java create mode 100644 src/main/java/gregtech/common/config/machinestats/ConfigBronzeSolarBoiler.java create mode 100644 src/main/java/gregtech/common/config/machinestats/ConfigMachines.java create mode 100644 src/main/java/gregtech/common/config/machinestats/ConfigMassFabricator.java create mode 100644 src/main/java/gregtech/common/config/machinestats/ConfigMicrowaveEnergyTransmitter.java create mode 100644 src/main/java/gregtech/common/config/machinestats/ConfigSteelSolarBoiler.java create mode 100644 src/main/java/gregtech/common/config/machinestats/ConfigTeleporter.java create mode 100644 src/main/java/gregtech/common/config/opstuff/ConfigGeneral.java create mode 100644 src/main/java/gregtech/common/config/other/ConfigGeneral.java create mode 100644 src/main/java/gregtech/common/config/worldgen/ConfigEndAsteroids.java create mode 100644 src/main/java/gregtech/common/config/worldgen/ConfigGeneral.java delete mode 100644 src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/ULV/GT_MetaTileEntity_ULV_CombustionGenerator.java delete mode 100644 src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/ULV/GT_MetaTileEntity_ULV_SteamTurbine.java delete mode 100644 src/main/java/pers/gwyog/gtneioreplugin/util/GT5CFGHelper.java create mode 100644 src/main/java/pers/gwyog/gtneioreplugin/util/SmallOre.java delete mode 100644 src/main/java/pers/gwyog/gtneioreplugin/util/Veinrenamer.java delete mode 100644 src/main/java/pers/gwyog/gtneioreplugin/util/XtoBool.java (limited to 'src/main/java') diff --git a/src/main/java/bloodasp/galacticgreg/GT_Worldgen_GT_Ore_Layer_Space.java b/src/main/java/bloodasp/galacticgreg/GT_Worldgen_GT_Ore_Layer_Space.java index fa994b939d..9dc8d2c070 100644 --- a/src/main/java/bloodasp/galacticgreg/GT_Worldgen_GT_Ore_Layer_Space.java +++ b/src/main/java/bloodasp/galacticgreg/GT_Worldgen_GT_Ore_Layer_Space.java @@ -13,15 +13,13 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraft.world.chunk.IChunkProvider; +import bloodasp.galacticgreg.api.ModContainer; import bloodasp.galacticgreg.api.ModDimensionDef; import bloodasp.galacticgreg.auxiliary.GTOreGroup; -import bloodasp.galacticgreg.bartworks.BW_Worldgen_Ore_Layer_Space; -import bloodasp.galacticgreg.dynconfig.DynamicOreMixWorldConfig; import bloodasp.galacticgreg.registry.GalacticGregRegistry; -import gregtech.api.GregTech_API; -import gregtech.api.enums.Materials; import gregtech.api.util.GT_Log; import gregtech.api.world.GT_Worldgen; +import gregtech.common.OreMixBuilder; public class GT_Worldgen_GT_Ore_Layer_Space extends GT_Worldgen { @@ -38,61 +36,40 @@ public class GT_Worldgen_GT_Ore_Layer_Space extends GT_Worldgen { private long mProfilingStart; private long mProfilingEnd; + private Map allowedDims; + + public GT_Worldgen_GT_Ore_Layer_Space(OreMixBuilder mix) { + super(mix.oreMixName, GalacticGreg.oreVeinWorldgenList, mix.enabledByDefault); + + mMinY = (short) mix.minY; + mMaxY = (short) Math.max(this.mMinY + 5, mix.maxY); + mWeight = (short) mix.weight; + mDensity = (short) mix.density; + mSize = (short) Math.max(1, mix.size); + mPrimaryMeta = (short) mix.primary.mMetaItemSubID; + mSecondaryMeta = (short) mix.secondary.mMetaItemSubID; + mBetweenMeta = (short) mix.between.mMetaItemSubID; + mSporadicMeta = (short) mix.sporadic.mMetaItemSubID; + + allowedDims = new HashMap<>(); + + for (ModContainer mc : GalacticGregRegistry.getModContainers()) { + if (!mc.getEnabled()) continue; + + for (ModDimensionDef mdd : mc.getDimensionList()) { + String tDimIdentifier = mdd.getDimIdentifier(); + if (allowedDims.containsKey(tDimIdentifier)) GalacticGreg.Logger.error( + "Found 2 Dimensions with the same Identifier: %s Dimension will not generate Ores", + tDimIdentifier); + else { + boolean tFlag = mix.dimsEnabled.getOrDefault(mdd.getDimensionName(), false); + allowedDims.put(tDimIdentifier, tFlag); + } + } + } - private DynamicOreMixWorldConfig _mDynWorldConfig; - - public GT_Worldgen_GT_Ore_Layer_Space(String pName, boolean pDefault, int pMinY, int pMaxY, int pWeight, - int pDensity, int pSize, Materials pPrimary, Materials pSecondary, Materials pBetween, Materials pSporadic) { - super(pName, GalacticGreg.oreVeinWorldgenList, pDefault); - mMinY = ((short) GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "MinHeight", pMinY)); - mMaxY = ((short) Math - .max(this.mMinY + 5, GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "MaxHeight", pMaxY))); - mWeight = ((short) GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "RandomWeight", pWeight)); - mDensity = ((short) GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "Density", pDensity)); - mSize = ((short) Math.max(1, GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "Size", pSize))); - mPrimaryMeta = ((short) GregTech_API.sWorldgenFile - .get("worldgen." + this.mWorldGenName, "OrePrimaryLayer", pPrimary.mMetaItemSubID)); - mSecondaryMeta = ((short) GregTech_API.sWorldgenFile - .get("worldgen." + this.mWorldGenName, "OreSecondaryLayer", pSecondary.mMetaItemSubID)); - mBetweenMeta = ((short) GregTech_API.sWorldgenFile - .get("worldgen." + this.mWorldGenName, "OreSporadiclyInbetween", pBetween.mMetaItemSubID)); - mSporadicMeta = ((short) GregTech_API.sWorldgenFile - .get("worldgen." + this.mWorldGenName, "OreSporaticlyAround", pSporadic.mMetaItemSubID)); - - _mDynWorldConfig = new DynamicOreMixWorldConfig(mWorldGenName); - _mDynWorldConfig.InitDynamicConfig(); - - GalacticGreg.Logger.trace("Initialized new OreLayer: %s", pName); - - if (mEnabled) GT_Worldgen_GT_Ore_Layer_Space.sWeight += this.mWeight; - - } - - public GT_Worldgen_GT_Ore_Layer_Space(String pName, boolean pDefault, int pMinY, int pMaxY, int pWeight, - int pDensity, int pSize, short pPrimary, short pSecondary, short pBetween, short pSporadic) { - super(pName, GalacticGreg.oreVeinWorldgenList, pDefault); - mMinY = ((short) GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "MinHeight", pMinY)); - mMaxY = ((short) Math - .max(this.mMinY + 5, GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "MaxHeight", pMaxY))); - mWeight = ((short) GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "RandomWeight", pWeight)); - mDensity = ((short) GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "Density", pDensity)); - mSize = ((short) Math.max(1, GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "Size", pSize))); - mPrimaryMeta = ((short) GregTech_API.sWorldgenFile - .get("worldgen." + this.mWorldGenName, "OrePrimaryLayer", pPrimary)); - mSecondaryMeta = ((short) GregTech_API.sWorldgenFile - .get("worldgen." + this.mWorldGenName, "OreSecondaryLayer", pSecondary)); - mBetweenMeta = ((short) GregTech_API.sWorldgenFile - .get("worldgen." + this.mWorldGenName, "OreSporadiclyInbetween", pBetween)); - mSporadicMeta = ((short) GregTech_API.sWorldgenFile - .get("worldgen." + this.mWorldGenName, "OreSporaticlyAround", pSporadic)); - - _mDynWorldConfig = new DynamicOreMixWorldConfig(mWorldGenName); - _mDynWorldConfig.InitDynamicConfig(); - - GalacticGreg.Logger.trace("Initialized new OreLayer: %s", pName); - + GalacticGreg.Logger.trace("Initialized new OreLayer: %s", mix.oreMixName); if (mEnabled) sWeight += this.mWeight; - } /** @@ -102,31 +79,7 @@ public class GT_Worldgen_GT_Ore_Layer_Space extends GT_Worldgen { * @return */ public boolean isEnabledForDim(ModDimensionDef pDimensionDef) { - return _mDynWorldConfig.isEnabledInDim(pDimensionDef); - } - - private static Map _mBufferedVeinCountList = new HashMap<>(); - - /** - * Get the number of enabled OreMixes for given Dimension. This query is buffered and will only consume calculation - * time on the first run for each dimension - * - * @param pDimensionDef - * @return - */ - private static int getNumOremixedForDim(ModDimensionDef pDimensionDef) { - int tVal = 0; - if (_mBufferedVeinCountList.containsKey(pDimensionDef.getDimIdentifier())) - tVal = _mBufferedVeinCountList.get(pDimensionDef.getDimIdentifier()); - else { - for (GT_Worldgen tWorldGen : GalacticGreg.oreVeinWorldgenList) - if (tWorldGen instanceof GT_Worldgen_GT_Ore_Layer_Space - && ((GT_Worldgen_GT_Ore_Layer_Space) tWorldGen).isEnabledForDim(pDimensionDef)) tVal++; - - _mBufferedVeinCountList.put(pDimensionDef.getDimIdentifier(), tVal); - } - - return tVal; + return allowedDims.getOrDefault(pDimensionDef.getDimIdentifier(), false); } private static Map> _mBufferedVeinList = new HashMap<>(); @@ -148,9 +101,6 @@ public class GT_Worldgen_GT_Ore_Layer_Space extends GT_Worldgen { if (tWorldGen instanceof GT_Worldgen_GT_Ore_Layer_Space && ((GT_Worldgen_GT_Ore_Layer_Space) tWorldGen).isEnabledForDim(pDimensionDef)) tReturn.add(tWorldGen.mWorldGenName); - else if (tWorldGen instanceof BW_Worldgen_Ore_Layer_Space - && ((BW_Worldgen_Ore_Layer_Space) tWorldGen).isEnabledForDim(pDimensionDef)) - tReturn.add(tWorldGen.mWorldGenName); _mBufferedVeinList.put(pDimensionDef.getDimIdentifier(), tReturn); } @@ -158,17 +108,6 @@ public class GT_Worldgen_GT_Ore_Layer_Space extends GT_Worldgen { return tReturn; } - private static short getMaxWeightForDim(ModDimensionDef pDimensionDef) { - short tVal = 0; - for (GT_Worldgen tWorldGen : GalacticGreg.oreVeinWorldgenList) - if (tWorldGen instanceof GT_Worldgen_GT_Ore_Layer_Space - && ((GT_Worldgen_GT_Ore_Layer_Space) tWorldGen).isEnabledForDim(pDimensionDef) - && tVal < ((GT_Worldgen_GT_Ore_Layer_Space) tWorldGen).mWeight) - tVal = ((GT_Worldgen_GT_Ore_Layer_Space) tWorldGen).mWeight; - - return tVal; - } - /** * Select a random ore-vein from the list * @@ -182,8 +121,6 @@ public class GT_Worldgen_GT_Ore_Layer_Space extends GT_Worldgen { short betweenMeta = 0; short sporadicMeta = 0; - // int tRangeSplit = getMaxWeightForDim(pDimensionDef) / 2; - if (pIgnoreWeight) { List tEnabledVeins = getOreMixIDsForDim(pDimensionDef); int tRnd = pRandom.nextInt(tEnabledVeins.size()); @@ -249,7 +186,7 @@ public class GT_Worldgen_GT_Ore_Layer_Space extends GT_Worldgen { return false; } - if (!_mDynWorldConfig.isEnabledInDim(tMDD)) { + if (!isEnabledForDim(tMDD)) { GalacticGreg.Logger .trace("OreGen for %s is disallowed in dimension %s, skipping", mWorldGenName, tMDD.getDimensionName()); return false; diff --git a/src/main/java/bloodasp/galacticgreg/GT_Worldgen_GT_Ore_SmallPieces_Space.java b/src/main/java/bloodasp/galacticgreg/GT_Worldgen_GT_Ore_SmallPieces_Space.java index 11e264b4fb..f5def8e0fd 100644 --- a/src/main/java/bloodasp/galacticgreg/GT_Worldgen_GT_Ore_SmallPieces_Space.java +++ b/src/main/java/bloodasp/galacticgreg/GT_Worldgen_GT_Ore_SmallPieces_Space.java @@ -1,16 +1,17 @@ package bloodasp.galacticgreg; +import java.util.HashMap; +import java.util.Map; import java.util.Random; import net.minecraft.world.World; import net.minecraft.world.chunk.IChunkProvider; +import bloodasp.galacticgreg.api.ModContainer; import bloodasp.galacticgreg.api.ModDimensionDef; -import bloodasp.galacticgreg.dynconfig.DynamicOreMixWorldConfig; import bloodasp.galacticgreg.registry.GalacticGregRegistry; -import gregtech.api.GregTech_API; -import gregtech.api.enums.Materials; import gregtech.api.world.GT_Worldgen; +import gregtech.common.SmallOreBuilder; public class GT_Worldgen_GT_Ore_SmallPieces_Space extends GT_Worldgen { @@ -21,51 +22,43 @@ public class GT_Worldgen_GT_Ore_SmallPieces_Space extends GT_Worldgen { private long mProfilingStart; private long mProfilingEnd; - private DynamicOreMixWorldConfig _mDynWorldConfig; - - public GT_Worldgen_GT_Ore_SmallPieces_Space(String pName, boolean pDefault, int pMinY, int pMaxY, int pAmount, - Materials pPrimary) { - super(pName, GalacticGreg.smallOreWorldgenList, pDefault); - - mMinY = ((short) GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "MinHeight", pMinY)); - mMaxY = ((short) Math - .max(this.mMinY + 1, GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "MaxHeight", pMaxY))); - mAmount = ((short) Math - .max(1, GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "Amount", pAmount))); - mMeta = ((short) GregTech_API.sWorldgenFile - .get("worldgen." + this.mWorldGenName, "Ore", pPrimary.mMetaItemSubID)); - - _mDynWorldConfig = new DynamicOreMixWorldConfig(mWorldGenName); - _mDynWorldConfig.InitDynamicConfig(); - - GalacticGreg.Logger.trace("Initialized new OreLayer: %s", pName); - } - - public GT_Worldgen_GT_Ore_SmallPieces_Space(String pName, boolean pDefault, int pMinY, int pMaxY, int pAmount, - short pPrimary) { - super(pName, GalacticGreg.smallOreWorldgenList, pDefault); - - mMinY = ((short) GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "MinHeight", pMinY)); - mMaxY = ((short) Math - .max(this.mMinY + 1, GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "MaxHeight", pMaxY))); - mAmount = ((short) Math - .max(1, GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "Amount", pAmount))); - mMeta = ((short) GregTech_API.sWorldgenFile.get("worldgen." + this.mWorldGenName, "Ore", pPrimary)); - - _mDynWorldConfig = new DynamicOreMixWorldConfig(mWorldGenName); - _mDynWorldConfig.InitDynamicConfig(); + private Map allowedDims; + + public GT_Worldgen_GT_Ore_SmallPieces_Space(SmallOreBuilder ore) { + super(ore.smallOreName, GalacticGreg.smallOreWorldgenList, ore.enabledByDefault); + + mMinY = (short) ore.minY; + mMaxY = (short) Math.max(this.mMinY + 1, ore.maxY); + mAmount = (short) Math.max(1, ore.amount); + mMeta = (short) ore.ore.mMetaItemSubID; + + allowedDims = new HashMap<>(); + for (ModContainer mc : GalacticGregRegistry.getModContainers()) { + if (!mc.getEnabled()) continue; + + for (ModDimensionDef mdd : mc.getDimensionList()) { + String tDimIdentifier = mdd.getDimIdentifier(); + if (allowedDims.containsKey(tDimIdentifier)) GalacticGreg.Logger.error( + "Found 2 Dimensions with the same Identifier: %s Dimension will not generate Ores", + tDimIdentifier); + else { + boolean tFlag = ore.dimsEnabled.getOrDefault(mdd.getDimensionName(), false); + allowedDims.put(tDimIdentifier, tFlag); + } + } + } - GalacticGreg.Logger.trace("Initialized new OreLayer: %s", pName); + GalacticGreg.Logger.trace("Initialized new OreLayer: %s", ore.smallOreName); } /** * Check if *this* orelayer is enabled for pDimensionDef - * + * * @param pDimensionDef the ChunkProvider in question * @return */ public boolean isEnabledForDim(ModDimensionDef pDimensionDef) { - return _mDynWorldConfig.isEnabledInDim(pDimensionDef); + return allowedDims.getOrDefault(pDimensionDef.getDimIdentifier(), false); } @Override @@ -79,7 +72,7 @@ public class GT_Worldgen_GT_Ore_SmallPieces_Space extends GT_Worldgen { return false; } - if (!_mDynWorldConfig.isEnabledInDim(tMDD)) { + if (!isEnabledForDim(tMDD)) { GalacticGreg.Logger .trace("OreGen for %s is disallowed in dimension %s, skipping", mWorldGenName, tMDD.getDimensionName()); return false; diff --git a/src/main/java/bloodasp/galacticgreg/GT_Worldgenerator_Space.java b/src/main/java/bloodasp/galacticgreg/GT_Worldgenerator_Space.java index d2060ca71e..e76bc9bbcc 100644 --- a/src/main/java/bloodasp/galacticgreg/GT_Worldgenerator_Space.java +++ b/src/main/java/bloodasp/galacticgreg/GT_Worldgenerator_Space.java @@ -23,8 +23,6 @@ import bloodasp.galacticgreg.api.ModDimensionDef; import bloodasp.galacticgreg.api.SpecialBlockComb; import bloodasp.galacticgreg.api.StructureInformation; import bloodasp.galacticgreg.auxiliary.GTOreGroup; -import bloodasp.galacticgreg.bartworks.BW_Worldgen_Ore_Layer_Space; -import bloodasp.galacticgreg.bartworks.BW_Worldgen_Ore_SmallOre_Space; import bloodasp.galacticgreg.dynconfig.DynamicDimensionConfig; import bloodasp.galacticgreg.dynconfig.DynamicDimensionConfig.AsteroidConfig; import bloodasp.galacticgreg.registry.GalacticGregRegistry; @@ -450,48 +448,38 @@ public class GT_Worldgenerator_Space implements IWorldGenerator { int tRandomWeight; boolean continueSearch = true; int tFoundOreMeta = -1; - BW_Worldgen_Ore_SmallOre_Space bwOreGen = null; // First find a small ore... for (int i = 0; (i < 256) && (continueSearch); i++) { tRandomWeight = pRandom.nextInt(GT_Worldgen_GT_Ore_Layer_Space.sWeight); for (GT_Worldgen tWorldGen : GalacticGreg.smallOreWorldgenList) { - if (tWorldGen instanceof BW_Worldgen_Ore_SmallOre_Space) { - tRandomWeight = ((BW_Worldgen_Ore_SmallOre_Space) tWorldGen).mDensity; - if (tRandomWeight <= 0) { - tFoundOreMeta = ((BW_Worldgen_Ore_SmallOre_Space) tWorldGen).mPrimaryMeta; - continueSearch = false; - bwOreGen = ((BW_Worldgen_Ore_SmallOre_Space) tWorldGen); - } - } else if (tWorldGen instanceof GT_Worldgen_GT_Ore_SmallPieces_Space) { - // That is enabled for *this* dim... - if (!((GT_Worldgen_GT_Ore_SmallPieces_Space) tWorldGen).isEnabledForDim(pDimDef)) continue; - - // And in the correct y-level, of ObeyLimits is true... - if (pAConf.ObeyHeightLimits - && !((GT_Worldgen_GT_Ore_SmallPieces_Space) tWorldGen).isAllowedForHeight(pY)) continue; - - // Care about weight - tRandomWeight -= ((GT_Worldgen_GT_Ore_SmallPieces_Space) tWorldGen).mAmount; - if (tRandomWeight <= 0) { - // And return found ore meta - tFoundOreMeta = ((GT_Worldgen_GT_Ore_SmallPieces_Space) tWorldGen).mMeta; - continueSearch = false; - } + + if (!(tWorldGen instanceof GT_Worldgen_GT_Ore_SmallPieces_Space)) { + continue; + } + // That is enabled for *this* dim... + if (!((GT_Worldgen_GT_Ore_SmallPieces_Space) tWorldGen).isEnabledForDim(pDimDef)) continue; + + // And in the correct y-level, of ObeyLimits is true... + if (pAConf.ObeyHeightLimits + && !((GT_Worldgen_GT_Ore_SmallPieces_Space) tWorldGen).isAllowedForHeight(pY)) continue; + + // Care about weight + tRandomWeight -= ((GT_Worldgen_GT_Ore_SmallPieces_Space) tWorldGen).mAmount; + if (tRandomWeight <= 0) { + // And return found ore meta + tFoundOreMeta = ((GT_Worldgen_GT_Ore_SmallPieces_Space) tWorldGen).mMeta; + continueSearch = false; } } } if (tFoundOreMeta > -1) { - if (bwOreGen == null) { - // Make the oreID a small ore with correct type - int tCustomOffset = (GTOreTypes.SmallOres.getOffset() + pTargetBlockOffset); + // Make the oreID a small ore with correct type + int tCustomOffset = (GTOreTypes.SmallOres.getOffset() + pTargetBlockOffset); - // Set the smallOre block - GT_TileEntity_Ores_Space - .setOuterSpaceOreBlock(pDimDef, pWorld, pX, pY, pZ, tFoundOreMeta, true, tCustomOffset); - tFlag = false; - } else { - bwOreGen.setOreBlock(pWorld, pX, pY, pZ, tFoundOreMeta, true); - } + // Set the smallOre block + GT_TileEntity_Ores_Space + .setOuterSpaceOreBlock(pDimDef, pWorld, pX, pY, pZ, tFoundOreMeta, true, tCustomOffset); + tFlag = false; } } } @@ -524,8 +512,7 @@ public class GT_Worldgenerator_Space implements IWorldGenerator { for (GT_Worldgen tWorldGen : GalacticGreg.oreVeinWorldgenList) { if (tWorldGen instanceof GT_Worldgen_GT_Ore_Layer_Space) tRandomWeight -= ((GT_Worldgen_GT_Ore_Layer_Space) tWorldGen).mWeight; - else if (tWorldGen instanceof BW_Worldgen_Ore_Layer_Space) - tRandomWeight -= ((BW_Worldgen_Ore_Layer_Space) tWorldGen).mWeight; + if (tRandomWeight <= 0) { try { if (tWorldGen.executeWorldgen( diff --git a/src/main/java/bloodasp/galacticgreg/GalacticGreg.java b/src/main/java/bloodasp/galacticgreg/GalacticGreg.java index 760564c741..2e566dca1d 100644 --- a/src/main/java/bloodasp/galacticgreg/GalacticGreg.java +++ b/src/main/java/bloodasp/galacticgreg/GalacticGreg.java @@ -9,8 +9,6 @@ import java.util.Random; import bloodasp.galacticgreg.auxiliary.GalacticGregConfig; import bloodasp.galacticgreg.auxiliary.LogHelper; import bloodasp.galacticgreg.auxiliary.ProfilingStorage; -import bloodasp.galacticgreg.bartworks.BW_Worldgen_Ore_Layer_Space; -import bloodasp.galacticgreg.bartworks.BW_Worldgen_Ore_SmallOre_Space; import bloodasp.galacticgreg.command.AEStorageCommand; import bloodasp.galacticgreg.command.ProfilingCommand; import bloodasp.galacticgreg.registry.GalacticGregRegistry; @@ -21,7 +19,6 @@ import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.event.FMLServerStartingEvent; import gregtech.GT_Version; -import gregtech.api.GregTech_API; import gregtech.api.world.GT_Worldgen; @Mod( @@ -84,25 +81,6 @@ public class GalacticGreg { if (!GalacticGregRegistry.InitRegistry()) throw new RuntimeException( "GalacticGreg registry has been finalized from a 3rd-party mod, this is forbidden!"); - // new WorldGenGaGT().run(); DO NOT UNCOMMENT, was moved to gregtech.loaders.postload.GT_Worldgenloader - - for (int f = 0, - j = GregTech_API.sWorldgenFile.get("worldgen.GaGregBartworks", "AmountOfCustomLargeVeinSlots", 0); f - < j; f++) { - new BW_Worldgen_Ore_Layer_Space( - "mix.custom." + (f < 10 ? "0" : "") + f, - GregTech_API.sWorldgenFile - .get("worldgen.GaGregBartworks." + "mix.custom." + (f < 10 ? "0" : "") + f, "Enabled", false)); - } - - for (int f = 0, j = GregTech_API.sWorldgenFile.get("worldgen.GaGregBartworks", "AmountOfCustomSmallSlots", 0); f - < j; f++) { - new BW_Worldgen_Ore_SmallOre_Space( - "small.custom." + (f < 10 ? "0" : "") + f, - GregTech_API.sWorldgenFile - .get("worldgen.GaGregBartworks." + "small.custom." + (f < 10 ? "0" : "") + f, "Enabled", false)); - } - for (Runnable r : ADDITIONALVEINREGISTER) { try { r.run(); diff --git a/src/main/java/bloodasp/galacticgreg/ModRegisterer.java b/src/main/java/bloodasp/galacticgreg/ModRegisterer.java deleted file mode 100644 index 889cee0ca6..0000000000 --- a/src/main/java/bloodasp/galacticgreg/ModRegisterer.java +++ /dev/null @@ -1,283 +0,0 @@ -package bloodasp.galacticgreg; - -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.init.Blocks; -import net.minecraft.world.gen.ChunkProviderEnd; - -import bloodasp.galacticgreg.api.AsteroidBlockComb; -import bloodasp.galacticgreg.api.Enums; -import bloodasp.galacticgreg.api.Enums.AllowedBlockPosition; -import bloodasp.galacticgreg.api.Enums.DimensionType; -import bloodasp.galacticgreg.api.GTOreTypes; -import bloodasp.galacticgreg.api.ModContainer; -import bloodasp.galacticgreg.api.ModDBMDef; -import bloodasp.galacticgreg.api.ModDimensionDef; -import bloodasp.galacticgreg.api.SpecialBlockComb; - -/** - * In this class, you'll find everything you need in order to tell GGreg what to do and where. Everything is done in - * here. If you're trying to use anything else, you're probably doing something wrong (Or I forgot to add it. In that - * case, find me on github and create an issue please) - */ -public class ModRegisterer { - - /** - * Just a helper to convert a single element to a list - * - * @param pDef - * @return - */ - private static List singleToList(ModDBMDef pDef) { - List tLst = new ArrayList<>(); - tLst.add(pDef); - return tLst; - } - - private static Method registerModContainer; - - /** - * Use loose binding of the register-method. Should be enough to provide support for GGreg without the requirement - * to have it in a modpack at all - * - * @param pModContainer - */ - public static void registerModContainer(ModContainer pModContainer) { - /* - * try { registerModContainer.invoke(null, pModContainer); } catch (Exception e) { e.printStackTrace(); } - */ - } - - /** - * Try to get the instance of GalacticGregs registry in order to register stuff - * - * @return - */ - public boolean Init() { - return false; - /* - * try { Class gGregRegistry = Class.forName("bloodasp.galacticgreg.registry.GalacticGregRegistry"); - * registerModContainer = gGregRegistry.getMethod("registerModContainer", ModContainer.class); return true; } - * catch (Exception e) { // GalacticGreg is not installed or something is wrong return false; } - */ - } - - public void Register() { - /* - * if (GalacticGreg.GalacticConfig.RegisterVanillaDim) registerModContainer(Setup_Vanilla()); if - * (GalacticGreg.GalacticConfig.RegisterGalacticCraftCore) registerModContainer(Setup_GalactiCraftCore()); if - * (GalacticGreg.GalacticConfig.RegisterGalacticCraftPlanets) registerModContainer(Setup_GalactiCraftPlanets()); - * if (GalacticGreg.GalacticConfig.RegisterGalaxySpace) registerModContainer(Setup_GalaxySpace()); - */ - } - - /** - * Vanilla MC (End Asteroids) - */ - private ModContainer Setup_Vanilla() { - // --- Mod Vanilla (Heh, "mod") - ModContainer modMCVanilla = new ModContainer("Vanilla"); - - // If you happen to have an asteroid dim, just skip the blocklist, and setDimensionType() to - // DimensionType.Asteroid - // also don't forget to add at least one asteroid type, or nothing will generate! - ModDimensionDef dimEndAsteroids = new ModDimensionDef( - "EndAsteroids", - ChunkProviderEnd.class, - DimensionType.Asteroid); - - dimEndAsteroids.addAsteroidMaterial(new AsteroidBlockComb(GTOreTypes.Netherrack)); - dimEndAsteroids.addAsteroidMaterial(new AsteroidBlockComb(GTOreTypes.RedGranite)); - dimEndAsteroids.addAsteroidMaterial(new AsteroidBlockComb(GTOreTypes.BlackGranite)); - dimEndAsteroids.addAsteroidMaterial(new AsteroidBlockComb(GTOreTypes.EndStone)); - - // These Blocks will randomly be generated - dimEndAsteroids.addSpecialAsteroidBlock(new SpecialBlockComb(Blocks.glowstone)); - dimEndAsteroids.addSpecialAsteroidBlock(new SpecialBlockComb(Blocks.lava, AllowedBlockPosition.AsteroidCore)); - - modMCVanilla.addDimensionDef(dimEndAsteroids); - - return modMCVanilla; - } - - /** - * Mod GalactiCraft Just another setup based on existing classes, due the fact that we're working with GalactiCraft - */ - public static ModContainer Setup_GalactiCraftCore() { - ModContainer modGCraftCore = new ModContainer("GalacticraftCore"); - ModDBMDef DBMMoon = new ModDBMDef("tile.moonBlock", 4); - - ModDimensionDef tMoonDim = new ModDimensionDef( - "Moon", - "micdoodle8.mods.galacticraft.core.world.gen.ChunkProviderMoon", - Enums.DimensionType.Planet, - singleToList(DBMMoon)); - modGCraftCore.addDimensionDef(tMoonDim); - - return modGCraftCore; - } - - /** - * As GalactiCraftPlanets is an optional mod, don't hardlink it here - * - * @return - */ - private ModContainer Setup_GalactiCraftPlanets() { - ModContainer modGCraftPlanets = new ModContainer("GalacticraftMars"); - ModDBMDef DBMMars = new ModDBMDef("tile.mars", 9); - ModDimensionDef dimMars = new ModDimensionDef( - "Mars", - "micdoodle8.mods.galacticraft.planets.mars.world.gen.ChunkProviderMars", - DimensionType.Planet, - singleToList(DBMMars)); - - // Overwrite ore blocks on mars with red granite ones. This will default to regular stone if not set - dimMars.setStoneType(GTOreTypes.RedGranite); - modGCraftPlanets.addDimensionDef(dimMars); - - ModDimensionDef dimAsteroids = new ModDimensionDef( - "Asteroids", - "micdoodle8.mods.galacticraft.planets.asteroids.world.gen.ChunkProviderAsteroids", - DimensionType.Asteroid); - dimAsteroids.addAsteroidMaterial(new AsteroidBlockComb(GTOreTypes.BlackGranite)); - dimAsteroids.addAsteroidMaterial(new AsteroidBlockComb(GTOreTypes.RedGranite)); - dimAsteroids.addAsteroidMaterial(new AsteroidBlockComb(GTOreTypes.Netherrack)); - modGCraftPlanets.addDimensionDef(dimAsteroids); - - return modGCraftPlanets; - } - - /** - * Mod GalaxySpace by BlesseNtumble - */ - private ModContainer Setup_GalaxySpace() { - // First, we create a mod-container that will be populated with dimensions later. - // The Name must match your modID, as it is checked if this mod is loaded, in order - // to enable/disable the parsing/registering of dimensions - ModContainer modCGalaxySpace = new ModContainer("GalaxySpace"); - - // Now lets first define a block here for our dimension. You can add the modID, but you don't have to. - // It will automatically add the mods name that is defined in the modcontainer. - ModDBMDef DBMPhobos = new ModDBMDef("phobosstone"); - ModDBMDef DBMDeimos = new ModDBMDef("deimossubgrunt"); - ModDBMDef DBMCeres = new ModDBMDef("ceressubgrunt"); - ModDBMDef DBMIO = new ModDBMDef("iorock", 4); // This meta-4 is a copy&paste bug in GSpace and might not work in - // further versions - ModDBMDef DBMGanymede = new ModDBMDef("ganymedesubgrunt"); - ModDBMDef DBMCallisto = new ModDBMDef("callistosubice"); - ModDBMDef DBMVenus = new ModDBMDef("venussubgrunt"); - ModDBMDef DBMMercury = new ModDBMDef("mercurycore"); - ModDBMDef DBMEnceladus = new ModDBMDef("enceladusrock"); - ModDBMDef DBMTitan = new ModDBMDef("titanstone"); - ModDBMDef DBMOberon = new ModDBMDef("oberonstone"); - ModDBMDef DBMProteus = new ModDBMDef("proteusstone"); - ModDBMDef DBMTriton = new ModDBMDef("tritonstone"); - ModDBMDef DBMPluto = new ModDBMDef("plutostone"); - - // Now define the available dimensions, and their chunkprovider. - // Same as above, to not have any dependency in your code, you can just give it a string. - // But it's better to use the actual ChunkProvider class. The Name is used for the GalacticGreg config file. - // The resulting config setting will be: __false = false - // make sure to never change this name once you've generated your config files, as it will overwrite everything! - - // 25.10.2015 GSpace v2.5 - modCGalaxySpace.addDimensionDef( - new ModDimensionDef( - "Pluto", - "blessentumble.planets.SolarSystem.pluto.dimension.ChunkProviderPluto", - DimensionType.Planet, - singleToList(DBMPluto))); - modCGalaxySpace.addDimensionDef( - new ModDimensionDef( - "Triton", - "blessentumble.moons.triton.dimension.ChunkProviderTriton", - DimensionType.Planet, - singleToList(DBMTriton))); - modCGalaxySpace.addDimensionDef( - new ModDimensionDef( - "Proteus", - "blessentumble.moons.proteus.dimension.ChunkProviderProteus", - DimensionType.Planet, - singleToList(DBMProteus))); - modCGalaxySpace.addDimensionDef( - new ModDimensionDef( - "Oberon", - "blessentumble.moons.oberon.dimension.ChunkProviderOberon", - DimensionType.Planet, - singleToList(DBMOberon))); - modCGalaxySpace.addDimensionDef( - new ModDimensionDef( - "Titan", - "blessentumble.moons.titan.dimension.ChunkProviderTitan", - DimensionType.Planet, - singleToList(DBMTitan))); - modCGalaxySpace.addDimensionDef( - new ModDimensionDef( - "Callisto", - "blessentumble.moons.SolarSystem.callisto.dimension.ChunkProviderCallisto", - DimensionType.Planet, - singleToList(DBMCallisto))); - modCGalaxySpace.addDimensionDef( - new ModDimensionDef( - "Ganymede", - "blessentumble.moons.ganymede.dimension.ChunkProviderGanymede", - DimensionType.Planet, - singleToList(DBMGanymede))); - modCGalaxySpace.addDimensionDef( - new ModDimensionDef( - "Ceres", - "blessentumble.planets.SolarSystem.ceres.dimension.ChunkProviderCeres", - DimensionType.Planet, - singleToList(DBMCeres))); - modCGalaxySpace.addDimensionDef( - new ModDimensionDef( - "Deimos", - "blessentumble.moons.SolarSystem.deimos.dimension.ChunkProviderDeimos", - DimensionType.Planet, - singleToList(DBMDeimos))); - modCGalaxySpace.addDimensionDef( - new ModDimensionDef( - "Enceladus", - "blessentumble.moons.SolarSystem.enceladus.dimension.ChunkProviderEnceladus", - DimensionType.Planet, - singleToList(DBMEnceladus))); - modCGalaxySpace.addDimensionDef( - new ModDimensionDef( - "Io", - "blessentumble.moons.io.dimension.ChunkProviderIo", - DimensionType.Planet, - singleToList(DBMIO))); - modCGalaxySpace.addDimensionDef( - new ModDimensionDef( - "Phobos", - "blessentumble.moons.phobos.dimension.ChunkProviderPhobos", - DimensionType.Planet, - singleToList(DBMPhobos))); - modCGalaxySpace.addDimensionDef( - new ModDimensionDef( - "Venus", - "blessentumble.planets.SolarSystem.venus.dimension.ChunkProviderVenus", - DimensionType.Planet, - singleToList(DBMVenus))); - modCGalaxySpace.addDimensionDef( - new ModDimensionDef( - "Mercury", - "blessentumble.planets.SolarSystem.mercury.dimension.ChunkProviderMercury", - DimensionType.Planet, - singleToList(DBMMercury))); - - // GSpace 2.2-Beta: Kupierbelt - ModDimensionDef dimKupierBelt = new ModDimensionDef( - "Kuiperbelt", - "blessentumble.planets.SolarSystem.kuiperbelt.dimension.ChunkProviderKuiper", - DimensionType.Asteroid); - dimKupierBelt.setDimensionType(DimensionType.Asteroid); - dimKupierBelt.addAsteroidMaterial(new AsteroidBlockComb(GTOreTypes.RedGranite)); - dimKupierBelt.addAsteroidMaterial(new AsteroidBlockComb(GTOreTypes.BlackGranite)); - modCGalaxySpace.addDimensionDef(dimKupierBelt); - - return modCGalaxySpace; - } -} diff --git a/src/main/java/bloodasp/galacticgreg/SpaceDimRegisterer.java b/src/main/java/bloodasp/galacticgreg/SpaceDimRegisterer.java new file mode 100644 index 0000000000..360d7f1bda --- /dev/null +++ b/src/main/java/bloodasp/galacticgreg/SpaceDimRegisterer.java @@ -0,0 +1,179 @@ +package bloodasp.galacticgreg; + +import static bloodasp.galacticgreg.api.enums.DimensionDef.Anubis; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Asteroids; +import static bloodasp.galacticgreg.api.enums.DimensionDef.BarnardC; +import static bloodasp.galacticgreg.api.enums.DimensionDef.BarnardE; +import static bloodasp.galacticgreg.api.enums.DimensionDef.BarnardF; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Callisto; +import static bloodasp.galacticgreg.api.enums.DimensionDef.CentauriAlpha; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Ceres; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Deimos; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Enceladus; +import static bloodasp.galacticgreg.api.enums.DimensionDef.EndAsteroids; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Europa; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Ganymede; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Haumea; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Horus; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Io; +import static bloodasp.galacticgreg.api.enums.DimensionDef.KuiperBelt; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Maahes; +import static bloodasp.galacticgreg.api.enums.DimensionDef.MakeMake; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Mars; +import static bloodasp.galacticgreg.api.enums.DimensionDef.MehenBelt; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Mercury; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Miranda; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Moon; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Neper; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Oberon; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Phobos; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Pluto; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Proteus; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Seth; +import static bloodasp.galacticgreg.api.enums.DimensionDef.TcetiE; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Titan; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Triton; +import static bloodasp.galacticgreg.api.enums.DimensionDef.VegaB; +import static bloodasp.galacticgreg.api.enums.DimensionDef.Venus; +import static bloodasp.galacticgreg.api.enums.ModContainers.AmunRa; +import static bloodasp.galacticgreg.api.enums.ModContainers.GalactiCraftCore; +import static bloodasp.galacticgreg.api.enums.ModContainers.GalacticraftMars; +import static bloodasp.galacticgreg.api.enums.ModContainers.GalaxySpace; +import static bloodasp.galacticgreg.api.enums.ModContainers.Vanilla; + +import net.minecraft.init.Blocks; + +import bloodasp.galacticgreg.api.AsteroidBlockComb; +import bloodasp.galacticgreg.api.Enums; +import bloodasp.galacticgreg.api.GTOreTypes; +import bloodasp.galacticgreg.api.ModContainer; +import bloodasp.galacticgreg.api.SpecialBlockComb; +import bloodasp.galacticgreg.registry.GalacticGregRegistry; + +/** + * In this class, you'll find everything you need in order to tell GGreg what to do and where. Everything is done in + * here. If you're trying to use anything else, you're probably doing something wrong (Or I forgot to add it. In that + * case, find me on github and create an issue please) + */ +public class SpaceDimRegisterer { + + public static void register() { + GalacticGregRegistry.registerModContainer(setupVanilla()); + GalacticGregRegistry.registerModContainer(setupGalactiCraftCore()); + GalacticGregRegistry.registerModContainer(setupGalactiCraftPlanets()); + GalacticGregRegistry.registerModContainer(setupGalaxySpace()); + GalacticGregRegistry.registerModContainer(setupAmunRa()); + } + + /** + * Vanilla MC (End Asteroids) + */ + private static ModContainer setupVanilla() { + + // If you happen to have an asteroid dim, just skip the blocklist, and setDimensionType() to + // DimensionType.Asteroid + // also don't forget to add at least one asteroid type, or nothing will generate! + EndAsteroids.modDimensionDef.addAsteroidMaterial(new AsteroidBlockComb(GTOreTypes.Netherrack)); + EndAsteroids.modDimensionDef.addAsteroidMaterial(new AsteroidBlockComb(GTOreTypes.RedGranite)); + EndAsteroids.modDimensionDef.addAsteroidMaterial(new AsteroidBlockComb(GTOreTypes.BlackGranite)); + EndAsteroids.modDimensionDef.addAsteroidMaterial(new AsteroidBlockComb(GTOreTypes.EndStone)); + + // These Blocks will randomly be generated + EndAsteroids.modDimensionDef.addSpecialAsteroidBlock(new SpecialBlockComb(Blocks.glowstone)); + EndAsteroids.modDimensionDef + .addSpecialAsteroidBlock(new SpecialBlockComb(Blocks.lava, Enums.AllowedBlockPosition.AsteroidCore)); + + Vanilla.modContainer.addDimensionDef(EndAsteroids.modDimensionDef); + + return Vanilla.modContainer; + } + + /** + * Mod GalactiCraft + */ + private static ModContainer setupGalactiCraftCore() { + GalactiCraftCore.modContainer.addDimensionDef(Moon.modDimensionDef); + return GalactiCraftCore.modContainer; + } + + /** + * As GalactiCraftPlanets is an optional mod, don't hardlink it here + */ + private static ModContainer setupGalactiCraftPlanets() { + // Overwrite ore blocks on mars with red granite ones. This will default to regular stone if not set + Mars.modDimensionDef.setStoneType(GTOreTypes.RedGranite); + GalacticraftMars.modContainer.addDimensionDef(Mars.modDimensionDef); + + Asteroids.modDimensionDef.addAsteroidMaterial(new AsteroidBlockComb(GTOreTypes.BlackGranite)); + Asteroids.modDimensionDef.addAsteroidMaterial(new AsteroidBlockComb(GTOreTypes.RedGranite)); + Asteroids.modDimensionDef.addAsteroidMaterial(new AsteroidBlockComb(GTOreTypes.Netherrack)); + GalacticraftMars.modContainer.addDimensionDef(Asteroids.modDimensionDef); + + return GalacticraftMars.modContainer; + } + + /** + * Mod GalaxySpace by BlesseNtumble + */ + private static ModContainer setupGalaxySpace() { + // First, we create a mod-container that will be populated with dimensions later. + // The Name must match your ID, as it is checked if this mod is loaded, in order + // to enable/disable the parsing/registering of dimensions + // See enum ModContainers + + // Now lets first define a block here for our dimension. You can add the ID, but you don't have to. + // It will automatically add the mods name that is defined in the modcontainer. + // See enum DimensionBlockMetaDefinitionList + + // Now define the available dimensions, and their chunkprovider. + // Same as above, to not have any dependency in your code, you can just give it a string. + // But it's better to use the actual ChunkProvider class. The Name is used for the GalacticGreg config file. + // The resulting config setting will be: __false = false + // make sure to never change this name once you've generated your config files, as it will overwrite everything! + + // 30.11.2016 GSpace v1.1.3 Stable + GalaxySpace.modContainer.addDimensionDef(Pluto.modDimensionDef); + GalaxySpace.modContainer.addDimensionDef(Triton.modDimensionDef); + GalaxySpace.modContainer.addDimensionDef(Proteus.modDimensionDef); + GalaxySpace.modContainer.addDimensionDef(Oberon.modDimensionDef); + GalaxySpace.modContainer.addDimensionDef(Titan.modDimensionDef); + GalaxySpace.modContainer.addDimensionDef(Callisto.modDimensionDef); + GalaxySpace.modContainer.addDimensionDef(Ganymede.modDimensionDef); + GalaxySpace.modContainer.addDimensionDef(Ceres.modDimensionDef); + GalaxySpace.modContainer.addDimensionDef(Deimos.modDimensionDef); + GalaxySpace.modContainer.addDimensionDef(Enceladus.modDimensionDef); + GalaxySpace.modContainer.addDimensionDef(Io.modDimensionDef); + GalaxySpace.modContainer.addDimensionDef(Europa.modDimensionDef); + GalaxySpace.modContainer.addDimensionDef(Phobos.modDimensionDef); + GalaxySpace.modContainer.addDimensionDef(Venus.modDimensionDef); + GalaxySpace.modContainer.addDimensionDef(Mercury.modDimensionDef); + GalaxySpace.modContainer.addDimensionDef(MakeMake.modDimensionDef); + GalaxySpace.modContainer.addDimensionDef(Haumea.modDimensionDef); + GalaxySpace.modContainer.addDimensionDef(CentauriAlpha.modDimensionDef); + GalaxySpace.modContainer.addDimensionDef(VegaB.modDimensionDef); + GalaxySpace.modContainer.addDimensionDef(BarnardC.modDimensionDef); + GalaxySpace.modContainer.addDimensionDef(BarnardE.modDimensionDef); + GalaxySpace.modContainer.addDimensionDef(BarnardF.modDimensionDef); + GalaxySpace.modContainer.addDimensionDef(TcetiE.modDimensionDef); + GalaxySpace.modContainer.addDimensionDef(Miranda.modDimensionDef); + KuiperBelt.modDimensionDef.setDimensionType(Enums.DimensionType.Asteroid); + KuiperBelt.modDimensionDef.addAsteroidMaterial(new AsteroidBlockComb(GTOreTypes.RedGranite)); + KuiperBelt.modDimensionDef.addAsteroidMaterial(new AsteroidBlockComb(GTOreTypes.BlackGranite)); + GalaxySpace.modContainer.addDimensionDef(KuiperBelt.modDimensionDef); + return GalaxySpace.modContainer; + } + + /** + * Mod Amun-Ra + */ + private static ModContainer setupAmunRa() { + AmunRa.modContainer.addDimensionDef(Neper.modDimensionDef); + AmunRa.modContainer.addDimensionDef(Maahes.modDimensionDef); + AmunRa.modContainer.addDimensionDef(Anubis.modDimensionDef); + AmunRa.modContainer.addDimensionDef(Horus.modDimensionDef); + AmunRa.modContainer.addDimensionDef(Seth.modDimensionDef); + MehenBelt.modDimensionDef.addAsteroidMaterial(GTOreTypes.BlackGranite); + AmunRa.modContainer.addDimensionDef(MehenBelt.modDimensionDef); + return AmunRa.modContainer; + } +} diff --git a/src/main/java/bloodasp/galacticgreg/WorldGenGaGT.java b/src/main/java/bloodasp/galacticgreg/WorldGenGaGT.java index 90f51ec7e1..f5577c9295 100644 --- a/src/main/java/bloodasp/galacticgreg/WorldGenGaGT.java +++ b/src/main/java/bloodasp/galacticgreg/WorldGenGaGT.java @@ -1,7 +1,7 @@ package bloodasp.galacticgreg; -import gregtech.common.GT_Worldgen_GT_Ore_Layer; -import gregtech.common.GT_Worldgen_GT_Ore_SmallPieces; +import gregtech.api.enums.OreMixes; +import gregtech.api.enums.SmallOres; public class WorldGenGaGT implements Runnable { @@ -9,81 +9,20 @@ public class WorldGenGaGT implements Runnable { public void run() { new GT_Worldgenerator_Space(); - /* - * new GT_Worldgen_GT_Ore_SmallPieces_Space("ore.small.copper", true, 60, 120, 32, Materials.Copper); new - * GT_Worldgen_GT_Ore_SmallPieces_Space("ore.small.tin", true, 60, 120, 32, Materials.Tin); new - * GT_Worldgen_GT_Ore_SmallPieces_Space("ore.small.bismuth", true, 80, 120, 8, Materials.Bismuth); new - * GT_Worldgen_GT_Ore_SmallPieces_Space("ore.small.coal", true, 60, 100, 24, Materials.Coal); new - * GT_Worldgen_GT_Ore_SmallPieces_Space("ore.small.iron", true, 40, 80, 16, Materials.Iron); new - * GT_Worldgen_GT_Ore_SmallPieces_Space("ore.small.lead", true, 40, 80, 16, Materials.Lead); new - * GT_Worldgen_GT_Ore_SmallPieces_Space("ore.small.zinc", true, 30, 60, 12, Materials.Zinc); new - * GT_Worldgen_GT_Ore_SmallPieces_Space("ore.small.gold", true, 20, 40, 8, Materials.Gold); new - * GT_Worldgen_GT_Ore_SmallPieces_Space("ore.small.silver", true, 20, 40, 8, Materials.Silver); new - * GT_Worldgen_GT_Ore_SmallPieces_Space("ore.small.nickel", true, 20, 40, 8, Materials.Nickel); new - * GT_Worldgen_GT_Ore_SmallPieces_Space("ore.small.lapis", true, 20, 40, 4, Materials.Lapis); new - * GT_Worldgen_GT_Ore_SmallPieces_Space("ore.small.diamond", true, 5, 10, 2, Materials.Diamond); new - * GT_Worldgen_GT_Ore_SmallPieces_Space("ore.small.redstone", true, 5, 20, 8, Materials.Redstone); new - * GT_Worldgen_GT_Ore_SmallPieces_Space("ore.small.platinum", true, 20, 40, 8, Materials.Platinum); new - * GT_Worldgen_GT_Ore_SmallPieces_Space("ore.small.iridium", true, 20, 40, 8, Materials.Iridium); new - * GT_Worldgen_GT_Ore_SmallPieces_Space("ore.small.netherquartz", true, 30, 120, 64, Materials.NetherQuartz); - * new GT_Worldgen_GT_Ore_SmallPieces_Space("ore.small.saltpeter", true, 10, 60, 8, Materials.Saltpeter); new - * GT_Worldgen_GT_Ore_SmallPieces_Space("ore.small.sulfur_n", true, 10, 60, 32, Materials.Sulfur); new - * GT_Worldgen_GT_Ore_SmallPieces_Space("ore.smal