From 851eaabb16c528e5538d512e96364da77ec325d0 Mon Sep 17 00:00:00 2001 From: Robert Sosnitzka Date: Thu, 15 Dec 2016 02:11:19 +0100 Subject: [PATCH] small generator fix, not ready yet --- .../com/sosnitzka/taiga/MaterialTraits.java | 6 ++- .../taiga/traits/TraitDevelopement.java | 28 +++++++++++++ .../com/sosnitzka/taiga/util/Generator.java | 42 +++++++++++-------- .../com/sosnitzka/taiga/world/WorldGen.java | 2 +- 4 files changed, 58 insertions(+), 20 deletions(-) create mode 100644 src/main/java/com/sosnitzka/taiga/traits/TraitDevelopement.java diff --git a/src/main/java/com/sosnitzka/taiga/MaterialTraits.java b/src/main/java/com/sosnitzka/taiga/MaterialTraits.java index f2ca5bf..6e4ece4 100644 --- a/src/main/java/com/sosnitzka/taiga/MaterialTraits.java +++ b/src/main/java/com/sosnitzka/taiga/MaterialTraits.java @@ -51,6 +51,7 @@ public class MaterialTraits { public static final AbstractTrait ported = new TraitPorted(); public static final AbstractTrait decay = new TraitDecay(); public static final AbstractTrait whirl = new TraitWhirl(); + public static final AbstractTrait dev = new TraitDevelopement(); /** * Assign traits to related materials.
@@ -80,7 +81,10 @@ public class MaterialTraits { public static Material imperomite = new Material("imperomite", TextFormatting.DARK_RED).addTrait(hollow); public static Material solarium = new Material("solarium", TextFormatting.YELLOW).addTrait(pulverizing); public static Material nihilite = new Material("nihilite", TextFormatting.BLACK).addTrait(souleater); - public static Material adamant = new Material("adamant", TextFormatting.GOLD); + /** + * With Dev + **/ + public static Material adamant = new Material("adamant", TextFormatting.GOLD).addTrait(dev); public static Material dyonite = new Material("dyonite", TextFormatting.GREEN).addTrait(tantrum); public static Material nucleum = new Material("nucleum", TextFormatting.YELLOW).addTrait(decay); public static Material lumix = new Material("lumix", TextFormatting.YELLOW).addTrait(bright, MaterialTypes.HANDLE).addTrait(glimmer, MaterialTypes.HEAD); diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitDevelopement.java b/src/main/java/com/sosnitzka/taiga/traits/TraitDevelopement.java new file mode 100644 index 0000000..4fe6a76 --- /dev/null +++ b/src/main/java/com/sosnitzka/taiga/traits/TraitDevelopement.java @@ -0,0 +1,28 @@ +package com.sosnitzka.taiga.traits; + +import net.minecraft.block.BlockStone; +import net.minecraft.block.state.IBlockState; +import net.minecraft.util.text.TextFormatting; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.world.BlockEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import slimeknights.tconstruct.library.traits.AbstractTrait; + + +public class TraitDevelopement extends AbstractTrait { + + + public TraitDevelopement() { + super(TraitDevelopement.class.getSimpleName().toLowerCase().substring(5), TextFormatting.RED); + MinecraftForge.EVENT_BUS.register(this); + } + + @SubscribeEvent + public void onBreak(BlockEvent.BreakEvent e) { + IBlockState state = e.getState(); + if (state.getBlock().equals(net.minecraft.init.Blocks.STONE)) + System.out.println("State.Variant: " + state.getValue(BlockStone.VARIANT)); + } + + +} diff --git a/src/main/java/com/sosnitzka/taiga/util/Generator.java b/src/main/java/com/sosnitzka/taiga/util/Generator.java index 3b0a989..2bf7cc5 100644 --- a/src/main/java/com/sosnitzka/taiga/util/Generator.java +++ b/src/main/java/com/sosnitzka/taiga/util/Generator.java @@ -25,7 +25,6 @@ import static com.sosnitzka.taiga.util.Utils.nextInt; public class Generator { 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); } @@ -33,11 +32,11 @@ public class Generator { 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 oldState, IBlockState newState, Random random, int chunkX, int chunkZ, World world, int chance, int minY, int maxY, int minSize, int maxSize, List biome) { + generateOre(oldState, newState, 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) { + 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, List biome) { int size = minSize + random.nextInt(maxSize - minSize); int height = maxY - minY; for (int i = 0; i < chance; i++) { @@ -46,7 +45,7 @@ public class Generator { int posZ = chunkZ + random.nextInt(16); BlockPos cPos = new BlockPos(posX, posY, posZ); if (biome == null || biome.contains(world.getBiome(cPos))) { - new WorldGenMinable(state, size, StateMatcher.forState(replace, property, comparable)).generate(world, random, new BlockPos(posX, posY, posZ)); + new WorldGenMinable(oldState, size, StateMatcher.forState(newState, property, comparable)).generate(world, random, new BlockPos(posX, posY, posZ)); } } } @@ -75,23 +74,30 @@ public class Generator { } } - public static void generateOreDescending(IBlockState oldState, IBlockState newState, IProperty property, Comparable comparable, Random random, int chunkX, int chunkZ, World world, int count) { + public static void generateOreDescending(IBlockState oldState, IBlockState newState, IProperty property, List 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); + BlockPos cPos = new BlockPos(posX, random.nextInt(64) + 16, 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); + if (state.getBlock().equals(oldState.getBlock())) { + if (comparable.contains(state.getValue(property))) { + System.out.println("Yes, a variant"); + world.setBlockState(cPos, newState); + } + } else { + while (cPos.getY() > 4) { + cPos = cPos.down(); + if (state.getBlock().equals(oldState.getBlock())) { + if (comparable.contains(state.getValue(property))) { + System.out.println("Yes!! a variant"); + world.setBlockState(cPos, newState); + continue; + } + } + if (random.nextBoolean()) + i--; + } } } } diff --git a/src/main/java/com/sosnitzka/taiga/world/WorldGen.java b/src/main/java/com/sosnitzka/taiga/world/WorldGen.java index 60d6aad..790c951 100644 --- a/src/main/java/com/sosnitzka/taiga/world/WorldGen.java +++ b/src/main/java/com/sosnitzka/taiga/world/WorldGen.java @@ -35,7 +35,7 @@ public class WorldGen implements IWorldGenerator { 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.generateOreDescending(Blocks.STONE.getDefaultState(), karmesineOre.getDefaultState(), BlockStone.VARIANT, newArrayList(BlockStone.EnumType.DIORITE, BlockStone.EnumType.GRANITE, BlockStone.EnumType.ANDESITE), 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);