diff --git a/src/main/java/com/sosnitzka/taiga/TAIGAConfiguration.java b/src/main/java/com/sosnitzka/taiga/TAIGAConfiguration.java
index 65d6abb..c8575ca 100644
--- a/src/main/java/com/sosnitzka/taiga/TAIGAConfiguration.java
+++ b/src/main/java/com/sosnitzka/taiga/TAIGAConfiguration.java
@@ -13,29 +13,28 @@ import java.util.ArrayList;
import java.util.List;
public class TAIGAConfiguration {
+
public static final String CATEGORY_NAME_GENERAL = "category_general";
public static final String CATEGORY_NAME_ORE_GEN = "category_ore_gen";
- public static double RESFAC_MIN_VALUE = 0;
- public static double RESFAC_MAX_VALUE = 9999;
+ public static boolean ironGen;
+ public static boolean endGen;
- public static int IRON_VAL = 20;
- public static int TIBERIUM_VAL = 15;
- public static int PROMETHEUM_VAL = 25;
- public static int VALYRIUM_VAL = 10;
- public static int OSRAM_VAL = 1;
- public static int DURANITE_VAL = 1;
- public static int BASALT_VAL = 10;
- public static int EEZO_VAL = 3;
- public static int KARMESINE_VAL = 15;
- public static int VIBRANIUM_VAL = 10;
- public static int URU_VAL = 1;
- public static int AURORIUM_VAL = 10;
- public static int PALLADIUM_VAL = 10;
- public static int ABYSSUM_VAL = 4;
+ public static int IRON_VAL;
+ public static int TIBERIUM_VAL;
+ public static int PROMETHEUM_VAL;
+ public static int VALYRIUM_VAL;
+ public static int OSRAM_VAL;
+ public static int DURANITE_VAL;
+ public static int BASALT_VAL;
+ public static int EEZO_VAL;
+ public static int KARMESINE_VAL;
+ public static int VIBRANIUM_VAL;
+ public static int URU_VAL;
+ public static int AURORIUM_VAL;
+ public static int PALLADIUM_VAL;
+ public static int ABYSSUM_VAL;
- public static boolean ironGen = false;
- public static boolean endGen = true;
private static Configuration config = null;
public static void preInit() {
@@ -70,17 +69,33 @@ public class TAIGAConfiguration {
config.load();
}
- /*
- * Declaration of general ore generation values:
- * Activation of additional ores (iron/gold)
- * Ore generation chance multiplier
- */
+ final int RESFAC_MIN_VALUE = 0;
+ final int RESFAC_MAX_VALUE = 100;
- Property ironSwitch = config.get(CATEGORY_NAME_GENERAL, "Extra Iron Switch", ironGen);
+ final int IRON_DEFAULT = 20;
+ final int TIBERIUM_DEFAULT = 15;
+ final int PROMETHEUM_DEFAULT = 25;
+ final int VALYRIUM_DEFAULT = 10;
+ final int OSRAM_DEFAULT = 1;
+ final int DURANITE_DEFAULT = 1;
+ final int BASALT_DEFAULT = 10;
+ final int EEZO_DEFAULT = 3;
+ final int KARMESINE_DEFAULT = 15;
+ final int VIBRANIUM_DEFAULT = 10;
+ final int URU_DEFAULT = 1;
+ final int AURORIUM_DEFAULT = 10;
+ final int PALLADIUM_DEFAULT = 10;
+ final int ABYSSUM_DEFAULT = 4;
+
+ final boolean FALSE = false;
+ final boolean TRUE = true;
+
+
+ Property ironSwitch = config.get(CATEGORY_NAME_GENERAL, "Extra Iron Switch", FALSE);
ironSwitch.setComment("Switch ore on/off");
ironSwitch.setLanguageKey("gui.taiga_configuration.gen_iron");
- Property endSwitch = config.get(CATEGORY_NAME_GENERAL, "Extra Endstone Switch", endGen);
+ Property endSwitch = config.get(CATEGORY_NAME_GENERAL, "Extra Endstone Switch", TRUE);
endSwitch.setComment("Switch extra End on/off");
endSwitch.setLanguageKey("gui.taiga_configuration.gen_end");
@@ -105,54 +120,133 @@ public class TAIGAConfiguration {
* Generation chance multiplier
*/
- Property ironValue = config.get(CATEGORY_NAME_ORE_GEN, "Iron", IRON_VAL, "value for generation", RESFAC_MIN_VALUE, RESFAC_MAX_VALUE);
- ironValue.setLanguageKey("gui.taiga_configuration.iron_multiplier");
- Property basaltValue = config.get(CATEGORY_NAME_ORE_GEN, "Basalt", BASALT_VAL, "value for generation", RESFAC_MIN_VALUE, RESFAC_MAX_VALUE);
- basaltValue.setLanguageKey("gui.taiga_configuration.basalt_multiplier");
- Property tiberiumValue = config.get(CATEGORY_NAME_ORE_GEN, "Tiberium", TIBERIUM_VAL, "value for generation", RESFAC_MIN_VALUE, RESFAC_MAX_VALUE);
- tiberiumValue.setLanguageKey("gui.taiga_configuration.tiberium_multiplier");
- Property auroriumValue = config.get(CATEGORY_NAME_ORE_GEN, "Aurorium", AURORIUM_VAL, "value for generation", RESFAC_MIN_VALUE, RESFAC_MAX_VALUE);
- auroriumValue.setLanguageKey("gui.taiga_configuration.aurorium_multiplier");
- Property prometheumValue = config.get(CATEGORY_NAME_ORE_GEN, "Prometheum", PROMETHEUM_VAL, "value for generation", RESFAC_MIN_VALUE, RESFAC_MAX_VALUE);
- prometheumValue.setLanguageKey("gui.taiga_configuration.prometheum_multiplier");
- Property duraniteValue = config.get(CATEGORY_NAME_ORE_GEN, "Duranite", DURANITE_VAL, "value for generation", RESFAC_MIN_VALUE, RESFAC_MAX_VALUE);
- duraniteValue.setLanguageKey("gui.taiga_configuration.duranite_multiplier");
- Property valyriumValue = config.get(CATEGORY_NAME_ORE_GEN, "Valyrium", VALYRIUM_VAL, "value for generation", RESFAC_MIN_VALUE, RESFAC_MAX_VALUE);
- valyriumValue.setLanguageKey("gui.taiga_configuration.valyrium_multiplier");
- Property vibraniumValue = config.get(CATEGORY_NAME_ORE_GEN, "Vibranium", VIBRANIUM_VAL, "value for generation", RESFAC_MIN_VALUE, RESFAC_MAX_VALUE);
- vibraniumValue.setLanguageKey("gui.taiga_configuration.vibranium_multiplier");
- Property karmesineValue = config.get(CATEGORY_NAME_ORE_GEN, "Karmesine", KARMESINE_VAL, "value for generation", RESFAC_MIN_VALUE, RESFAC_MAX_VALUE);
- karmesineValue.setLanguageKey("gui.taiga_configuration.karmesine_multiplier");
- Property palladiumValue = config.get(CATEGORY_NAME_ORE_GEN, "Palladium", PALLADIUM_VAL, "value for generation", RESFAC_MIN_VALUE, RESFAC_MAX_VALUE);
- palladiumValue.setLanguageKey("gui.taiga_configuration.palladium_multiplier");
- Property uruValue = config.get(CATEGORY_NAME_ORE_GEN, "Uru", URU_VAL, "value for generation", RESFAC_MIN_VALUE, RESFAC_MAX_VALUE);
- uruValue.setLanguageKey("gui.taiga_configuration.uru_multiplier");
- Property osramValue = config.get(CATEGORY_NAME_ORE_GEN, "Osram", OSRAM_VAL, "value for generation", RESFAC_MIN_VALUE, RESFAC_MAX_VALUE);
- osramValue.setLanguageKey("gui.taiga_configuration.osram_multiplier");
- Property abyssumValue = config.get(CATEGORY_NAME_ORE_GEN, "Abyssum", ABYSSUM_VAL, "value for generation", RESFAC_MIN_VALUE, RESFAC_MAX_VALUE);
- abyssumValue.setLanguageKey("gui.taiga_configuration.abyssum_multiplier");
- Property eezoValue = config.get(CATEGORY_NAME_ORE_GEN, "Eezo", EEZO_VAL, "value for generation", RESFAC_MIN_VALUE, RESFAC_MAX_VALUE);
- eezoValue.setLanguageKey("gui.taiga_configuration.eezo_multiplier");
+
+ Property ironValueProp = config.get(CATEGORY_NAME_ORE_GEN, "Iron", IRON_DEFAULT, "value for generation", RESFAC_MIN_VALUE, RESFAC_MAX_VALUE);
+ ironValueProp.setLanguageKey("gui.taiga_configuration.iron_multiplier");
+ Property basaltValueProp = config.get(CATEGORY_NAME_ORE_GEN, "Basalt", BASALT_DEFAULT, "value for generation", RESFAC_MIN_VALUE, RESFAC_MAX_VALUE);
+ basaltValueProp.setLanguageKey("gui.taiga_configuration.basalt_multiplier");
+ Property tiberiumValueProp = config.get(CATEGORY_NAME_ORE_GEN, "Tiberium", TIBERIUM_DEFAULT, "value for generation", RESFAC_MIN_VALUE, RESFAC_MAX_VALUE);
+ tiberiumValueProp.setLanguageKey("gui.taiga_configuration.tiberium_multiplier");
+ Property auroriumValueProp = config.get(CATEGORY_NAME_ORE_GEN, "Aurorium", AURORIUM_DEFAULT, "value for generation", RESFAC_MIN_VALUE, RESFAC_MAX_VALUE);
+ auroriumValueProp.setLanguageKey("gui.taiga_configuration.aurorium_multiplier");
+ Property prometheumValueProp = config.get(CATEGORY_NAME_ORE_GEN, "Prometheum", PROMETHEUM_DEFAULT, "value for generation", RESFAC_MIN_VALUE, RESFAC_MAX_VALUE);
+ prometheumValueProp.setLanguageKey("gui.taiga_configuration.prometheum_multiplier");
+ Property duraniteValueProp = config.get(CATEGORY_NAME_ORE_GEN, "Duranite", DURANITE_DEFAULT, "value for generation", RESFAC_MIN_VALUE, RESFAC_MAX_VALUE);
+ duraniteValueProp.setLanguageKey("gui.taiga_configuration.duranite_multiplier");
+ Property valyriumValueProp = config.get(CATEGORY_NAME_ORE_GEN, "Valyrium", VALYRIUM_DEFAULT, "value for generation", RESFAC_MIN_VALUE, RESFAC_MAX_VALUE);
+ valyriumValueProp.setLanguageKey("gui.taiga_configuration.valyrium_multiplier");
+ Property vibraniumValueProp = config.get(CATEGORY_NAME_ORE_GEN, "Vibranium", VIBRANIUM_DEFAULT, "value for generation", RESFAC_MIN_VALUE, RESFAC_MAX_VALUE);
+ vibraniumValueProp.setLanguageKey("gui.taiga_configuration.vibranium_multiplier");
+ Property karmesineValueProp = config.get(CATEGORY_NAME_ORE_GEN, "Karmesine", KARMESINE_DEFAULT, "value for generation", RESFAC_MIN_VALUE, RESFAC_MAX_VALUE);
+ karmesineValueProp.setLanguageKey("gui.taiga_configuration.karmesine_multiplier");
+ Property palladiumValueProp = config.get(CATEGORY_NAME_ORE_GEN, "Palladium", PALLADIUM_DEFAULT, "value for generation", RESFAC_MIN_VALUE, RESFAC_MAX_VALUE);
+ palladiumValueProp.setLanguageKey("gui.taiga_configuration.palladium_multiplier");
+ Property uruValueProp = config.get(CATEGORY_NAME_ORE_GEN, "Uru", URU_DEFAULT, "value for generation", RESFAC_MIN_VALUE, RESFAC_MAX_VALUE);
+ uruValueProp.setLanguageKey("gui.taiga_configuration.uru_multiplier");
+ Property osramValueProp = config.get(CATEGORY_NAME_ORE_GEN, "Osram", OSRAM_DEFAULT, "value for generation", RESFAC_MIN_VALUE, RESFAC_MAX_VALUE);
+ osramValueProp.setLanguageKey("gui.taiga_configuration.osram_multiplier");
+ Property abyssumValueProp = config.get(CATEGORY_NAME_ORE_GEN, "Abyssum", ABYSSUM_DEFAULT, "value for generation", RESFAC_MIN_VALUE, RESFAC_MAX_VALUE);
+ abyssumValueProp.setLanguageKey("gui.taiga_configuration.abyssum_multiplier");
+ Property eezoValueProp = config.get(CATEGORY_NAME_ORE_GEN, "Eezo", EEZO_DEFAULT, "value for generation", RESFAC_MIN_VALUE, RESFAC_MAX_VALUE);
+ eezoValueProp.setLanguageKey("gui.taiga_configuration.eezo_multiplier");
List propOrderOreGen = new ArrayList();
- propOrderOreGen.add(ironValue.getName());
- propOrderOreGen.add(basaltValue.getName());
- propOrderOreGen.add(tiberiumValue.getName());
- propOrderOreGen.add(auroriumValue.getName());
- propOrderOreGen.add(prometheumValue.getName());
- propOrderOreGen.add(duraniteValue.getName());
- propOrderOreGen.add(valyriumValue.getName());
- propOrderOreGen.add(vibraniumValue.getName());
- propOrderOreGen.add(karmesineValue.getName());
- propOrderOreGen.add(palladiumValue.getName());
- propOrderOreGen.add(uruValue.getName());
- propOrderOreGen.add(osramValue.getName());
- propOrderOreGen.add(abyssumValue.getName());
- propOrderOreGen.add(eezoValue.getName());
+ propOrderOreGen.add(ironValueProp.getName());
+ propOrderOreGen.add(basaltValueProp.getName());
+ propOrderOreGen.add(tiberiumValueProp.getName());
+ propOrderOreGen.add(auroriumValueProp.getName());
+ propOrderOreGen.add(prometheumValueProp.getName());
+ propOrderOreGen.add(duraniteValueProp.getName());
+ propOrderOreGen.add(valyriumValueProp.getName());
+ propOrderOreGen.add(vibraniumValueProp.getName());
+ propOrderOreGen.add(karmesineValueProp.getName());
+ propOrderOreGen.add(palladiumValueProp.getName());
+ propOrderOreGen.add(uruValueProp.getName());
+ propOrderOreGen.add(osramValueProp.getName());
+ propOrderOreGen.add(abyssumValueProp.getName());
+ propOrderOreGen.add(eezoValueProp.getName());
config.setCategoryPropertyOrder(CATEGORY_NAME_ORE_GEN, propOrderOreGen);
+ if (readFieldsFromConfig) {
+ ironGen = ironSwitch.getBoolean(FALSE);
+ endGen = endSwitch.getBoolean(TRUE);
+ IRON_VAL = ironValueProp.getInt(IRON_DEFAULT);
+ if (IRON_VAL > RESFAC_MAX_VALUE || IRON_VAL < RESFAC_MIN_VALUE) {
+ IRON_VAL = IRON_DEFAULT;
+ }
+ TIBERIUM_VAL = tiberiumValueProp.getInt(TIBERIUM_DEFAULT);
+ if (TIBERIUM_VAL > RESFAC_MAX_VALUE || TIBERIUM_VAL < RESFAC_MIN_VALUE) {
+ TIBERIUM_VAL = TIBERIUM_DEFAULT;
+ }
+ PROMETHEUM_VAL = prometheumValueProp.getInt(PROMETHEUM_DEFAULT);
+ if (PROMETHEUM_VAL > RESFAC_MAX_VALUE || PROMETHEUM_VAL < RESFAC_MIN_VALUE) {
+ PROMETHEUM_VAL = PROMETHEUM_DEFAULT;
+ }
+ VALYRIUM_VAL = valyriumValueProp.getInt(VALYRIUM_DEFAULT);
+ if (VALYRIUM_VAL > RESFAC_MAX_VALUE || VALYRIUM_VAL < RESFAC_MIN_VALUE) {
+ VALYRIUM_VAL = VALYRIUM_DEFAULT;
+ }
+ OSRAM_VAL = osramValueProp.getInt(OSRAM_DEFAULT);
+ if (OSRAM_VAL > RESFAC_MAX_VALUE || OSRAM_VAL < RESFAC_MIN_VALUE) {
+ OSRAM_VAL = OSRAM_DEFAULT;
+ }
+ DURANITE_VAL = duraniteValueProp.getInt(DURANITE_DEFAULT);
+ if (DURANITE_VAL > RESFAC_MAX_VALUE || DURANITE_VAL < RESFAC_MIN_VALUE) {
+ DURANITE_VAL = DURANITE_DEFAULT;
+ }
+ BASALT_VAL = basaltValueProp.getInt(BASALT_DEFAULT);
+ if (BASALT_VAL > RESFAC_MAX_VALUE || BASALT_VAL < RESFAC_MIN_VALUE) {
+ BASALT_VAL = BASALT_DEFAULT;
+ }
+ EEZO_VAL = eezoValueProp.getInt(EEZO_DEFAULT);
+ if (EEZO_VAL > RESFAC_MAX_VALUE || EEZO_VAL < RESFAC_MIN_VALUE) {
+ EEZO_VAL = EEZO_DEFAULT;
+ }
+ KARMESINE_VAL = karmesineValueProp.getInt(KARMESINE_DEFAULT);
+ if (KARMESINE_VAL > RESFAC_MAX_VALUE || KARMESINE_VAL < RESFAC_MIN_VALUE) {
+ KARMESINE_VAL = KARMESINE_DEFAULT;
+ }
+ VIBRANIUM_VAL = vibraniumValueProp.getInt(VIBRANIUM_DEFAULT);
+ if (VIBRANIUM_VAL > RESFAC_MAX_VALUE || VIBRANIUM_VAL < RESFAC_MIN_VALUE) {
+ VIBRANIUM_VAL = VIBRANIUM_DEFAULT;
+ }
+ URU_VAL = uruValueProp.getInt(URU_DEFAULT);
+ if (URU_VAL > RESFAC_MAX_VALUE || URU_VAL < RESFAC_MIN_VALUE) {
+ URU_VAL = URU_DEFAULT;
+ }
+ AURORIUM_VAL = auroriumValueProp.getInt(AURORIUM_DEFAULT);
+ if (AURORIUM_VAL > RESFAC_MAX_VALUE || AURORIUM_VAL < RESFAC_MIN_VALUE) {
+ AURORIUM_VAL = AURORIUM_DEFAULT;
+ }
+ PALLADIUM_VAL = palladiumValueProp.getInt(PALLADIUM_DEFAULT);
+ if (PALLADIUM_VAL > RESFAC_MAX_VALUE || PALLADIUM_VAL < RESFAC_MIN_VALUE) {
+ PALLADIUM_VAL = PALLADIUM_DEFAULT;
+ }
+ ABYSSUM_VAL = abyssumValueProp.getInt(ABYSSUM_DEFAULT);
+ if (ABYSSUM_VAL > RESFAC_MAX_VALUE || ABYSSUM_VAL < RESFAC_MIN_VALUE) {
+ ABYSSUM_VAL = ABYSSUM_DEFAULT;
+ }
+ }
+
+ ironSwitch.set(ironGen);
+ ironValueProp.set(IRON_VAL);
+ tiberiumValueProp.set(TIBERIUM_VAL);
+ prometheumValueProp.set(PROMETHEUM_VAL);
+ valyriumValueProp.set(VALYRIUM_VAL);
+ osramValueProp.set(OSRAM_VAL);
+ duraniteValueProp.set(DURANITE_VAL);
+ basaltValueProp.set(BASALT_VAL);
+ eezoValueProp.set(EEZO_VAL);
+ karmesineValueProp.set(KARMESINE_VAL);
+ vibraniumValueProp.set(VIBRANIUM_VAL);
+ uruValueProp.set(URU_VAL);
+ auroriumValueProp.set(AURORIUM_VAL);
+ palladiumValueProp.set(PALLADIUM_VAL);
+ abyssumValueProp.set(ABYSSUM_VAL);
+
+
if (config.hasChanged()) {
config.save();
}
diff --git a/src/main/java/com/sosnitzka/taiga/util/Generator.java b/src/main/java/com/sosnitzka/taiga/util/Generator.java
index 3e6a694..3b0a989 100644
--- a/src/main/java/com/sosnitzka/taiga/util/Generator.java
+++ b/src/main/java/com/sosnitzka/taiga/util/Generator.java
@@ -3,6 +3,7 @@ package com.sosnitzka.taiga.util;
import com.google.common.collect.Lists;
import com.sosnitzka.taiga.world.MeteorWorldSaveData;
import com.sosnitzka.taiga.world.WorldGenMinable;
+import net.minecraft.block.BlockStone;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.state.IBlockState;
import net.minecraft.init.Blocks;
@@ -23,14 +24,18 @@ import static com.sosnitzka.taiga.util.Utils.nextInt;
public class Generator {
- public static void generateOre(boolean center, IBlockState state, IBlockState replace, Random random, int x, int z, World world, int chance, int minY, int maxY, int minSize, int maxSize) {
- if (center) {
- generateOreDense(state, replace, random, x, z, world, chance, minY, maxY, minSize, maxSize, null);
- } else {
- generateOre(state, replace, null, null, random, x, z, world, chance, minY, maxY, minSize, maxSize, null);
- }
+ public static void generateOre(IBlockState state, IBlockState replace, Random random, int chunkX, int chunkZ, World world, int chance, int minY, int maxY, int minSize, int maxSize) {
+ if (replace == Blocks.IRON_ORE.getDefaultState()) System.out.println(" HIER ");
+ generateOre(state, replace, null, null, random, chunkX, chunkZ, world, chance, minY, maxY, minSize, maxSize, null);
}
+ public static void generateOre(IBlockState oldState, IBlockState newState, IProperty property, Comparable comparable, Random random, int chunkX, int chunkZ, World world, int chance, int minY, int maxY, int minSize, int maxSize) {
+ generateOre(oldState, newState, property, comparable, random, chunkX, chunkZ, world, chance, minY, maxY, minSize, maxSize, null);
+ }
+
+ public static void generateOre(IBlockState state, IBlockState replace, Random random, int chunkX, int chunkZ, World world, int chance, int minY, int maxY, int minSize, int maxSize, List biome) {
+ generateOre(state, replace, null, null, random, chunkX, chunkZ, world, chance, minY, maxY, minSize, maxSize, null);
+ }
public static void generateOre(IBlockState state, IBlockState replace, IProperty property, Comparable comparable, Random random, int chunkX, int chunkZ, World world, int chance, int minY, int maxY, int minSize, int maxSize, List biome) {
int size = minSize + random.nextInt(maxSize - minSize);
@@ -48,11 +53,11 @@ public class Generator {
public static void generateOreDescending(List replaceBlockList, IBlockState replacementBlock, Random random, int chunkX, int chunkZ, World world, int count, int minY, int maxY, int chance) {
if (random.nextFloat() < (float) (0.01 * chance))
- generateOreDescending(replaceBlockList, replacementBlock, random, chunkX, chunkZ, world, count, minY, maxY);
+ generateOreDescendingTopLayer(replaceBlockList, replacementBlock, random, chunkX, chunkZ, world, count, minY, maxY);
}
- public static void generateOreDescending(List replaceBlockList, IBlockState replacementBlock, Random random, int chunkX, int chunkZ, World world, int count, int minY, int maxY) {
+ public static void generateOreDescendingTopLayer(List replaceBlockList, IBlockState replacementBlock, Random random, int chunkX, int chunkZ, World world, int count, int minY, int maxY) {
for (int i = 0; i < count; i++) {
int posX = chunkX + random.nextInt(16);
int posZ = chunkZ + random.nextInt(16);
@@ -70,7 +75,28 @@ public class Generator {
}
}
- public static void generateOreBottom(IBlockState replacedBlock, IBlockState replacementBlock, Random random, int chunkX, int chunkZ, World world, int chance, int spread, int maxY) {
+ public static void generateOreDescending(IBlockState oldState, IBlockState newState, IProperty property, Comparable comparable, Random random, int chunkX, int chunkZ, World world, int count) {
+ for (int i = 0; i < count; i++) {
+ int posX = chunkX + random.nextInt(16);
+ int posZ = chunkZ + random.nextInt(16);
+ BlockPos cPos = new BlockPos(posX, random.nextInt(93) + 3, posZ);
+ IBlockState state = world.getBlockState(cPos);
+ if (oldState.getBlock().equals(state.getBlock()) && state.getBlock() instanceof BlockStone && comparable.equals(state.getValue(property))) {
+
+ world.setBlockState(cPos, newState);
+
+ continue;
+ }
+ while (!(state.getBlock() instanceof BlockStone) && !oldState.getBlock().equals(state.getBlock()) && !comparable.equals(state.getValue(property)) && cPos.getY() > 5) {
+ cPos = cPos.down();
+ }
+ if (state.getBlock() instanceof BlockStone && oldState.getBlock().equals(state.getBlock()) && comparable.equals(state.getValue(property))) {
+ world.setBlockState(cPos, newState);
+ }
+ }
+ }
+
+ public static void generateOreBottom(IBlockState oldState, IBlockState newState, Random random, int chunkX, int chunkZ, World world, int chance, int spread, int maxY) {
for (int i = 0; i < chance; i++) {
int posX = chunkX + random.nextInt(16);
int posY = 0;
@@ -80,8 +106,8 @@ public class Generator {
while (world.getBlockState(cPos).equals(Blocks.AIR.getDefaultState()) && cPos.getY() < maxY) {
cPos = cPos.up();
}
- if (world.getBlockState(cPos).equals(replacedBlock)) {
- world.setBlockState(cPos.up(random.nextInt(spread)), replacementBlock);
+ if (world.getBlockState(cPos).equals(oldState)) {
+ world.setBlockState(cPos.up(random.nextInt(spread)), newState);
}
}
}
@@ -188,27 +214,4 @@ public class Generator {
}
}
}
-
-
- public static void generateOreDense(IBlockState state, IBlockState replace, Random random, int chunkX, int chunkZ, World world, int chance, int minY, int maxY, int minSize, int maxSize, List biome) {
- int size = minSize + random.nextInt(maxSize - minSize);
- int height = maxY - minY;
- BlockPos cPos;
- for (int i = 0; i < chance; i += 5) {
- for (int j = 0; j <= 2; j++) {
- cPos = new BlockPos(chunkX + random.nextInt(16), minY + height * j / 5 + random.nextInt(height * 3 / 5), chunkZ + random.nextInt(16));
- if (biome == null || biome.contains(world.getBiome(cPos))) {
- new WorldGenMinable(state, size, StateMatcher.forState(replace, null, null)).generate(world, random, cPos);
- }
- }
- for (int j = 0; j <= 1; j++) {
- int x = chunkX + random.nextInt(16);
- int y = chunkZ + random.nextInt(16);
- cPos = new BlockPos(x, minY + height * 4 / 9 + random.nextInt(height / 9), y);
- if (biome == null || biome.contains(world.getBiome(cPos))) {
- new WorldGenMinable(state, size, StateMatcher.forState(replace, null, null)).generate(world, random, cPos);
- }
- }
- }
- }
}
diff --git a/src/main/java/com/sosnitzka/taiga/world/WorldGen.java b/src/main/java/com/sosnitzka/taiga/world/WorldGen.java
index a3c821a..60d6aad 100644
--- a/src/main/java/com/sosnitzka/taiga/world/WorldGen.java
+++ b/src/main/java/com/sosnitzka/taiga/world/WorldGen.java
@@ -19,35 +19,37 @@ import static com.sosnitzka.taiga.TAIGAConfiguration.*;
@SuppressWarnings("unchecked")
public class WorldGen implements IWorldGenerator {
private void nether(Random random, int x, int z, World world) {
-
- Generator.generateOre(false, Blocks.NETHERRACK.getDefaultState(), tiberiumOre.getDefaultState(), random, x, z, world, TIBERIUM_VAL, 0, 128, 10, 35);
- Generator.generateOre(true, Blocks.NETHERRACK.getDefaultState(), prometheumOre.getDefaultState(), random, x, z, world, PROMETHEUM_VAL, 0, 128, 2, 4);
- Generator.generateOre(true, Blocks.NETHERRACK.getDefaultState(), valyriumOre.getDefaultState(), random, x, z, world, VALYRIUM_VAL, 0, 32, 2, 4);
+ System.out.println("TIBERIUM_VAL: " + TIBERIUM_VAL);
+ System.out.println("PROMETHEUM_VAL: " + PROMETHEUM_VAL);
+ System.out.println("VALYRIUM_VAL: " + VALYRIUM_VAL);
+ System.out.println("OSRAM_VAL: " + OSRAM_VAL);
+ Generator.generateOre(Blocks.NETHERRACK.getDefaultState(), tiberiumOre.getDefaultState(), random, x, z, world, TIBERIUM_VAL, 0, 128, 10, 35);
+ Generator.generateOre(Blocks.NETHERRACK.getDefaultState(), prometheumOre.getDefaultState(), random, x, z, world, PROMETHEUM_VAL, 0, 128, 2, 4);
+ Generator.generateOre(Blocks.NETHERRACK.getDefaultState(), valyriumOre.getDefaultState(), random, x, z, world, VALYRIUM_VAL, 0, 32, 2, 4);
Generator.generateOreDescending(newArrayList(Blocks.LAVA.getDefaultState(), Blocks.FLOWING_LAVA.getDefaultState()), osramOre.getDefaultState(), random, x, z, world, OSRAM_VAL, 0, 64, 15);
}
private void world(Random random, int x, int z, World world) {
- // Optional
- if (ironGen)
- Generator.generateOre(false, Blocks.STONE.getDefaultState(), Blocks.IRON_ORE.getDefaultState(), random, x, z, world, IRON_VAL, 0, 128, 1, 8);
- System.out.println("IRON GEN: " + ironGen);
- System.out.println("Duranite ore Numer: " + DURANITE_VAL);
- Generator.generateMeteor(duraniteOre.getDefaultState(), blockMeteorite.getDefaultState(), random, x, z, world, DURANITE_VAL, 4, 16, 112);
- Generator.generateOreDescending(newArrayList(Blocks.LAVA.getDefaultState(), Blocks.FLOWING_LAVA.getDefaultState()), basaltBlock.getDefaultState(), random, x, z, world, BASALT_VAL, 0, 64);
- Generator.generateOreDescending(newArrayList(Blocks.BEDROCK.getDefaultState()), eezoOre.getDefaultState(), random, x, z, world, EEZO_VAL, 0, 10);
- Generator.generateOre(karmesineOre.getDefaultState(), Blocks.STONE.getDefaultState(), BlockStone.VARIANT, BlockStone.EnumType.DIORITE, random, x, z, world, KARMESINE_VAL, 0, 96, 3, 4, null);
- Generator.generateOre(karmesineOre.getDefaultState(), Blocks.STONE.getDefaultState(), BlockStone.VARIANT, BlockStone.EnumType.ANDESITE, random, x, z, world, KARMESINE_VAL, 0, 96, 3, 4, null);
- Generator.generateOre(karmesineOre.getDefaultState(), Blocks.STONE.getDefaultState(), BlockStone.VARIANT, BlockStone.EnumType.GRANITE, random, x, z, world, KARMESINE_VAL, 0, 96, 3, 4, null);
- Generator.generateOreDense(vibraniumOre.getDefaultState(), Blocks.STONE.getDefaultState(), random, x, z, world, VIBRANIUM_VAL, 0, 64, 2, 12, newArrayList(Biomes.DESERT_HILLS, Biomes.EXTREME_HILLS, Biomes.EXTREME_HILLS_EDGE, Biomes.EXTREME_HILLS_WITH_TREES, Biomes.DESERT));
+ Generator.generateMeteor(duraniteOre.getDefaultState(), blockMeteorite.getDefaultState(), random, x, z, world, DURANITE_VAL, 6, 16, 112);
+ Generator.generateOreDescendingTopLayer(newArrayList(Blocks.LAVA.getDefaultState(), Blocks.FLOWING_LAVA.getDefaultState()), basaltBlock.getDefaultState(), random, x, z, world, BASALT_VAL, 0, 64);
+ Generator.generateOreDescendingTopLayer(newArrayList(Blocks.BEDROCK.getDefaultState()), eezoOre.getDefaultState(), random, x, z, world, EEZO_VAL, 0, 10);
+
+ Generator.generateOreDescending(Blocks.STONE.getDefaultState(), karmesineOre.getDefaultState(), BlockStone.VARIANT, BlockStone.EnumType.DIORITE, random, x, z, world, KARMESINE_VAL);
+
+ Generator.generateOre(vibraniumOre.getDefaultState(), Blocks.STONE.getDefaultState(), random, x, z, world, VIBRANIUM_VAL, 0, 64, 2, 12, newArrayList(Biomes.DESERT_HILLS, Biomes.EXTREME_HILLS, Biomes.EXTREME_HILLS_EDGE, Biomes.EXTREME_HILLS_WITH_TREES, Biomes.DESERT));
+ Generator.generateOre(vibraniumOre.getDefaultState(), Blocks.STONE.getDefaultState(), random, x, z, world, 1, 0, 128, 1, 3, null);
+ if (ironGen) {
+ Generator.generateOre(Blocks.STONE.getDefaultState(), Blocks.IRON_ORE.getDefaultState(), random, x, z, world, IRON_VAL + 2000, 0, 32, 2, 8);
+ }
}
private void end(Random random, int x, int z, World world) {
Generator.generateCube(true, uruOre.getDefaultState(), blockObsidiorite.getDefaultState(), random, x, z, world, URU_VAL, 2, 0, 96, 3);
if (endGen)
Generator.generateOre(Blocks.END_STONE.getDefaultState(), Blocks.AIR.getDefaultState(), null, null, random, x, z, world, 1, 3, 64, 3, 8, null);
- Generator.generateOre(false, Blocks.END_STONE.getDefaultState(), auroriumOre.getDefaultState(), random, x, z, world, AURORIUM_VAL, 32, 48, 2, 4);
- Generator.generateOre(true, Blocks.END_STONE.getDefaultState(), palladiumOre.getDefaultState(), random, x, z, world, PALLADIUM_VAL, 48, 64, 2, 4);
+ Generator.generateOre(Blocks.END_STONE.getDefaultState(), auroriumOre.getDefaultState(), random, x, z, world, AURORIUM_VAL, 32, 48, 2, 4);
+ Generator.generateOre(Blocks.END_STONE.getDefaultState(), palladiumOre.getDefaultState(), random, x, z, world, PALLADIUM_VAL, 48, 64, 2, 4);
Generator.generateOreBottom(Blocks.END_STONE.getDefaultState(), abyssumOre.getDefaultState(), random, x, z, world, ABYSSUM_VAL, 4, 64);
}