From ee05dd5cb57870785d88568e7b8365f5d8e08cbe Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Fri, 11 Mar 2016 11:21:14 +0000 Subject: [PATCH] Initial draft on new ore config file --- src/main/java/techreborn/Core.java | 6 ++ src/main/java/techreborn/world/OreConfig.java | 39 ++++++++++++ .../techreborn/world/TechRebornWorldGen.java | 61 +++++++++++++++++++ .../java/techreborn/world/WorldGenConfig.java | 15 +++++ 4 files changed, 121 insertions(+) create mode 100644 src/main/java/techreborn/world/OreConfig.java create mode 100644 src/main/java/techreborn/world/TechRebornWorldGen.java create mode 100644 src/main/java/techreborn/world/WorldGenConfig.java diff --git a/src/main/java/techreborn/Core.java b/src/main/java/techreborn/Core.java index 16fcafa26..67516f74e 100644 --- a/src/main/java/techreborn/Core.java +++ b/src/main/java/techreborn/Core.java @@ -41,6 +41,7 @@ import techreborn.packets.PacketIdsu; import techreborn.proxies.CommonProxy; import techreborn.tiles.idsu.IDSUManager; import techreborn.world.TROreGen; +import techreborn.world.TechRebornWorldGen; import techreborn.world.TreeGenerator; @Mod(modid = ModInfo.MOD_ID, name = ModInfo.MOD_NAME, version = ModInfo.MOD_VERSION, dependencies = ModInfo.MOD_DEPENDENCUIES, guiFactory = ModInfo.GUI_FACTORY_CLASS, acceptedMinecraftVersions = "[1.8.8,1.8.9]") @@ -60,6 +61,8 @@ public class Core { private static RecipeCompact recipeCompact; private static File configDir; + public static TechRebornWorldGen worldGen; + @Mod.EventHandler public void preinit(FMLPreInitializationEvent event) { event.getModMetadata().version = ModInfo.MOD_VERSION; @@ -71,6 +74,8 @@ public class Core { config = ConfigTechReborn.initialize(new File(path)); configDir = event.getModConfigurationDirectory(); + worldGen = new TechRebornWorldGen(); + worldGen.configFile = (new File(event.getModConfigurationDirectory(), "techrebornOres.json")); recipeCompact = new RecipeCompact(); TechRebornAPI.recipeCompact = recipeCompact; @@ -111,6 +116,7 @@ public class Core { // Client only init, needs to be done before parts system proxy.init(); // WorldGen + worldGen.load(); GameRegistry.registerWorldGenerator(new TROreGen(), 0); GameRegistry.registerWorldGenerator(new TreeGenerator(), 0); // DungeonLoot.init(); diff --git a/src/main/java/techreborn/world/OreConfig.java b/src/main/java/techreborn/world/OreConfig.java new file mode 100644 index 000000000..045b922f9 --- /dev/null +++ b/src/main/java/techreborn/world/OreConfig.java @@ -0,0 +1,39 @@ +package techreborn.world; + +import net.minecraft.block.state.IBlockState; + +/** + * Created by modmuss50 on 11/03/2016. + */ +public class OreConfig { + + public String blockName; + + public String unloclisedName; + + public String blockSate; + + public int meta; + + public String c = "↓↓↓↓CHANGE ME↓↓↓↓"; + + public int veinSize; + + public int veinsPerChunk; + + public int minYHeight; + + public int maxYHeight; + + + public OreConfig(IBlockState blockSate, int veinSize, int veinsPerChunk, int minYHeight, int maxYHeight) { + this.blockName = blockSate.getBlock().getLocalizedName(); + this.meta = blockSate.getBlock().getMetaFromState(blockSate); + this.unloclisedName = blockSate.getBlock().getUnlocalizedName(); + this.blockSate = blockSate.toString(); + this.veinSize = veinSize; + this.veinsPerChunk = veinsPerChunk; + this.minYHeight = minYHeight; + this.maxYHeight = maxYHeight; + } +} diff --git a/src/main/java/techreborn/world/TechRebornWorldGen.java b/src/main/java/techreborn/world/TechRebornWorldGen.java new file mode 100644 index 000000000..cfa457602 --- /dev/null +++ b/src/main/java/techreborn/world/TechRebornWorldGen.java @@ -0,0 +1,61 @@ +package techreborn.world; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import net.minecraft.world.World; +import net.minecraft.world.chunk.IChunkProvider; +import net.minecraftforge.fml.common.IWorldGenerator; +import techreborn.config.ConfigTechReborn; +import techreborn.init.ModBlocks; + +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Random; + +/** + * Created by modmuss50 on 11/03/2016. + */ +public class TechRebornWorldGen implements IWorldGenerator { + + WorldGenConfig config; + public File configFile; + + public void load(){ + if(config == null){ + if(configFile.exists()){ + + } else { + addOres(); + save(); + } + } + } + + private void save(){ + Gson gson = new GsonBuilder().setPrettyPrinting().create(); + String json = gson.toJson(config); + try { + FileWriter writer = new FileWriter(configFile); + writer.write(json); + writer.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + private void addOres(){ + config = new WorldGenConfig(); + config.overworldOres = new ArrayList<>(); + config.endOres = new ArrayList<>(); + config.neatherOres = new ArrayList<>(); + + config.overworldOres.add(new OreConfig(ModBlocks.ore.getBlockStateFromName("Galena"), 8, 16, 10, 60)); + } + + @Override + public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) { + + } +} diff --git a/src/main/java/techreborn/world/WorldGenConfig.java b/src/main/java/techreborn/world/WorldGenConfig.java new file mode 100644 index 000000000..30cde8b9d --- /dev/null +++ b/src/main/java/techreborn/world/WorldGenConfig.java @@ -0,0 +1,15 @@ +package techreborn.world; + +import java.util.List; + +/** + * Created by modmuss50 on 11/03/2016. + */ +public class WorldGenConfig { + + public List overworldOres; + + public List neatherOres; + + public List endOres; +}