Removed Arctic and Glacier biomes, improved Cold/Frozen Desert biomes. (Be sure to fix biome IDs in your configs!)

This commit is contained in:
Matt Caughey 2016-01-28 20:01:07 -05:00
parent 9e045fbfe5
commit df59c70cca
7 changed files with 38 additions and 119 deletions

View file

@ -19,7 +19,6 @@ public class BOPBiomes
// normal biomes which have weights // normal biomes which have weights
public static Optional<BiomeGenBase> alps = Optional.absent(); public static Optional<BiomeGenBase> alps = Optional.absent();
public static Optional<BiomeGenBase> arctic = Optional.absent();
public static Optional<BiomeGenBase> bamboo_forest = Optional.absent(); public static Optional<BiomeGenBase> bamboo_forest = Optional.absent();
public static Optional<BiomeGenBase> bayou = Optional.absent(); public static Optional<BiomeGenBase> bayou = Optional.absent();
public static Optional<BiomeGenBase> bog = Optional.absent(); public static Optional<BiomeGenBase> bog = Optional.absent();
@ -79,7 +78,6 @@ public class BOPBiomes
public static Optional<BiomeGenBase> xeric_shrubland = Optional.absent(); public static Optional<BiomeGenBase> xeric_shrubland = Optional.absent();
// edge-biomes, sub-biomes and mutated-biomes // edge-biomes, sub-biomes and mutated-biomes
public static Optional<BiomeGenBase> glacier = Optional.absent();
public static Optional<BiomeGenBase> mountain_foothills = Optional.absent(); public static Optional<BiomeGenBase> mountain_foothills = Optional.absent();
public static Optional<BiomeGenBase> canyon_ravine = Optional.absent(); public static Optional<BiomeGenBase> canyon_ravine = Optional.absent();

View file

@ -26,6 +26,7 @@ public class BiomeGenAlps extends BOPBiome
this.setEnableSnow(); this.setEnableSnow();
this.setTemperatureRainfall(0.0F, 0.5F); this.setTemperatureRainfall(0.0F, 0.5F);
this.canGenerateRivers = false;
this.canSpawnInBiome = false; this.canSpawnInBiome = false;
this.canGenerateVillages = false; this.canGenerateVillages = false;

View file

@ -1,64 +0,0 @@
/*******************************************************************************
* Copyright 2015-2016, the Biomes O' Plenty Team
*
* This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License.
*
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
******************************************************************************/
package biomesoplenty.common.biome.overworld;
import net.minecraft.util.BlockPos;
import biomesoplenty.api.biome.BOPBiome;
import biomesoplenty.api.biome.generation.GeneratorStage;
import biomesoplenty.api.block.BOPBlocks;
import biomesoplenty.common.block.BlockBOPDirt;
import biomesoplenty.common.block.BlockBOPGrass;
import biomesoplenty.common.enums.BOPClimates;
import biomesoplenty.common.enums.BOPGems;
import biomesoplenty.common.world.BOPWorldSettings;
import biomesoplenty.common.world.feature.GeneratorOreSingle;
public class BiomeGenArctic extends BOPBiome
{
public BiomeGenArctic()
{
// terrain
this.terrainSettings.avgHeight(64).heightVariation(6, 4).octaves(0, 0, 2, 0, 0, 5).sidewaysNoise(0.2F);
this.topBlock = BOPBlocks.grass.getDefaultState().withProperty(BlockBOPGrass.VARIANT, BlockBOPGrass.BOPGrassType.SILTY);
this.fillerBlock = BOPBlocks.dirt.getDefaultState().withProperty(BlockBOPDirt.VARIANT, BlockBOPDirt.BOPDirtType.SILTY);
this.setColor(14540253);
this.setEnableSnow();
this.setTemperatureRainfall(0.05F, 0.5F);
this.canSpawnInBiome = false;
this.canGenerateVillages = false;
this.addWeight(BOPClimates.ICE_CAP, 30);
this.spawnableCreatureList.clear();
// gem
this.addGenerator("tanzanite", GeneratorStage.SAND, (new GeneratorOreSingle.Builder()).amountPerChunk(12).with(BOPGems.TANZANITE).create());
}
@Override
public void applySettings(BOPWorldSettings settings)
{
if (!settings.generateBopGems) {this.removeGenerator("tanzanite");}
}
@Override
public int getGrassColorAtPos(BlockPos pos)
{
return 11176526;
}
@Override
public int getFoliageColorAtPos(BlockPos pos)
{
return 11903827;
}
}

View file

@ -8,7 +8,12 @@
package biomesoplenty.common.biome.overworld; package biomesoplenty.common.biome.overworld;
import java.util.Random;
import net.minecraft.block.state.IBlockState;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.world.World;
import net.minecraft.world.chunk.ChunkPrimer;
import biomesoplenty.api.biome.BOPBiome; import biomesoplenty.api.biome.BOPBiome;
import biomesoplenty.api.biome.generation.GeneratorStage; import biomesoplenty.api.biome.generation.GeneratorStage;
import biomesoplenty.api.block.BOPBlocks; import biomesoplenty.api.block.BOPBlocks;
@ -17,6 +22,7 @@ import biomesoplenty.common.enums.BOPGems;
import biomesoplenty.common.util.biome.GeneratorUtils.ScatterYMethod; import biomesoplenty.common.util.biome.GeneratorUtils.ScatterYMethod;
import biomesoplenty.common.util.block.BlockQuery.BlockQueryBlock; import biomesoplenty.common.util.block.BlockQuery.BlockQueryBlock;
import biomesoplenty.common.util.block.BlockQuery.IBlockPosQuery; import biomesoplenty.common.util.block.BlockQuery.IBlockPosQuery;
import biomesoplenty.common.util.config.BOPConfig.IConfigObj;
import biomesoplenty.common.world.BOPWorldSettings; import biomesoplenty.common.world.BOPWorldSettings;
import biomesoplenty.common.world.feature.GeneratorBlobs; import biomesoplenty.common.world.feature.GeneratorBlobs;
import biomesoplenty.common.world.feature.GeneratorOreSingle; import biomesoplenty.common.world.feature.GeneratorOreSingle;
@ -25,6 +31,9 @@ import biomesoplenty.common.world.feature.GeneratorSplotches;
public class BiomeGenColdDesert extends BOPBiome public class BiomeGenColdDesert extends BOPBiome
{ {
public IBlockState usualTopBlock;
public IBlockState alternateTopBlock;
public static enum ColdDesertType {FROZEN, COLD;} public static enum ColdDesertType {FROZEN, COLD;}
public BiomeGenColdDesert(ColdDesertType type) public BiomeGenColdDesert(ColdDesertType type)
@ -38,45 +47,66 @@ public class BiomeGenColdDesert extends BOPBiome
this.topBlock = Blocks.gravel.getDefaultState(); this.topBlock = Blocks.gravel.getDefaultState();
this.fillerBlock = Blocks.stone.getDefaultState(); this.fillerBlock = Blocks.stone.getDefaultState();
this.enableRain = false; this.canGenerateRivers = false;
this.usualTopBlock = this.topBlock;
this.setDisableRain();
this.enableSnow = false; this.enableSnow = false;
if (type == ColdDesertType.FROZEN) if (type == ColdDesertType.FROZEN)
{ {
this.alternateTopBlock = BOPBlocks.hard_ice.getDefaultState();
this.setTemperatureRainfall(0.0F, 0.0F); this.setTemperatureRainfall(0.0F, 0.0F);
this.addWeight(BOPClimates.FROZEN_DESERT, 20); this.addWeight(BOPClimates.FROZEN_DESERT, 10);
this.setColor(0xB3D7E3); this.setColor(0xB3D7E3);
} }
else else
{ {
this.alternateTopBlock = Blocks.snow.getDefaultState();
this.setTemperatureRainfall(0.2F, 0.0F); this.setTemperatureRainfall(0.2F, 0.0F);
this.addWeight(BOPClimates.COLD_DESERT, 20); this.addWeight(BOPClimates.COLD_DESERT, 10);
this.setColor(0xB3AF9B); this.setColor(0xB3AF9B);
} }
this.spawnableCreatureList.clear(); this.spawnableCreatureList.clear();
// gravel, stone and boulders // gravel, stone and boulders
IBlockPosQuery surface = new BlockQueryBlock(Blocks.stone, Blocks.gravel, BOPBlocks.hard_ice); IBlockPosQuery surface = new BlockQueryBlock(Blocks.stone, Blocks.gravel);
if (type == ColdDesertType.FROZEN) if (type == ColdDesertType.FROZEN)
{ {
this.addGenerator("hard_ice_patches", GeneratorStage.SAND, (new GeneratorSplotches.Builder()).amountPerChunk(13).splotchSize(24).placeOn(surface).replace(surface).with(BOPBlocks.hard_ice.getDefaultState()).scatterYMethod(ScatterYMethod.AT_SURFACE).create());
this.addGenerator("stone_patches", GeneratorStage.SAND, (new GeneratorSplotches.Builder()).amountPerChunk(3).splotchSize(16).placeOn(surface).replace(surface).with(Blocks.stone.getDefaultState()).scatterYMethod(ScatterYMethod.AT_SURFACE).create()); this.addGenerator("stone_patches", GeneratorStage.SAND, (new GeneratorSplotches.Builder()).amountPerChunk(3).splotchSize(16).placeOn(surface).replace(surface).with(Blocks.stone.getDefaultState()).scatterYMethod(ScatterYMethod.AT_SURFACE).create());
} }
else else
{ {
this.addGenerator("stone_patches", GeneratorStage.SAND, (new GeneratorSplotches.Builder()).amountPerChunk(6).splotchSize(24).placeOn(surface).replace(surface).with(Blocks.stone.getDefaultState()).scatterYMethod(ScatterYMethod.AT_SURFACE).create()); this.addGenerator("stone_patches", GeneratorStage.SAND, (new GeneratorSplotches.Builder()).amountPerChunk(6).splotchSize(24).placeOn(surface).replace(surface).with(Blocks.stone.getDefaultState()).scatterYMethod(ScatterYMethod.AT_SURFACE).create());
} }
this.addGenerator("boulders", GeneratorStage.SAND_PASS2, (new GeneratorBlobs.Builder()).amountPerChunk(0.2F).placeOn(surface).with(Blocks.stone.getDefaultState()).minRadius(0.3F).maxRadius(3.2F).numBalls(4).scatterYMethod(ScatterYMethod.AT_SURFACE).create()); this.addGenerator("boulders", GeneratorStage.SAND_PASS2, (new GeneratorBlobs.Builder()).amountPerChunk(0.2F).placeOn(surface).with(Blocks.cobblestone.getDefaultState()).minRadius(0.3F).maxRadius(3.2F).numBalls(4).scatterYMethod(ScatterYMethod.AT_SURFACE).create());
// gem // gem
this.addGenerator("tanzanite", GeneratorStage.SAND, (new GeneratorOreSingle.Builder()).amountPerChunk(12).with(BOPGems.TANZANITE).create()); this.addGenerator("tanzanite", GeneratorStage.SAND, (new GeneratorOreSingle.Builder()).amountPerChunk(12).with(BOPGems.TANZANITE).create());
} }
@Override
public void configure(IConfigObj conf)
{
super.configure(conf);
this.usualTopBlock = this.topBlock;
this.alternateTopBlock = conf.getBlockState("alternateTopBlock", this.alternateTopBlock);
}
@Override @Override
public void applySettings(BOPWorldSettings settings) public void applySettings(BOPWorldSettings settings)
{ {
if (!settings.generateBopGems) {this.removeGenerator("tanzanite");} if (!settings.generateBopGems) {this.removeGenerator("tanzanite");}
} }
@Override
public void genTerrainBlocks(World world, Random rand, ChunkPrimer primer, int x, int z, double noise)
{
this.topBlock = (noise + rand.nextDouble() * 3.0D > 1.8D) ? this.alternateTopBlock : this.usualTopBlock;
super.genTerrainBlocks(world, rand, primer, x, z, noise);
}
} }

View file

@ -1,36 +0,0 @@
/*******************************************************************************
* Copyright 2015-2016, the Biomes O' Plenty Team
*
* This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License.
*
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
******************************************************************************/
package biomesoplenty.common.biome.overworld;
import biomesoplenty.api.block.BOPBlocks;
public class BiomeGenGlacier extends BiomeGenArctic
{
public BiomeGenGlacier()
{
super();
this.canSpawnInBiome = false;
// clear weights - this biome shouldn't spawn except as arctic sub-biome
clearWeights();
// terrain - higher than arctic
this.terrainSettings.avgHeight(88).heightVariation(6, 6).octaves(1, 1, 3, 1, 1, 0);
this.avgDirtDepth = 16;
this.setColor(0xB0BBD9);
this.canGenerateVillages = false;
this.topBlock = BOPBlocks.hard_ice.getDefaultState();
this.fillerBlock = BOPBlocks.hard_ice.getDefaultState();
}
}

View file

@ -9,7 +9,6 @@
package biomesoplenty.common.init; package biomesoplenty.common.init;
import static biomesoplenty.api.biome.BOPBiomes.alps; import static biomesoplenty.api.biome.BOPBiomes.alps;
import static biomesoplenty.api.biome.BOPBiomes.arctic;
import static biomesoplenty.api.biome.BOPBiomes.bamboo_forest; import static biomesoplenty.api.biome.BOPBiomes.bamboo_forest;
import static biomesoplenty.api.biome.BOPBiomes.bayou; import static biomesoplenty.api.biome.BOPBiomes.bayou;
import static biomesoplenty.api.biome.BOPBiomes.birch_forest_extension; import static biomesoplenty.api.biome.BOPBiomes.birch_forest_extension;
@ -38,7 +37,6 @@ import static biomesoplenty.api.biome.BOPBiomes.frost_forest;
import static biomesoplenty.api.biome.BOPBiomes.frozen_desert; import static biomesoplenty.api.biome.BOPBiomes.frozen_desert;
import static biomesoplenty.api.biome.BOPBiomes.fungi_forest; import static biomesoplenty.api.biome.BOPBiomes.fungi_forest;
import static biomesoplenty.api.biome.BOPBiomes.garden; import static biomesoplenty.api.biome.BOPBiomes.garden;
import static biomesoplenty.api.biome.BOPBiomes.glacier;
import static biomesoplenty.api.biome.BOPBiomes.grassland; import static biomesoplenty.api.biome.BOPBiomes.grassland;
import static biomesoplenty.api.biome.BOPBiomes.grove; import static biomesoplenty.api.biome.BOPBiomes.grove;
import static biomesoplenty.api.biome.BOPBiomes.heathland; import static biomesoplenty.api.biome.BOPBiomes.heathland;
@ -102,7 +100,6 @@ import biomesoplenty.api.biome.BOPBiome;
import biomesoplenty.api.biome.BOPBiomes; import biomesoplenty.api.biome.BOPBiomes;
import biomesoplenty.api.biome.IExtendedBiome; import biomesoplenty.api.biome.IExtendedBiome;
import biomesoplenty.common.biome.overworld.BiomeGenAlps; import biomesoplenty.common.biome.overworld.BiomeGenAlps;
import biomesoplenty.common.biome.overworld.BiomeGenArctic;
import biomesoplenty.common.biome.overworld.BiomeGenBambooForest; import biomesoplenty.common.biome.overworld.BiomeGenBambooForest;
import biomesoplenty.common.biome.overworld.BiomeGenBayou; import biomesoplenty.common.biome.overworld.BiomeGenBayou;
import biomesoplenty.common.biome.overworld.BiomeGenBog; import biomesoplenty.common.biome.overworld.BiomeGenBog;
@ -124,7 +121,6 @@ import biomesoplenty.common.biome.overworld.BiomeGenFlowerField;
import biomesoplenty.common.biome.overworld.BiomeGenFrostForest; import biomesoplenty.common.biome.overworld.BiomeGenFrostForest;
import biomesoplenty.common.biome.overworld.BiomeGenFungiForest; import biomesoplenty.common.biome.overworld.BiomeGenFungiForest;
import biomesoplenty.common.biome.overworld.BiomeGenGarden; import biomesoplenty.common.biome.overworld.BiomeGenGarden;
import biomesoplenty.common.biome.overworld.BiomeGenGlacier;
import biomesoplenty.common.biome.overworld.BiomeGenGrassland; import biomesoplenty.common.biome.overworld.BiomeGenGrassland;
import biomesoplenty.common.biome.overworld.BiomeGenGrove; import biomesoplenty.common.biome.overworld.BiomeGenGrove;
import biomesoplenty.common.biome.overworld.BiomeGenHeathland; import biomesoplenty.common.biome.overworld.BiomeGenHeathland;
@ -332,7 +328,6 @@ public class ModBiomes implements BOPBiomes.IBiomeRegistry
// normal biomes which have weights // normal biomes which have weights
alps = registerBOPBiome(new BiomeGenAlps(), "Alps"); alps = registerBOPBiome(new BiomeGenAlps(), "Alps");
arctic = registerBOPBiome(new BiomeGenArctic(), "Arctic");
bamboo_forest = registerBOPBiome(new BiomeGenBambooForest(), "Bamboo Forest"); bamboo_forest = registerBOPBiome(new BiomeGenBambooForest(), "Bamboo Forest");
bayou = registerBOPBiome(new BiomeGenBayou(), "Bayou"); bayou = registerBOPBiome(new BiomeGenBayou(), "Bayou");
bog = registerBOPBiome(new BiomeGenBog(), "Bog"); bog = registerBOPBiome(new BiomeGenBog(), "Bog");
@ -395,10 +390,7 @@ public class ModBiomes implements BOPBiomes.IBiomeRegistry
mountain_foothills = registerBOPBiome(new BiomeGenMountain(BiomeGenMountain.MountainType.FOOTHILLS), "Mountain Foothills"); mountain_foothills = registerBOPBiome(new BiomeGenMountain(BiomeGenMountain.MountainType.FOOTHILLS), "Mountain Foothills");
canyon_ravine = registerBOPBiome(new BiomeGenCanyon(BiomeGenCanyon.CanyonType.RAVINE), "Canyon Ravine"); canyon_ravine = registerBOPBiome(new BiomeGenCanyon(BiomeGenCanyon.CanyonType.RAVINE), "Canyon Ravine");
glacier = registerBOPBiome(new BiomeGenGlacier(), "Glacier"); // TODO: implement glacier
setSubBiome(Optional.of(BiomeGenBase.frozenOcean), arctic); // add some arctic regions in frozen oceans
setSubBiome(arctic, glacier);
setSubBiome(canyon, canyon_ravine); setSubBiome(canyon, canyon_ravine);
} }
@ -408,7 +400,6 @@ public class ModBiomes implements BOPBiomes.IBiomeRegistry
//TODO: Add biome dictionary tags for biomes that haven't been added yet //TODO: Add biome dictionary tags for biomes that haven't been added yet
registerBiomeToDictionary(BOPBiomes.alps, Type.SNOWY, Type.MOUNTAIN, Type.COLD); registerBiomeToDictionary(BOPBiomes.alps, Type.SNOWY, Type.MOUNTAIN, Type.COLD);
registerBiomeToDictionary(BOPBiomes.arctic, Type.SNOWY, Type.WASTELAND, Type.COLD, Type.DEAD);
registerBiomeToDictionary(BOPBiomes.bamboo_forest, Type.JUNGLE, Type.FOREST, Type.DENSE, Type.LUSH); registerBiomeToDictionary(BOPBiomes.bamboo_forest, Type.JUNGLE, Type.FOREST, Type.DENSE, Type.LUSH);
registerBiomeToDictionary(BOPBiomes.bayou, Type.SWAMP, Type.WATER, Type.LUSH, Type.WET); registerBiomeToDictionary(BOPBiomes.bayou, Type.SWAMP, Type.WATER, Type.LUSH, Type.WET);
registerBiomeToDictionary(BOPBiomes.bog, Type.SWAMP, Type.FOREST, Type.WET, Type.DEAD); registerBiomeToDictionary(BOPBiomes.bog, Type.SWAMP, Type.FOREST, Type.WET, Type.DEAD);
@ -468,7 +459,6 @@ public class ModBiomes implements BOPBiomes.IBiomeRegistry
registerBiomeToDictionary(BOPBiomes.xeric_shrubland, Type.PLAINS, Type.SPARSE, Type.DRY, Type.LUSH, Type.HOT, Type.SANDY); registerBiomeToDictionary(BOPBiomes.xeric_shrubland, Type.PLAINS, Type.SPARSE, Type.DRY, Type.LUSH, Type.HOT, Type.SANDY);
// edge-biomes, sub-biomes and mutated-biomes // edge-biomes, sub-biomes and mutated-biomes
registerBiomeToDictionary(BOPBiomes.glacier, Type.SNOWY, Type.HILLS, Type.COLD, Type.DEAD);
registerBiomeToDictionary(BOPBiomes.mountain_foothills, Type.HILLS, Type.MOUNTAIN); registerBiomeToDictionary(BOPBiomes.mountain_foothills, Type.HILLS, Type.MOUNTAIN);
registerBiomeToDictionary(BOPBiomes.canyon_ravine, Type.SANDY, Type.HILLS, Type.DRY, Type.HOT); registerBiomeToDictionary(BOPBiomes.canyon_ravine, Type.SANDY, Type.HILLS, Type.DRY, Type.HOT);

View file

@ -47,7 +47,7 @@ public class GenLayerRiverMixBOP extends BOPGenLayer
{ {
if (riverValues[i] == BiomeGenBase.river.biomeID) if (riverValues[i] == BiomeGenBase.river.biomeID)
{ {
if (biomeIds[i] == BiomeGenBase.icePlains.biomeID || (BOPBiomes.arctic.isPresent() && biomeIds[i] == BOPBiomes.arctic.get().biomeID)) if (biomeIds[i] == BiomeGenBase.icePlains.biomeID || (BOPBiomes.cold_desert.isPresent() && biomeIds[i] == BOPBiomes.cold_desert.get().biomeID) || (BOPBiomes.frozen_desert.isPresent() && biomeIds[i] == BOPBiomes.frozen_desert.get().biomeID))
{ {
out[i] = BiomeGenBase.frozenRiver.biomeID; out[i] = BiomeGenBase.frozenRiver.biomeID;
} }