Removed Witherwart, added Devilweed, improved various Nether biomes

This commit is contained in:
Forstride 2017-04-21 08:40:48 -04:00
parent 6b886e1ef2
commit fe5df48f1f
19 changed files with 44 additions and 91 deletions

View file

@ -13,7 +13,7 @@ import net.minecraft.util.IStringSerializable;
public enum BOPPlants implements IStringSerializable, IPagedVariants public enum BOPPlants implements IStringSerializable, IPagedVariants
{ {
SHORTGRASS, MEDIUMGRASS, BUSH, SPROUT, POISONIVY, BERRYBUSH, SHRUB, WHEATGRASS, DAMPGRASS, KORU, CLOVERPATCH, LEAFPILE, DEADLEAFPILE, DEADGRASS, DESERTGRASS, DESERTSPROUTS, DUNEGRASS, SPECTRALFERN, THORN, WILDRICE, CATTAIL, RIVERCANE, TINYCACTUS, WITHERWART, REED, ROOT, RAFFLESIA; SHORTGRASS, MEDIUMGRASS, BUSH, SPROUT, POISONIVY, BERRYBUSH, SHRUB, WHEATGRASS, DAMPGRASS, KORU, CLOVERPATCH, LEAFPILE, DEADLEAFPILE, DEADGRASS, DESERTGRASS, DESERTSPROUTS, DUNEGRASS, SPECTRALFERN, THORN, WILDRICE, CATTAIL, RIVERCANE, TINYCACTUS, DEVILWEED, REED, ROOT, RAFFLESIA;
@Override @Override
public String getName() { public String getName() {

View file

@ -21,7 +21,7 @@ public class BiomeBoneyard extends BOPHellBiome
{ {
public BiomeBoneyard() public BiomeBoneyard()
{ {
super("boneyard", new PropsBuilder("Boneyard").withGuiColour(0xA93C3E)); super("boneyard", new PropsBuilder("Boneyard").withGuiColour(0xA93C3E).withTemperature(2.0F).withRainfall(0.0F).withRainDisabled());
this.addWeight(BOPClimates.HELL, 20); this.addWeight(BOPClimates.HELL, 20);
} }

View file

@ -25,7 +25,7 @@ public class BiomeCorruptedSands extends BOPHellBiome
{ {
public BiomeCorruptedSands() public BiomeCorruptedSands()
{ {
super("corrupted_sands", new PropsBuilder("Corrupted Sands").withGuiColour(0xA93C3E)); super("corrupted_sands", new PropsBuilder("Corrupted Sands").withGuiColour(0xA93C3E).withTemperature(2.0F).withRainfall(0.0F).withRainDisabled());
this.addWeight(BOPClimates.HELL, 20); this.addWeight(BOPClimates.HELL, 20);

View file

@ -44,7 +44,7 @@ public class BiomeFungiForest extends BOPHellBiome
public BiomeFungiForest() public BiomeFungiForest()
{ {
super("fungi_forest", new PropsBuilder("Fungi Forest").withGuiColour(0xA93C3E)); super("fungi_forest", new PropsBuilder("Fungi Forest").withGuiColour(0xA93C3E).withTemperature(2.0F).withRainfall(0.0F).withRainDisabled());
this.addWeight(BOPClimates.HELL, 15); this.addWeight(BOPClimates.HELL, 15);

View file

@ -25,7 +25,7 @@ public class BiomePhantasmagoricInferno extends BOPHellBiome
{ {
public BiomePhantasmagoricInferno() public BiomePhantasmagoricInferno()
{ {
super("phantasmagoric_inferno", new PropsBuilder("Phantasmagoric Inferno").withGuiColour(0xA93C3E)); super("phantasmagoric_inferno", new PropsBuilder("Phantasmagoric Inferno").withGuiColour(0xA93C3E).withTemperature(2.0F).withRainfall(0.0F).withRainDisabled());
this.addWeight(BOPClimates.HELL, 20); this.addWeight(BOPClimates.HELL, 20);

View file

@ -24,7 +24,7 @@ public class BiomePolarChasm extends BOPHellBiome
{ {
public BiomePolarChasm() public BiomePolarChasm()
{ {
super("polar_chasm", new PropsBuilder("Polar Chasm").withGuiColour(0xA93C3E)); super("polar_chasm", new PropsBuilder("Polar Chasm").withGuiColour(0xA93C3E).withTemperature(0.25F).withRainfall(0.0F).withRainDisabled());
this.addWeight(BOPClimates.HELL, 1); this.addWeight(BOPClimates.HELL, 1);

View file

@ -23,6 +23,7 @@ import biomesoplenty.common.block.BlockBOPVine;
import biomesoplenty.common.util.biome.GeneratorUtils.ScatterYMethod; import biomesoplenty.common.util.biome.GeneratorUtils.ScatterYMethod;
import biomesoplenty.common.util.block.BlockQuery; import biomesoplenty.common.util.block.BlockQuery;
import biomesoplenty.common.world.generator.GeneratorFlora; import biomesoplenty.common.world.generator.GeneratorFlora;
import biomesoplenty.common.world.generator.GeneratorGrass;
import biomesoplenty.common.world.generator.GeneratorSplatter; import biomesoplenty.common.world.generator.GeneratorSplatter;
import biomesoplenty.common.world.generator.GeneratorVines; import biomesoplenty.common.world.generator.GeneratorVines;
import biomesoplenty.common.world.generator.GeneratorWeighted; import biomesoplenty.common.world.generator.GeneratorWeighted;
@ -35,17 +36,18 @@ public class BiomeUndergarden extends BOPHellBiome
public BiomeUndergarden() public BiomeUndergarden()
{ {
super("undergarden", new PropsBuilder("Undergarden").withGuiColour(0xA93C3E)); super("undergarden", new PropsBuilder("Undergarden").withGuiColour(0xA93C3E).withTemperature(2.0F).withRainfall(0.0F).withRainDisabled());
this.addWeight(BOPClimates.HELL, 15); this.addWeight(BOPClimates.HELL, 15);
this.topBlock = BOPBlocks.grass.getDefaultState().withProperty(BlockBOPGrass.VARIANT, BlockBOPGrass.BOPGrassType.OVERGROWN_NETHERRACK);
// splatter top blocks // splatter top blocks
IBlockPosQuery emptyNetherrack = BlockQuery.buildAnd().states(this.topBlock).withAirAbove().create(); IBlockPosQuery emptyOvergrownNetherrack = BlockQuery.buildAnd().withAirAbove().states(this.topBlock).create();
IBlockState overgrownNetherrack = BOPBlocks.grass.getDefaultState().withProperty(BlockBOPGrass.VARIANT, BlockBOPGrass.BOPGrassType.OVERGROWN_NETHERRACK); this.addGenerator("netherrack_splatter", GeneratorStage.SAND, (new GeneratorSplatter.Builder()).amountPerChunk(7.0F).generationAttempts(128).scatterYMethod(ScatterYMethod.NETHER_SURFACE).replace(emptyOvergrownNetherrack).with(Blocks.NETHERRACK.getDefaultState()).create());
this.addGenerator("overgrown_netherrack_splatter", GeneratorStage.SAND, (new GeneratorSplatter.Builder()).amountPerChunk(20.0F).generationAttempts(128).scatterYMethod(ScatterYMethod.NETHER_SURFACE).replace(emptyNetherrack).with(overgrownNetherrack).create());
IBlockPosQuery suitableNetherrackPosition = BlockQuery.buildAnd().withAltitudeBetween(80, 130).states(Blocks.NETHERRACK.getDefaultState()).create(); IBlockPosQuery suitableNetherrackPosition = BlockQuery.buildAnd().withAltitudeBetween(70, 120).states(Blocks.NETHERRACK.getDefaultState()).create();
this.addGenerator("ivy", GeneratorStage.FLOWERS,(new GeneratorVines.Builder()).amountPerChunk(30.0F).generationAttempts(128).placeOn(suitableNetherrackPosition).with(BOPBlocks.ivy.getDefaultState()).minHeight(8).maxHeight(20).create()); this.addGenerator("ivy", GeneratorStage.FLOWERS,(new GeneratorVines.Builder()).amountPerChunk(25.0F).generationAttempts(128).placeOn(suitableNetherrackPosition).with(BOPBlocks.ivy.getDefaultState()).minHeight(8).maxHeight(20).create());
// flowers // flowers
GeneratorWeighted flowerGenerator = new GeneratorWeighted(1.0F); GeneratorWeighted flowerGenerator = new GeneratorWeighted(1.0F);
@ -53,12 +55,15 @@ public class BiomeUndergarden extends BOPHellBiome
flowerGenerator.add("burning_blossom", 4, (new GeneratorFlora.Builder().scatterYMethod(ScatterYMethod.NETHER_SURFACE).with(BOPFlowers.BURNING_BLOSSOM).create())); flowerGenerator.add("burning_blossom", 4, (new GeneratorFlora.Builder().scatterYMethod(ScatterYMethod.NETHER_SURFACE).with(BOPFlowers.BURNING_BLOSSOM).create()));
// trees // trees
IBlockPosQuery surfaceBlocks = BlockQuery.buildOr().states(this.topBlock, overgrownNetherrack).create(); IBlockPosQuery surfaceBlocks = BlockQuery.buildOr().states(this.topBlock, BOPBlocks.grass.getDefaultState().withProperty(BlockBOPGrass.VARIANT, BlockBOPGrass.BOPGrassType.OVERGROWN_NETHERRACK)).create();
GeneratorWeighted treeGenerator = new GeneratorWeighted(12.0F); GeneratorWeighted treeGenerator = new GeneratorWeighted(15.0F);
this.addGenerator("trees", GeneratorStage.TREE, treeGenerator); this.addGenerator("trees", GeneratorStage.TREE, treeGenerator);
treeGenerator.add("twiglet", 3, (new GeneratorTwigletTree.Builder()).scatterYMethod(ScatterYMethod.NETHER_SURFACE).placeOn(surfaceBlocks).minHeight(2).maxHeight(2).log(BlockBOPLog.paging.getVariantState(BOPWoods.HELLBARK)).leaves(BlockBOPLeaves.paging.getVariantState(BOPTrees.HELLBARK)).create()); treeGenerator.add("twiglet", 5, (new GeneratorTwigletTree.Builder()).scatterYMethod(ScatterYMethod.NETHER_SURFACE).placeOn(surfaceBlocks).minHeight(2).maxHeight(2).log(BlockBOPLog.paging.getVariantState(BOPWoods.HELLBARK)).leaves(BlockBOPLeaves.paging.getVariantState(BOPTrees.HELLBARK)).create());
this.addGenerator("koru", GeneratorStage.FLOWERS,(new GeneratorFlora.Builder()).amountPerChunk(5.0F).with(BOPPlants.KORU).scatterYMethod(ScatterYMethod.NETHER_SURFACE).create()); // grasses
GeneratorWeighted grassGenerator = new GeneratorWeighted(15.0F);
this.addGenerator("grass", GeneratorStage.GRASS, grassGenerator);
grassGenerator.add("devilweed", 5, (new GeneratorGrass.Builder()).with(BOPPlants.DEVILWEED).scatterYMethod(ScatterYMethod.NETHER_SURFACE).create());
// shrooms // shrooms
this.addGenerator("flat_mushroom", GeneratorStage.SHROOM,(new GeneratorFlora.Builder()).amountPerChunk(0.5F).scatterYMethod(ScatterYMethod.NETHER_SURFACE).with(BlockBOPMushroom.MushroomType.FLAT_MUSHROOM).create()); this.addGenerator("flat_mushroom", GeneratorStage.SHROOM,(new GeneratorFlora.Builder()).amountPerChunk(0.5F).scatterYMethod(ScatterYMethod.NETHER_SURFACE).with(BlockBOPMushroom.MushroomType.FLAT_MUSHROOM).create());

View file

@ -44,7 +44,7 @@ public class BiomeVisceralHeap extends BOPHellBiome
public BiomeVisceralHeap() public BiomeVisceralHeap()
{ {
super("visceral_heap", new PropsBuilder("Visceral Heap").withGuiColour(0xA93C3E)); super("visceral_heap", new PropsBuilder("Visceral Heap").withGuiColour(0xA93C3E).withTemperature(2.0F).withRainfall(0.0F).withRainDisabled());
this.addWeight(BOPClimates.HELL, 20); this.addWeight(BOPClimates.HELL, 20);

View file

@ -96,7 +96,6 @@ public class BiomeGenDummyTemplate extends BOPOverworldBiome
this.addGenerator("thorns", GeneratorStage.FLOWERS,(new GeneratorFlora.Builder()).amountPerChunk(0.5F).with(BOPPlants.THORN).create()); this.addGenerator("thorns", GeneratorStage.FLOWERS,(new GeneratorFlora.Builder()).amountPerChunk(0.5F).with(BOPPlants.THORN).create());
this.addGenerator("tiny_cacti", GeneratorStage.FLOWERS,(new GeneratorFlora.Builder()).amountPerChunk(0.5F).with(BOPPlants.TINYCACTUS).create()); this.addGenerator("tiny_cacti", GeneratorStage.FLOWERS,(new GeneratorFlora.Builder()).amountPerChunk(0.5F).with(BOPPlants.TINYCACTUS).create());
this.addGenerator("wild_rice", GeneratorStage.FLOWERS,(new GeneratorFlora.Builder()).amountPerChunk(0.5F).with(BOPPlants.WILDRICE).create()); this.addGenerator("wild_rice", GeneratorStage.FLOWERS,(new GeneratorFlora.Builder()).amountPerChunk(0.5F).with(BOPPlants.WILDRICE).create());
this.addGenerator("witherwart", GeneratorStage.FLOWERS,(new GeneratorFlora.Builder()).amountPerChunk(0.5F).with(BOPPlants.WITHERWART).create());
this.addGenerator("dead_bushes", GeneratorStage.FLOWERS,(new GeneratorFlora.Builder()).amountPerChunk(0.5F).with(BlockTallGrass.EnumType.DEAD_BUSH).create()); this.addGenerator("dead_bushes", GeneratorStage.FLOWERS,(new GeneratorFlora.Builder()).amountPerChunk(0.5F).with(BlockTallGrass.EnumType.DEAD_BUSH).create());
this.addGenerator("eyebulbs", GeneratorStage.FLOWERS, (new GeneratorDoubleFlora.Builder()).amountPerChunk(0.5F).with(BlockBOPDoublePlant.DoublePlantType.EYEBULB).create()); this.addGenerator("eyebulbs", GeneratorStage.FLOWERS, (new GeneratorDoubleFlora.Builder()).amountPerChunk(0.5F).with(BlockBOPDoublePlant.DoublePlantType.EYEBULB).create());
this.addGenerator("flax", GeneratorStage.FLOWERS, (new GeneratorDoubleFlora.Builder()).amountPerChunk(0.5F).with(BlockBOPDoublePlant.DoublePlantType.FLAX).create()); this.addGenerator("flax", GeneratorStage.FLOWERS, (new GeneratorDoubleFlora.Builder()).amountPerChunk(0.5F).with(BlockBOPDoublePlant.DoublePlantType.FLAX).create());

View file

@ -122,7 +122,7 @@ public class BlockBOPPlant extends BlockBOPDecoration implements IShearable, IHo
{ {
case SHRUB: case LEAFPILE: case POISONIVY: case BUSH: case BERRYBUSH: case SHRUB: case LEAFPILE: case POISONIVY: case BUSH: case BERRYBUSH:
return ColoringType.LIKE_LEAVES; return ColoringType.LIKE_LEAVES;
case SHORTGRASS: case MEDIUMGRASS: case SPROUT: case KORU: case CLOVERPATCH: case WHEATGRASS: case DAMPGRASS: case SHORTGRASS: case MEDIUMGRASS: case SPROUT: case KORU: case CLOVERPATCH: case WHEATGRASS: case DAMPGRASS: case DEVILWEED:
return ColoringType.LIKE_GRASS; return ColoringType.LIKE_GRASS;
default: default:
return ColoringType.PLAIN; return ColoringType.PLAIN;
@ -247,7 +247,7 @@ public class BlockBOPPlant extends BlockBOPDecoration implements IShearable, IHo
} }
break; break;
case CATTAIL: case RIVERCANE: case TINYCACTUS: case WITHERWART: case REED: case ROOT: case RAFFLESIA: case CATTAIL: case RIVERCANE: case TINYCACTUS: case REED: case ROOT: case RAFFLESIA:
// these variants drop themselves as items // these variants drop themselves as items
ret.add(paging.getVariantItem(plant)); ret.add(paging.getVariantItem(plant));
break; break;
@ -288,7 +288,7 @@ public class BlockBOPPlant extends BlockBOPDecoration implements IShearable, IHo
switch (plant) switch (plant)
{ {
case THORN: case WILDRICE: case CATTAIL: case RIVERCANE: case TINYCACTUS: case WITHERWART: case RAFFLESIA: case THORN: case WILDRICE: case CATTAIL: case RIVERCANE: case TINYCACTUS: case RAFFLESIA:
return false; return false;
default: default:
@ -296,41 +296,6 @@ public class BlockBOPPlant extends BlockBOPDecoration implements IShearable, IHo
} }
} }
@Override
@SideOnly(Side.CLIENT)
public boolean addDestroyEffects(World world, BlockPos pos, ParticleManager effectRenderer)
{
IBlockState state = world.getBlockState(pos);
Block block = state.getBlock();
// make sure the block at pos is actually this block (according to the comments in Block.addDestroyEffects, it might not be...)
if (block != this) {return false;}
switch ((BOPPlants) state.getValue(this.variantProperty))
{
case WITHERWART:
byte n = 3;
for (byte i = 0; i < n; i++)
{
for (byte j = 0; j < n; j++)
{
for (byte k = 0; k < n; k++)
{
double x = pos.getX() + (i + 0.5D) / n;
double y = pos.getY() + (j + 0.5D) / n;
double z = pos.getZ() + (k + 0.5D) / n;
world.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, x, y, z, 0.0D, 0.0D, 0.0D);
}
}
}
break;
default:
break;
}
return false;
}
// different variants have different sizes // different variants have different sizes
@Override @Override
public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos)
@ -370,15 +335,13 @@ public class BlockBOPPlant extends BlockBOPDecoration implements IShearable, IHo
return BlockQueries.spectralMoss.matches(world, pos.down()); return BlockQueries.spectralMoss.matches(world, pos.down());
case THORN: case THORN:
return BlockQueries.fertileOrNetherrack.matches(world, pos.down()) || BlockQueries.sustainsNether.matches(world, pos.down()); return BlockQueries.fertileOrNetherrack.matches(world, pos.down()) || BlockQueries.sustainsNether.matches(world, pos.down());
case KORU:
return BlockQueries.fertile.matches(world, pos.down());
case CATTAIL: case CATTAIL:
return BlockQueries.litFertileWaterside.matches(world, pos.down()); return BlockQueries.litFertileWaterside.matches(world, pos.down());
case RIVERCANE: case RIVERCANE:
// river cane can also be placed on top of itself // river cane can also be placed on top of itself
return BlockQueries.litFertileWaterside.matches(world, pos.down()) || (world.getBlockState(pos.down()) == state); return BlockQueries.litFertileWaterside.matches(world, pos.down()) || (world.getBlockState(pos.down()) == state);
case WITHERWART: case DEVILWEED:
return BlockQueries.sustainsNether.matches(world, pos.down()); return BlockQueries.fertile.matches(world, pos.down());
case REED: case REED:
return BlockQueries.suitableForReed.matches(world, pos.down()); return BlockQueries.suitableForReed.matches(world, pos.down());
case ROOT: case ROOT:
@ -509,7 +472,7 @@ public class BlockBOPPlant extends BlockBOPDecoration implements IShearable, IHo
BOPPlants plant = ((BOPPlants) world.getBlockState(pos).getValue(this.variantProperty)); BOPPlants plant = ((BOPPlants) world.getBlockState(pos).getValue(this.variantProperty));
switch (plant) switch (plant)
{ {
case CATTAIL: case RIVERCANE: case TINYCACTUS: case WITHERWART: case REED: case ROOT: case CATTAIL: case RIVERCANE: case TINYCACTUS: case REED: case ROOT:
// these items drop themselves as items when the block is broken (from getDrops), so we don't want to add anything else for using shears // these items drop themselves as items when the block is broken (from getDrops), so we don't want to add anything else for using shears
break; break;
@ -539,7 +502,7 @@ public class BlockBOPPlant extends BlockBOPDecoration implements IShearable, IHo
return 0; return 0;
case RIVERCANE: case RIVERCANE:
return 0; return 0;
case WITHERWART: case DEVILWEED:
return 0; return 0;
case REED: case REED:
return 0; return 0;
@ -564,7 +527,7 @@ public class BlockBOPPlant extends BlockBOPDecoration implements IShearable, IHo
return 0; return 0;
case RIVERCANE: case RIVERCANE:
return 0; return 0;
case WITHERWART: case DEVILWEED:
return 0; return 0;
case REED: case REED:
return 0; return 0;
@ -589,7 +552,6 @@ public class BlockBOPPlant extends BlockBOPDecoration implements IShearable, IHo
case BERRYBUSH: case BERRYBUSH:
case RIVERCANE: case RIVERCANE:
case TINYCACTUS: case TINYCACTUS:
case WITHERWART:
return false; return false;
default: default:
return true; return true;

View file

@ -7,7 +7,7 @@
"variant=cattail": { "model": "biomesoplenty:cattail" }, "variant=cattail": { "model": "biomesoplenty:cattail" },
"variant=rivercane": { "model": "biomesoplenty:rivercane" }, "variant=rivercane": { "model": "biomesoplenty:rivercane" },
"variant=tinycactus": { "model": "biomesoplenty:tinycactus" }, "variant=tinycactus": { "model": "biomesoplenty:tinycactus" },
"variant=witherwart": { "model": "biomesoplenty:witherwart" }, "variant=devilweed": { "model": "biomesoplenty:devilweed" },
"variant=reed": { "model": "biomesoplenty:reed" }, "variant=reed": { "model": "biomesoplenty:reed" },
"variant=root": { "model": "biomesoplenty:root" }, "variant=root": { "model": "biomesoplenty:root" },
"variant=rafflesia": { "model": "biomesoplenty:rafflesia" } "variant=rafflesia": { "model": "biomesoplenty:rafflesia" }

View file

@ -396,7 +396,7 @@ tile.plant_1.wildrice.name=Wild Rice
tile.plant_1.cattail.name=Cattail tile.plant_1.cattail.name=Cattail
tile.plant_1.rivercane.name=River Cane tile.plant_1.rivercane.name=River Cane
tile.plant_1.tinycactus.name=Tiny Cactus tile.plant_1.tinycactus.name=Tiny Cactus
tile.plant_1.witherwart.name=Wither Wart tile.plant_1.devilweed.name=Devilweed
tile.plant_1.reed.name=Reed tile.plant_1.reed.name=Reed
tile.plant_1.root.name=Root tile.plant_1.root.name=Root
tile.plant_1.rafflesia.name=Rafflesia tile.plant_1.rafflesia.name=Rafflesia

View file

@ -0,0 +1,6 @@
{
"parent": "block/tinted_cross",
"textures": {
"cross": "biomesoplenty:blocks/devilweed"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "block/crop",
"textures": {
"crop": "biomesoplenty:blocks/witherwart"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "biomesoplenty:blocks/devilweed"
}
}

View file

@ -1,19 +0,0 @@
{
"parent": "item/generated",
"textures": {
"layer0": "biomesoplenty:items/witherwart"
},
"display": {
"thirdperson": {
"rotation": [ -90, 0, 0 ],
"translation": [ 0, 1, -3 ],
"scale": [ 0.55, 0.55, 0.55 ]
},
"firstperson": {
"rotation": [ 0, -135, 25 ],
"translation": [ 0, 4, 2 ],
"scale": [ 1.7, 1.7, 1.7 ]
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 470 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 392 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 311 B