More biome rework progress
|
@ -34,16 +34,20 @@ public class BOPBiomes
|
|||
public static RegistryKey<Biome> gravel_beach = register("gravel_beach");
|
||||
public static RegistryKey<Biome> grove = register("grove");
|
||||
public static RegistryKey<Biome> highland = register("highland");
|
||||
public static RegistryKey<Biome> highland_crag = register("highland_crag");
|
||||
public static RegistryKey<Biome> highland_moor = register("highland_moor");
|
||||
public static RegistryKey<Biome> jade_cliffs = register("jade_cliffs");
|
||||
public static RegistryKey<Biome> jade_grassland = register("jade_grassland");
|
||||
public static RegistryKey<Biome> lavender_field = register("lavender_field");
|
||||
public static RegistryKey<Biome> lush_desert = register("lush_desert");
|
||||
public static RegistryKey<Biome> lush_savanna = register("lush_savanna");
|
||||
public static RegistryKey<Biome> meadow = register("meadow");
|
||||
public static RegistryKey<Biome> meadow_forest = register("meadow_forest");
|
||||
public static RegistryKey<Biome> muskeg = register("muskeg");
|
||||
public static RegistryKey<Biome> mystic_grove = register("mystic_grove");
|
||||
public static RegistryKey<Biome> mystic_plains = register("mystic_plains");
|
||||
public static RegistryKey<Biome> ominous_woods = register("ominous_woods");
|
||||
public static RegistryKey<Biome> ominous_mire = register("ominous_mire");
|
||||
public static RegistryKey<Biome> orchard = register("orchard");
|
||||
public static RegistryKey<Biome> origin_valley = register("origin_valley");
|
||||
public static RegistryKey<Biome> overgrown_fungal_jungle = register("overgrown_fungal_jungle");
|
||||
|
@ -54,12 +58,14 @@ public class BOPBiomes
|
|||
public static RegistryKey<Biome> rainforest_cliffs = register("rainforest_cliffs");
|
||||
public static RegistryKey<Biome> redwood_forest = register("redwood_forest");
|
||||
public static RegistryKey<Biome> redwood_forest_edge = register("redwood_forest_edge");
|
||||
public static RegistryKey<Biome> redwood_hills = register("redwood_hills");
|
||||
public static RegistryKey<Biome> seasonal_forest = register("seasonal_forest");
|
||||
public static RegistryKey<Biome> seasonal_pumpkin_patch = register("seasonal_pumpkin_patch");
|
||||
public static RegistryKey<Biome> shroomy_wetland = register("shroomy_wetland");
|
||||
public static RegistryKey<Biome> shrubland = register("shrubland");
|
||||
public static RegistryKey<Biome> shrubland_hills = register("shrubland_hills");
|
||||
public static RegistryKey<Biome> silkglade = register("silkglade");
|
||||
public static RegistryKey<Biome> silkglade_nest = register("silkglade_nest");
|
||||
public static RegistryKey<Biome> snowy_coniferous_forest = register("snowy_coniferous_forest");
|
||||
public static RegistryKey<Biome> snowy_fir_clearing = register("snowy_fir_clearing");
|
||||
public static RegistryKey<Biome> snowy_maple_forest = register("snowy_maple_forest");
|
||||
|
|
|
@ -28,10 +28,5 @@ public class BOPItems
|
|||
public static Item umbran_boat;
|
||||
public static Item hellbark_boat;
|
||||
|
||||
public static Item venison;
|
||||
public static Item cooked_venison;
|
||||
public static Item turkey_leg;
|
||||
public static Item cooked_turkey_leg;
|
||||
|
||||
public static Item music_disc_wanderer;
|
||||
}
|
||||
|
|
|
@ -12,11 +12,4 @@ import net.minecraft.util.SoundEvent;
|
|||
public class BOPSounds
|
||||
{
|
||||
public static SoundEvent music_disc_wanderer;
|
||||
public static SoundEvent deer_hurt;
|
||||
public static SoundEvent deer_dead;
|
||||
public static SoundEvent deer_step;
|
||||
public static SoundEvent turkey_ambient;
|
||||
public static SoundEvent turkey_hurt;
|
||||
public static SoundEvent turkey_dead;
|
||||
public static SoundEvent turkey_step;
|
||||
}
|
||||
|
|
|
@ -84,8 +84,6 @@ public class ConiferousForestBiome extends BiomeTemplate
|
|||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(ModEntities.turkey, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(ModEntities.deer, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.RABBIT, 4, 2, 3));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.WOLF, 5, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.FOX, 8, 2, 4));
|
||||
|
|
|
@ -84,7 +84,6 @@ public class ConiferousLakesBiome extends BiomeTemplate
|
|||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(ModEntities.deer, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.RABBIT, 4, 2, 3));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.WOLF, 5, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.FOX, 8, 2, 4));
|
||||
|
|
|
@ -78,8 +78,6 @@ public class FirClearingBiome extends BiomeTemplate
|
|||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(ModEntities.turkey, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(ModEntities.deer, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.RABBIT, 4, 2, 3));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.WOLF, 5, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.FOX, 8, 2, 4));
|
||||
|
|
|
@ -22,7 +22,7 @@ public class HighlandBiome extends BiomeTemplate
|
|||
{
|
||||
public HighlandBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.COOL_TEMPERATE, 3);
|
||||
this.addWeight(BOPClimates.COOL_TEMPERATE, 5);
|
||||
this.setBeachBiome(null);
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,85 @@
|
|||
/*******************************************************************************
|
||||
* Copyright 2014-2019, 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.enums.BOPClimates;
|
||||
import biomesoplenty.common.biome.BiomeTemplate;
|
||||
import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures;
|
||||
import biomesoplenty.common.world.gen.surfacebuilders.BOPSurfaceBuilders;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.world.biome.*;
|
||||
import net.minecraft.world.gen.GenerationStage;
|
||||
import net.minecraft.world.gen.feature.structure.StructureFeatures;
|
||||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
|
||||
public class HighlandCragBiome extends BiomeTemplate
|
||||
{
|
||||
public HighlandCragBiome()
|
||||
{
|
||||
this.setBeachBiome(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.EXTREME_HILLS).depth(3.0F).scale(0.7F).temperature(0.6F).downfall(0.6F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.6F)).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureGeneration(BiomeGenerationSettings.Builder builder)
|
||||
{
|
||||
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(BOPSurfaceBuilders.HIGHLAND_CRAG, SurfaceBuilder.CONFIG_STONE));
|
||||
|
||||
// Structures
|
||||
DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder);
|
||||
builder.addStructureStart(StructureFeatures.RUINED_PORTAL_MOUNTAIN);
|
||||
|
||||
// Underground
|
||||
DefaultBiomeFeatures.addDefaultCarvers(builder);
|
||||
DefaultBiomeFeatures.addDefaultLakes(builder);
|
||||
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
|
||||
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);
|
||||
DefaultBiomeFeatures.addDefaultOres(builder);
|
||||
DefaultBiomeFeatures.addDefaultSoftDisks(builder);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Vegetation
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.CRAG_SPLATTER);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.STANDARD_GRASS_12);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.TALL_GRASS_24);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Other Features
|
||||
DefaultBiomeFeatures.addDefaultSprings(builder);
|
||||
DefaultBiomeFeatures.addExtraEmeralds(builder);
|
||||
DefaultBiomeFeatures.addInfestedStone(builder);
|
||||
DefaultBiomeFeatures.addSurfaceFreezing(builder);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.LLAMA, 5, 4, 6));
|
||||
builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SPIDER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE, 95, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE_VILLAGER, 5, 1, 1));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SKELETON, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.CREEPER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SLIME, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ENDERMAN, 10, 1, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.WITCH, 5, 1, 1));
|
||||
}
|
||||
}
|
|
@ -31,7 +31,7 @@ public class JadeCliffsBiome extends BiomeTemplate
|
|||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.FOREST).depth(2.0F).scale(1.15F).temperature(0.75F).downfall(0.85F);
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.FOREST).depth(2.0F).scale(1.15F).temperature(0.8F).downfall(0.85F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(0xBBD1D5).skyColor(0xB7CCAD).grassColorOverride(0x7CA568).foliageColorOverride(0x8BB76E).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
|
|
@ -0,0 +1,85 @@
|
|||
/*******************************************************************************
|
||||
* Copyright 2014-2019, 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.enums.BOPClimates;
|
||||
import biomesoplenty.common.biome.BiomeTemplate;
|
||||
import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures;
|
||||
import biomesoplenty.common.world.gen.surfacebuilders.BOPSurfaceBuilders;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.world.biome.*;
|
||||
import net.minecraft.world.gen.GenerationStage;
|
||||
import net.minecraft.world.gen.feature.Features;
|
||||
import net.minecraft.world.gen.feature.structure.StructureFeatures;
|
||||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
|
||||
public class JadeGrasslandBiome extends BiomeTemplate
|
||||
{
|
||||
public JadeGrasslandBiome()
|
||||
{
|
||||
this.setBeachBiome(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.PLAINS).depth(0.3F).scale(0.2F).temperature(0.8F).downfall(0.85F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(0xBBD1D5).skyColor(0xB7CCAD).grassColorOverride(0x7CA568).foliageColorOverride(0x8BB76E).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureGeneration(BiomeGenerationSettings.Builder builder)
|
||||
{
|
||||
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(BOPSurfaceBuilders.DEEP_TOP_LAYER, SurfaceBuilder.CONFIG_GRASS));
|
||||
|
||||
// Structures
|
||||
DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder);
|
||||
builder.addStructureStart(StructureFeatures.RUINED_PORTAL_MOUNTAIN);
|
||||
|
||||
// Underground
|
||||
DefaultBiomeFeatures.addDefaultCarvers(builder);
|
||||
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
|
||||
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);
|
||||
DefaultBiomeFeatures.addDefaultOres(builder);
|
||||
DefaultBiomeFeatures.addDefaultSoftDisks(builder);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Vegetation
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.STANDARD_GRASS_24);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_SUGAR_CANE);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Other Features
|
||||
DefaultBiomeFeatures.addDefaultSprings(builder);
|
||||
DefaultBiomeFeatures.addSurfaceFreezing(builder);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.SHEEP, 12, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.PIG, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.CHICKEN, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.COW, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SPIDER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE, 95, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE_VILLAGER, 5, 1, 1));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SKELETON, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.CREEPER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SLIME, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ENDERMAN, 10, 1, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.WITCH, 5, 1, 1));
|
||||
}
|
||||
}
|
|
@ -32,9 +32,9 @@ public class LushDesertBiome extends BiomeTemplate
|
|||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.DESERT).depth(0.6F).scale(0.6F).temperature(1.8F).downfall(0.15F);
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.DESERT).depth(0.6F).scale(0.6F).temperature(0.9F).downfall(0.5F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4566514).waterFogColor(267827).fogColor(12638463).skyColor(calculateSkyColor(1.8F)).grassColorOverride(0xEFE182).foliageColorOverride(0xD3D156).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4566514).waterFogColor(267827).fogColor(12638463).skyColor(calculateSkyColor(0.9F)).grassColorOverride(0xEFE182).foliageColorOverride(0xD3D156).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -18,6 +18,7 @@ import net.minecraft.world.gen.GenerationStage;
|
|||
import net.minecraft.world.gen.feature.Features;
|
||||
import net.minecraft.world.gen.feature.structure.StructureFeatures;
|
||||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
|
||||
public class LushSavannaBiome extends BiomeTemplate
|
||||
{
|
||||
|
@ -29,15 +30,15 @@ public class LushSavannaBiome extends BiomeTemplate
|
|||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.DESERT).depth(0.1F).scale(0.01F).temperature(1.8F).downfall(0.15F);
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.DESERT).depth(0.1F).scale(0.01F).temperature(0.9F).downfall(0.5F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4566514).waterFogColor(267827).fogColor(12638463).skyColor(calculateSkyColor(1.8F)).grassColorOverride(0xEFE182).foliageColorOverride(0xD3D156).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4566514).waterFogColor(267827).fogColor(12638463).skyColor(calculateSkyColor(0.9F)).grassColorOverride(0xEFE182).foliageColorOverride(0xD3D156).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureGeneration(BiomeGenerationSettings.Builder builder)
|
||||
{
|
||||
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(BOPSurfaceBuilders.LUSH_SAVANNA, BOPSurfaceBuilders.ORANGE_SAND_SURFACE));
|
||||
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(BOPSurfaceBuilders.LUSH_SAVANNA, SurfaceBuilder.CONFIG_GRASS));
|
||||
|
||||
// Structures
|
||||
DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder);
|
||||
|
@ -66,6 +67,9 @@ public class LushSavannaBiome extends BiomeTemplate
|
|||
|
||||
// Other Features
|
||||
DefaultBiomeFeatures.addDefaultSprings(builder);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.WATER_SPRING_EXTRA);
|
||||
|
||||
DefaultBiomeFeatures.addSurfaceFreezing(builder);
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,99 @@
|
|||
/*******************************************************************************
|
||||
* Copyright 2014-2019, 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.biome.BOPBiomes;
|
||||
import biomesoplenty.api.enums.BOPClimates;
|
||||
import biomesoplenty.common.biome.BiomeTemplate;
|
||||
import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.world.biome.*;
|
||||
import net.minecraft.world.gen.GenerationStage;
|
||||
import net.minecraft.world.gen.feature.Features;
|
||||
import net.minecraft.world.gen.feature.structure.StructureFeatures;
|
||||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
|
||||
public class MeadowForestBiome extends BiomeTemplate
|
||||
{
|
||||
public MeadowForestBiome()
|
||||
{
|
||||
this.setBeachBiome(BOPBiomes.gravel_beach);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.TAIGA).depth(0.0F).scale(0.05F).temperature(0.4F).downfall(0.7F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.4F)).grassColorOverride(0x63B26D).foliageColorOverride(0x63B26D).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureGeneration(BiomeGenerationSettings.Builder builder)
|
||||
{
|
||||
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(SurfaceBuilder.DEFAULT, SurfaceBuilder.CONFIG_GRASS));
|
||||
|
||||
// Structures
|
||||
builder.addStructureStart(StructureFeatures.VILLAGE_TAIGA);
|
||||
builder.addStructureStart(StructureFeatures.PILLAGER_OUTPOST);
|
||||
DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder);
|
||||
builder.addStructureStart(StructureFeatures.RUINED_PORTAL_STANDARD);
|
||||
|
||||
// Underground
|
||||
DefaultBiomeFeatures.addDefaultCarvers(builder);
|
||||
DefaultBiomeFeatures.addDefaultLakes(builder);
|
||||
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
|
||||
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);
|
||||
DefaultBiomeFeatures.addDefaultOres(builder);
|
||||
DefaultBiomeFeatures.addDefaultSoftDisks(builder);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Vegetation
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.MEADOW_FOREST_TREES);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.MEADOW_FLOWERS);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LILAC_1);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.ROSE_BUSH_1);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.SPROUTS_15);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.STANDARD_GRASS_6);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.BROWN_MUSHROOM_NORMAL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_BERRY_SPARSE);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_PUMPKIN);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.RED_MUSHROOM_NORMAL);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Other Features
|
||||
DefaultBiomeFeatures.addDefaultSprings(builder);
|
||||
DefaultBiomeFeatures.addSurfaceFreezing(builder);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.RABBIT, 4, 2, 3));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.SHEEP, 12, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.PIG, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.CHICKEN, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.COW, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.FOX, 8, 2, 4));
|
||||
builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SPIDER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE, 95, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE_VILLAGER, 5, 1, 1));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SKELETON, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.CREEPER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SLIME, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ENDERMAN, 10, 1, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.WITCH, 5, 1, 1));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,92 @@
|
|||
/*******************************************************************************
|
||||
* Copyright 2014-2019, 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.enums.BOPClimates;
|
||||
import biomesoplenty.common.biome.BiomeTemplate;
|
||||
import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures;
|
||||
import biomesoplenty.common.world.gen.surfacebuilders.BOPSurfaceBuilders;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.world.biome.*;
|
||||
import net.minecraft.world.gen.GenerationStage;
|
||||
import net.minecraft.world.gen.feature.Features;
|
||||
import net.minecraft.world.gen.feature.structure.StructureFeatures;
|
||||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
|
||||
public class OminousMireBiome extends BiomeTemplate
|
||||
{
|
||||
public OminousMireBiome()
|
||||
{
|
||||
this.setBeachBiome(null);
|
||||
this.setRiverBiome(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.TAIGA).depth(-0.215F).scale(-0.05F).temperature(0.6F).downfall(0.6F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(0x312346).waterFogColor(0x0A030C).fogColor(0x7881A5).skyColor(0x84A1CC).grassColorOverride(0x4C4A70).foliageColorOverride(0x6B487C).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureGeneration(BiomeGenerationSettings.Builder builder)
|
||||
{
|
||||
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(BOPSurfaceBuilders.MARSH, SurfaceBuilder.CONFIG_GRASS));
|
||||
|
||||
// Structures
|
||||
builder.addStructureStart(StructureFeatures.SWAMP_HUT);
|
||||
DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder);
|
||||
builder.addStructureStart(StructureFeatures.RUINED_PORTAL_STANDARD);
|
||||
|
||||
// Underground
|
||||
DefaultBiomeFeatures.addDefaultCarvers(builder);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.LAKES, Features.LAKE_WATER);
|
||||
|
||||
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
|
||||
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);
|
||||
DefaultBiomeFeatures.addDefaultOres(builder);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, BOPConfiguredFeatures.BLACK_SAND_DISK);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Vegetation
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.OMINOUS_MIRE_TREES);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.OMINOUS_WOODS_FLOWERS);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.BRAMBLE_EXTRA);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.DEAD_GRASS_5);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.STANDARD_GRASS_6);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.WATERGRASS_5);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.BROWN_MUSHROOM_NORMAL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_PUMPKIN);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.RED_MUSHROOM_NORMAL);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Other Features
|
||||
DefaultBiomeFeatures.addDefaultSprings(builder);
|
||||
DefaultBiomeFeatures.addSurfaceFreezing(builder);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.EVOKER, 50, 2, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SPIDER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SLIME, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ENDERMAN, 50, 1, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.WITCH, 25, 1, 1));
|
||||
}
|
||||
}
|
|
@ -31,9 +31,9 @@ public class RainforestBiome extends BiomeTemplate
|
|||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.JUNGLE).depth(0.15F).scale(0.35F).temperature(1.0F).downfall(1.0F);
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.JUNGLE).depth(0.15F).scale(0.35F).temperature(1.2F).downfall(2.0F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(0x3FDF99).waterFogColor(0x042F26).fogColor(12638463).skyColor(calculateSkyColor(1.0F)).grassColorOverride(0xA7E140).foliageColorOverride(0x88E140).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(0x3FDF99).waterFogColor(0x042F26).fogColor(12638463).skyColor(calculateSkyColor(1.2F)).grassColorOverride(0xA7E140).foliageColorOverride(0x88E140).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -29,9 +29,9 @@ public class RainforestClearingBiome extends BiomeTemplate
|
|||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.JUNGLE).depth(-0.125F).scale(-0.05F).temperature(1.0F).downfall(1.0F);
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.JUNGLE).depth(-0.125F).scale(-0.05F).temperature(1.2F).downfall(2.0F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(0x3FDF99).waterFogColor(0x042F26).fogColor(12638463).skyColor(calculateSkyColor(1.0F)).grassColorOverride(0xA7E140).foliageColorOverride(0x88E140).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(0x3FDF99).waterFogColor(0x042F26).fogColor(12638463).skyColor(calculateSkyColor(1.2F)).grassColorOverride(0xA7E140).foliageColorOverride(0x88E140).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -30,9 +30,9 @@ public class RainforestCliffsBiome extends BiomeTemplate
|
|||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.JUNGLE).depth(2.9F).scale(0.6F).temperature(1.0F).downfall(1.0F);
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.JUNGLE).depth(2.9F).scale(0.6F).temperature(1.2F).downfall(2.0F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(0x3FDF99).waterFogColor(0x042F26).fogColor(12638463).skyColor(calculateSkyColor(1.0F)).grassColorOverride(0xA7E140).foliageColorOverride(0x88E140).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(0x3FDF99).waterFogColor(0x042F26).fogColor(12638463).skyColor(calculateSkyColor(1.2F)).grassColorOverride(0xA7E140).foliageColorOverride(0x88E140).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -23,7 +23,7 @@ public class RedwoodForestBiome extends BiomeTemplate
|
|||
{
|
||||
public RedwoodForestBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.WARM_TEMPERATE, 3);
|
||||
this.addWeight(BOPClimates.WARM_TEMPERATE, 7);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -31,7 +31,7 @@ public class RedwoodForestBiome extends BiomeTemplate
|
|||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.FOREST).depth(0.25F).scale(0.05F).temperature(0.8F).downfall(0.6F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.8F)).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.8F)).grassColorOverride(0xB6D367).foliageColorOverride(0x97BF4E).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -59,6 +59,7 @@ public class RedwoodForestBiome extends BiomeTemplate
|
|||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.REDWOOD_FOREST_TREES);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.FERN_GRASS_16);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LARGE_FERN_14);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.BROWN_MUSHROOM_NORMAL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.RED_MUSHROOM_NORMAL);
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ public class RedwoodForestEdgeBiome extends BiomeTemplate
|
|||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.FOREST).depth(0.25F).scale(0.05F).temperature(0.8F).downfall(0.6F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.8F)).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.8F)).grassColorOverride(0xB6D367).foliageColorOverride(0x97BF4E).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -56,6 +56,7 @@ public class RedwoodForestEdgeBiome extends BiomeTemplate
|
|||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.REDWOOD_FOREST_EDGE_TREES);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.FERN_GRASS_8);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LARGE_FERN_7);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.BROWN_MUSHROOM_NORMAL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.RED_MUSHROOM_NORMAL);
|
||||
|
||||
|
|
|
@ -0,0 +1,87 @@
|
|||
/*******************************************************************************
|
||||
* Copyright 2014-2019, 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.enums.BOPClimates;
|
||||
import biomesoplenty.common.biome.BiomeTemplate;
|
||||
import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.world.biome.*;
|
||||
import net.minecraft.world.gen.GenerationStage;
|
||||
import net.minecraft.world.gen.feature.Features;
|
||||
import net.minecraft.world.gen.feature.structure.StructureFeatures;
|
||||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
|
||||
public class RedwoodHillsBiome extends BiomeTemplate
|
||||
{
|
||||
public RedwoodHillsBiome()
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.FOREST).depth(1.5F).scale(0.2F).temperature(0.8F).downfall(0.6F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.8F)).grassColorOverride(0xB6D367).foliageColorOverride(0x97BF4E).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureGeneration(BiomeGenerationSettings.Builder builder)
|
||||
{
|
||||
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(SurfaceBuilder.DEFAULT, SurfaceBuilder.CONFIG_PODZOL));
|
||||
|
||||
// Structures
|
||||
DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder);
|
||||
builder.addStructureStart(StructureFeatures.RUINED_PORTAL_STANDARD);
|
||||
|
||||
// Underground
|
||||
DefaultBiomeFeatures.addDefaultCarvers(builder);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.LAKES, Features.LAKE_WATER);
|
||||
|
||||
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
|
||||
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);
|
||||
DefaultBiomeFeatures.addDefaultOres(builder);
|
||||
DefaultBiomeFeatures.addDefaultSoftDisks(builder);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Vegetation
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.REDWOOD_HILLS_TREES);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.FLOWER_DEFAULT);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.FERN_GRASS_16);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LARGE_FERN_14);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.BROWN_MUSHROOM_NORMAL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.RED_MUSHROOM_NORMAL);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Other Features
|
||||
DefaultBiomeFeatures.addDefaultSprings(builder);
|
||||
DefaultBiomeFeatures.addSurfaceFreezing(builder);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SPIDER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE, 95, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE_VILLAGER, 5, 1, 1));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SKELETON, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.CREEPER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SLIME, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ENDERMAN, 10, 1, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.WITCH, 5, 1, 1));
|
||||
}
|
||||
}
|
|
@ -81,8 +81,6 @@ public class SeasonalForestBiome extends BiomeTemplate
|
|||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(ModEntities.turkey, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(ModEntities.deer, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.WOLF, 5, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.FOX, 8, 2, 4));
|
||||
builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8));
|
||||
|
|
|
@ -0,0 +1,83 @@
|
|||
/*******************************************************************************
|
||||
* Copyright 2014-2019, 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.enums.BOPClimates;
|
||||
import biomesoplenty.common.biome.BiomeTemplate;
|
||||
import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.world.biome.*;
|
||||
import net.minecraft.world.gen.GenerationStage;
|
||||
import net.minecraft.world.gen.feature.Features;
|
||||
import net.minecraft.world.gen.feature.structure.StructureFeatures;
|
||||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
|
||||
public class SilkgladeNestBiome extends BiomeTemplate
|
||||
{
|
||||
public SilkgladeNestBiome()
|
||||
{
|
||||
this.setBeachBiome(null);
|
||||
this.setRiverBiome(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.FOREST).depth(0.5F).scale(0.2F).temperature(0.75F).downfall(0.2F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(0x82826A).waterFogColor(0x0D0F09).fogColor(12638463).skyColor(calculateSkyColor(0.75F)).grassColorOverride(0xB2B39F).foliageColorOverride(0xDEE1C6).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureGeneration(BiomeGenerationSettings.Builder builder)
|
||||
{
|
||||
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(SurfaceBuilder.DEFAULT, SurfaceBuilder.CONFIG_GRASS));
|
||||
|
||||
// Structures
|
||||
builder.addStructureStart(StructureFeatures.SWAMP_HUT);
|
||||
DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder);
|
||||
builder.addStructureStart(StructureFeatures.RUINED_PORTAL_SWAMP);
|
||||
|
||||
// Underground
|
||||
DefaultBiomeFeatures.addDefaultCarvers(builder);
|
||||
DefaultBiomeFeatures.addDefaultLakes(builder);
|
||||
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
|
||||
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);
|
||||
DefaultBiomeFeatures.addDefaultOres(builder);
|
||||
DefaultBiomeFeatures.addDefaultSoftDisks(builder);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Vegetation
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.SILKGLADE_NEST_TREES);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.STANDARD_GRASS_12);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.TOADSTOOL_NORMAL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.BROWN_MUSHROOM_NORMAL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_PUMPKIN);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.RED_MUSHROOM_NORMAL);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Other Features
|
||||
DefaultBiomeFeatures.addDefaultSprings(builder);
|
||||
DefaultBiomeFeatures.addSurfaceFreezing(builder);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SPIDER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.CAVE_SPIDER, 50, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SLIME, 100, 4, 4));
|
||||
}
|
||||
}
|
|
@ -78,7 +78,6 @@ public class SnowyConiferousForestBiome extends BiomeTemplate
|
|||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(ModEntities.deer, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.RABBIT, 4, 2, 3));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.WOLF, 5, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.FOX, 8, 2, 4));
|
||||
|
|
|
@ -72,7 +72,6 @@ public class SnowyFirClearingBiome extends BiomeTemplate
|
|||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(ModEntities.deer, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.RABBIT, 4, 2, 3));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.WOLF, 5, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.FOX, 8, 2, 4));
|
||||
|
|
|
@ -77,7 +77,6 @@ public class SnowyMapleForestBiome extends BiomeTemplate
|
|||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(ModEntities.deer, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.RABBIT, 4, 2, 3));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.WOLF, 5, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.FOX, 8, 2, 4));
|
||||
|
|
|
@ -54,11 +54,6 @@ public class TundraBasinBiome extends BiomeTemplate
|
|||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Vegetation
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.WASTELAND_GRASS_1);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Other Features
|
||||
DefaultBiomeFeatures.addDefaultSprings(builder);
|
||||
DefaultBiomeFeatures.addSurfaceFreezing(builder);
|
||||
|
|
|
@ -1,91 +0,0 @@
|
|||
package biomesoplenty.common.entity;
|
||||
|
||||
import biomesoplenty.api.sound.BOPSounds;
|
||||
import biomesoplenty.init.ModEntities;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.entity.*;
|
||||
import net.minecraft.entity.ai.attributes.AttributeModifierMap;
|
||||
import net.minecraft.entity.ai.attributes.Attributes;
|
||||
import net.minecraft.entity.ai.goal.*;
|
||||
import net.minecraft.entity.passive.AnimalEntity;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.Items;
|
||||
import net.minecraft.item.crafting.Ingredient;
|
||||
import net.minecraft.util.DamageSource;
|
||||
import net.minecraft.util.SoundEvent;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.server.ServerWorld;
|
||||
|
||||
public class DeerEntity extends AnimalEntity {
|
||||
public DeerEntity(EntityType<? extends DeerEntity> type, World worldIn)
|
||||
{
|
||||
super(type, worldIn);
|
||||
}
|
||||
|
||||
private static final Ingredient FOOD_ITEMS = Ingredient.of(Items.WHEAT_SEEDS, Items.MELON_SEEDS, Items.PUMPKIN_SEEDS, Items.BEETROOT_SEEDS);
|
||||
|
||||
@Override
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new SwimGoal(this));
|
||||
this.goalSelector.addGoal(1, new PanicGoal(this, 2.0D));
|
||||
this.goalSelector.addGoal(2, new BreedGoal(this, 1.0D));
|
||||
this.goalSelector.addGoal(3, new TemptGoal(this, 0.8D, false, FOOD_ITEMS));
|
||||
this.goalSelector.addGoal(4, new FollowParentGoal(this, 1.25D));
|
||||
this.goalSelector.addGoal(5, new WaterAvoidingRandomWalkingGoal(this, 1.0D));
|
||||
this.goalSelector.addGoal(6, new LookAtGoal(this, PlayerEntity.class, 6.0F));
|
||||
this.goalSelector.addGoal(7, new LookRandomlyGoal(this));
|
||||
}
|
||||
|
||||
public static AttributeModifierMap.MutableAttribute createAttributes() {
|
||||
return MobEntity.createMobAttributes().add(Attributes.MAX_HEALTH, 9.0D).add(Attributes.MOVEMENT_SPEED, (double)0.2F);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected SoundEvent getAmbientSound() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected SoundEvent getHurtSound(DamageSource damageSourceIn) {
|
||||
return BOPSounds.deer_hurt;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected SoundEvent getDeathSound() {
|
||||
return BOPSounds.deer_dead;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void playStepSound(BlockPos pos, BlockState blockIn) {
|
||||
this.playSound(BOPSounds.deer_step, 0.15F, 1.0F);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the volume for the sounds this mob makes.
|
||||
*/
|
||||
@Override
|
||||
protected float getSoundVolume() {
|
||||
return 0.4F;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DeerEntity getBreedOffspring(ServerWorld p_241840_1_, AgeableEntity p_241840_2_) {
|
||||
return ModEntities.deer.create(p_241840_1_);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected float getStandingEyeHeight(Pose poseIn, EntitySize sizeIn) {
|
||||
return this.isBaby() ? sizeIn.height * 0.95F : 1.3F;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the parameter is an item which this animal can be fed to breed it (wheat, carrots or seeds depending on
|
||||
* the animal type)
|
||||
*/
|
||||
@Override
|
||||
public boolean isFood(ItemStack stack) {
|
||||
return FOOD_ITEMS.test(stack);
|
||||
}
|
||||
}
|
|
@ -1,159 +0,0 @@
|
|||
package biomesoplenty.common.entity;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.mojang.blaze3d.matrix.MatrixStack;
|
||||
import com.mojang.blaze3d.vertex.IVertexBuilder;
|
||||
import net.minecraft.client.renderer.entity.model.AgeableModel;
|
||||
import net.minecraft.client.renderer.model.ModelRenderer;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public class DeerModel<T extends Entity> extends AgeableModel<T>
|
||||
{
|
||||
private final ModelRenderer head;
|
||||
private final ModelRenderer snout;
|
||||
private final ModelRenderer neck;
|
||||
private final ModelRenderer body;
|
||||
private final ModelRenderer tail;
|
||||
private final ModelRenderer ear0;
|
||||
private final ModelRenderer ear1;
|
||||
private final ModelRenderer leg0;
|
||||
private final ModelRenderer leg1;
|
||||
private final ModelRenderer leg2;
|
||||
private final ModelRenderer leg3;
|
||||
private final ModelRenderer antler0;
|
||||
private final ModelRenderer antler1;
|
||||
private boolean scaleHead = true;
|
||||
private float yHeadOffset = 14.0F;
|
||||
private float zHeadOffset = 3.0F;
|
||||
private float babyHeadScale = 2.0F;
|
||||
private float babyBodyScale = 2.0F;
|
||||
private float bodyYOffset = 24.0F;
|
||||
|
||||
public DeerModel()
|
||||
{
|
||||
this.texWidth = 128;
|
||||
this.texHeight = 32;
|
||||
|
||||
this.head = new ModelRenderer(this, 0, 0);
|
||||
this.head.addBox(-3F, -3F, -6F, 6, 6, 6);
|
||||
this.head.setPos(0F, 3F, -9F);
|
||||
|
||||
this.snout = new ModelRenderer(this, 24, 0);
|
||||
this.snout.addBox(-2F, -1F, -10F, 4, 4, 4);
|
||||
|
||||
this.ear0 = new ModelRenderer(this, 32, 16);
|
||||
this.ear0.addBox(-1F, -8F, -2F, 3, 6, 1);
|
||||
this.ear0.zRot = -1.047198F;
|
||||
|
||||
this.ear1 = new ModelRenderer(this, 32, 23);
|
||||
this.ear1.addBox(-2F, -8F, -2F, 3, 6, 1);
|
||||
this.ear1.zRot = 1.047198F;
|
||||
|
||||
this.antler0 = new ModelRenderer(this, 70, 18);
|
||||
this.antler0.addBox(-7F, -14F, -2F, 8, 12, 1);
|
||||
this.antler0.xRot = -0.5235988F;
|
||||
this.antler0.yRot = -1.047198F;
|
||||
|
||||
this.antler1 = new ModelRenderer(this, 88, 18);
|
||||
this.antler1.addBox(-1F, -14F, -2F, 8, 12, 1);
|
||||
this.antler1.xRot = -0.5235988F;
|
||||
this.antler1.yRot = 1.047198F;
|
||||
|
||||
this.head.addChild(snout);
|
||||
this.head.addChild(ear0);
|
||||
this.head.addChild(ear1);
|
||||
this.head.addChild(antler0);
|
||||
this.head.addChild(antler1);
|
||||
|
||||
this.neck = new ModelRenderer(this, 0, 12);
|
||||
this.neck.addBox(-2F, 0F, -9F, 4, 6, 9);
|
||||
this.neck.setPos(0F, 6F, -2F);
|
||||
this.neck.xRot = -0.6283185F;
|
||||
|
||||
this.body = new ModelRenderer(this, 40, 0);
|
||||
this.body.addBox(-4F, -9F, -7F, 8, 18, 7);
|
||||
this.body.setPos(0F, 5F, 1F);
|
||||
this.body.xRot = 1.570796F;
|
||||
|
||||
this.leg0 = new ModelRenderer(this, 70, 0);
|
||||
this.leg0.addBox(0F, 0F, 0F, 3, 12, 3);
|
||||
this.leg0.setPos(-4F, 12F, 6F);
|
||||
|
||||
this.leg1 = new ModelRenderer(this, 82, 0);
|
||||
this.leg1.addBox(-3F, 0F, 0F, 3, 12, 3);
|
||||
this.leg1.setPos(4F, 12F, 6F);
|
||||
|
||||
this.leg2 = new ModelRenderer(this, 94, 0);
|
||||
this.leg2.addBox(0F, 0F, 0F, 3, 12, 3);
|
||||
this.leg2.setPos(-4F, 12F, -7F);
|
||||
|
||||
this.leg3 = new ModelRenderer(this, 106, 0);
|
||||
this.leg3.addBox(-3F, 0F, 0F, 3, 12, 3);
|
||||
this.leg3.setPos(4F, 12F, -7F);
|
||||
|
||||
this.tail = new ModelRenderer(this, 32, 8);
|
||||
this.tail.addBox(0F, 0F, 0F, 2, 6, 2);
|
||||
this.tail.setPos(-1F, 7F, 8F);
|
||||
this.tail.xRot = 0.4363323F;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Iterable<ModelRenderer> headParts() {
|
||||
return ImmutableList.of(this.head);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Iterable<ModelRenderer> bodyParts() {
|
||||
return ImmutableList.of(this.body, this.neck, this.leg0, this.leg1, this.leg2, this.leg3, this.tail);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setupAnim(T entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {
|
||||
this.head.xRot = headPitch * ((float)Math.PI / 180F);
|
||||
this.head.yRot = netHeadYaw * ((float)Math.PI / 180F);
|
||||
this.leg0.xRot = MathHelper.cos(limbSwing * 0.6662F) * 1.4F * limbSwingAmount;
|
||||
this.leg1.xRot = MathHelper.cos(limbSwing * 0.6662F + (float)Math.PI) * 1.4F * limbSwingAmount;
|
||||
this.leg2.xRot = MathHelper.cos(limbSwing * 0.6662F + (float)Math.PI) * 1.4F * limbSwingAmount;
|
||||
this.leg3.xRot = MathHelper.cos(limbSwing * 0.6662F) * 1.4F * limbSwingAmount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderToBuffer(MatrixStack matrixStackIn, IVertexBuilder bufferIn, int packedLightIn, int packedOverlayIn, float red, float green, float blue, float alpha) {
|
||||
if (this.young)
|
||||
{
|
||||
matrixStackIn.pushPose();
|
||||
if (this.scaleHead)
|
||||
{
|
||||
float f = 1.5F / this.babyHeadScale;
|
||||
matrixStackIn.scale(f, f, f);
|
||||
}
|
||||
|
||||
matrixStackIn.translate(0.0D, (double)(this.yHeadOffset / 16.0F), (double)(this.zHeadOffset / 16.0F));
|
||||
this.headParts().forEach((p_228230_8_) -> {
|
||||
p_228230_8_.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn, red, green, blue, alpha);
|
||||
});
|
||||
matrixStackIn.popPose();
|
||||
matrixStackIn.pushPose();
|
||||
float f1 = 1.0F / this.babyBodyScale;
|
||||
matrixStackIn.scale(f1, f1, f1);
|
||||
matrixStackIn.translate(0.0D, (double)(this.bodyYOffset / 16.0F), 0.0D);
|
||||
this.bodyParts().forEach((p_228229_8_) -> {
|
||||
p_228229_8_.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn, red, green, blue, alpha);
|
||||
});
|
||||
matrixStackIn.popPose();
|
||||
}
|
||||
else
|
||||
{
|
||||
this.headParts().forEach((p_228228_8_) -> {
|
||||
p_228228_8_.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn, red, green, blue, alpha);
|
||||
});
|
||||
this.bodyParts().forEach((p_228227_8_) -> {
|
||||
p_228227_8_.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn, red, green, blue, alpha);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
package biomesoplenty.common.entity;
|
||||
|
||||
import net.minecraft.client.renderer.entity.EntityRendererManager;
|
||||
import net.minecraft.client.renderer.entity.MobRenderer;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public class DeerRenderer extends MobRenderer<DeerEntity, DeerModel<DeerEntity>> {
|
||||
private static final ResourceLocation DEER_LOCATION = new ResourceLocation("biomesoplenty:textures/entity/deer.png");
|
||||
private static final ResourceLocation FAWN_LOCATION = new ResourceLocation("biomesoplenty:textures/entity/fawn.png");
|
||||
|
||||
public DeerRenderer(EntityRendererManager renderManagerIn) {
|
||||
super(renderManagerIn, new DeerModel<>(), 0.7F);
|
||||
}
|
||||
|
||||
public ResourceLocation getTextureLocation(DeerEntity entity) {
|
||||
if (entity.getAge() < 0)
|
||||
{
|
||||
return FAWN_LOCATION;
|
||||
}
|
||||
else
|
||||
{
|
||||
return DEER_LOCATION;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,120 +0,0 @@
|
|||
package biomesoplenty.common.entity;
|
||||
|
||||
import biomesoplenty.api.sound.BOPSounds;
|
||||
import biomesoplenty.init.ModEntities;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.entity.*;
|
||||
import net.minecraft.entity.ai.attributes.AttributeModifierMap;
|
||||
import net.minecraft.entity.ai.attributes.Attributes;
|
||||
import net.minecraft.entity.ai.goal.*;
|
||||
import net.minecraft.entity.passive.AnimalEntity;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.Items;
|
||||
import net.minecraft.item.crafting.Ingredient;
|
||||
import net.minecraft.pathfinding.PathNodeType;
|
||||
import net.minecraft.util.DamageSource;
|
||||
import net.minecraft.util.SoundEvent;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraft.util.math.vector.Vector3d;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.server.ServerWorld;
|
||||
|
||||
public class TurkeyEntity extends AnimalEntity {
|
||||
private static final Ingredient FOOD_ITEMS = Ingredient.of(Items.WHEAT_SEEDS, Items.MELON_SEEDS, Items.PUMPKIN_SEEDS, Items.BEETROOT_SEEDS);
|
||||
public float flap;
|
||||
public float flapSpeed;
|
||||
public float oFlapSpeed;
|
||||
public float oFlap;
|
||||
public float flapping = 1.0F;
|
||||
|
||||
public TurkeyEntity(EntityType<? extends TurkeyEntity> type, World worldIn) {
|
||||
super(type, worldIn);
|
||||
this.setPathfindingMalus(PathNodeType.WATER, 0.0F);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new SwimGoal(this));
|
||||
this.goalSelector.addGoal(1, new PanicGoal(this, 1.4D));
|
||||
this.goalSelector.addGoal(2, new BreedGoal(this, 1.0D));
|
||||
this.goalSelector.addGoal(3, new TemptGoal(this, 1.0D, false, FOOD_ITEMS));
|
||||
this.goalSelector.addGoal(4, new FollowParentGoal(this, 1.1D));
|
||||
this.goalSelector.addGoal(5, new WaterAvoidingRandomWalkingGoal(this, 1.0D));
|
||||
this.goalSelector.addGoal(6, new LookAtGoal(this, PlayerEntity.class, 6.0F));
|
||||
this.goalSelector.addGoal(7, new LookRandomlyGoal(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected float getStandingEyeHeight(Pose poseIn, EntitySize sizeIn) {
|
||||
return this.isBaby() ? sizeIn.height * 0.85F : sizeIn.height * 0.92F;
|
||||
}
|
||||
|
||||
public static AttributeModifierMap.MutableAttribute createAttributes() {
|
||||
return MobEntity.createMobAttributes().add(Attributes.MAX_HEALTH, 7.0D).add(Attributes.MOVEMENT_SPEED, (double)0.25F);
|
||||
}
|
||||
|
||||
/**
|
||||
* Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons
|
||||
* use this to react to sunlight and start to burn.
|
||||
*/
|
||||
@Override
|
||||
public void aiStep() {
|
||||
super.aiStep();
|
||||
this.oFlap = this.flap;
|
||||
this.oFlapSpeed = this.flapSpeed;
|
||||
this.flapSpeed = (float)((double)this.flapSpeed + (double)(this.onGround ? -1 : 4) * 0.3D);
|
||||
this.flapSpeed = MathHelper.clamp(this.flapSpeed, 0.0F, 1.0F);
|
||||
if (!this.onGround && this.flapping < 1.0F) {
|
||||
this.flapping = 1.0F;
|
||||
}
|
||||
|
||||
this.flapping = (float)((double)this.flapping * 0.9D);
|
||||
Vector3d vec3d = this.getDeltaMovement();
|
||||
if (!this.onGround && vec3d.y < 0.0D) {
|
||||
this.setDeltaMovement(vec3d.multiply(1.0D, 0.6D, 1.0D));
|
||||
}
|
||||
|
||||
this.flap += this.flapping * 2.0F;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean causeFallDamage(float distance, float damageMultiplier) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected SoundEvent getAmbientSound() {
|
||||
return BOPSounds.turkey_ambient;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected SoundEvent getHurtSound(DamageSource damageSourceIn) {
|
||||
return BOPSounds.turkey_hurt;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected SoundEvent getDeathSound() {
|
||||
return BOPSounds.turkey_dead;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void playStepSound(BlockPos pos, BlockState blockIn) {
|
||||
this.playSound(BOPSounds.turkey_step, 0.15F, 1.0F);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TurkeyEntity getBreedOffspring(ServerWorld p_241840_1_, AgeableEntity p_241840_2_) {
|
||||
return ModEntities.turkey.create(p_241840_1_);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the parameter is an item which this animal can be fed to breed it (wheat, carrots or seeds depending on
|
||||
* the animal type)
|
||||
*/
|
||||
@Override
|
||||
public boolean isFood(ItemStack stack) {
|
||||
return FOOD_ITEMS.test(stack);
|
||||
}
|
||||
}
|
|
@ -1,137 +0,0 @@
|
|||
package biomesoplenty.common.entity;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.mojang.blaze3d.matrix.MatrixStack;
|
||||
import com.mojang.blaze3d.vertex.IVertexBuilder;
|
||||
import net.minecraft.client.renderer.entity.model.AgeableModel;
|
||||
import net.minecraft.client.renderer.model.ModelRenderer;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public class TurkeyModel<T extends Entity> extends AgeableModel<T>
|
||||
{
|
||||
private final ModelRenderer head;
|
||||
private final ModelRenderer chest;
|
||||
private final ModelRenderer body;
|
||||
private final ModelRenderer leg0;
|
||||
private final ModelRenderer leg1;
|
||||
private final ModelRenderer wing0;
|
||||
private final ModelRenderer wing1;
|
||||
private final ModelRenderer beak;
|
||||
private final ModelRenderer wattle;
|
||||
private final ModelRenderer plume;
|
||||
private boolean scaleHead = true;
|
||||
private float yHeadOffset = 12.0F;
|
||||
private float zHeadOffset = 3.0F;
|
||||
private float babyHeadScale = 2.0F;
|
||||
private float babyBodyScale = 2.0F;
|
||||
private float bodyYOffset = 24.0F;
|
||||
|
||||
public TurkeyModel()
|
||||
{
|
||||
this.texWidth = 128;
|
||||
this.texHeight = 64;
|
||||
|
||||
this.chest = new ModelRenderer(this, 0, 22);
|
||||
this.chest.addBox(-4F, -4F, -4F, 8, 5, 5);
|
||||
this.chest.setPos(0F, 14F, -3F);
|
||||
|
||||
this.head = new ModelRenderer(this, 0, 32);
|
||||
this.head.addBox(-2F, -10F, -5F, 4, 10, 3);
|
||||
this.head.setPos(0F, 14F, -3F);
|
||||
|
||||
this.beak = new ModelRenderer(this, 0, 45);
|
||||
this.beak.addBox(-1F, -8F, -7F, 2, 1, 2);
|
||||
this.beak.setPos(0F, 14F, -3F);
|
||||
|
||||
this.wattle = new ModelRenderer(this, 14, 32);
|
||||
this.wattle.addBox(-1F, -7F, -6F, 2, 7, 1);
|
||||
this.wattle.setPos(0F, 14F, -3F);
|
||||
|
||||
this.body = new ModelRenderer(this, 0, 0);
|
||||
this.body.addBox(-6F, 0F, -6F, 12, 8, 14);
|
||||
this.body.setPos(0F, 10F, 0F);
|
||||
|
||||
this.wing0 = new ModelRenderer(this, 26, 22);
|
||||
this.wing0.addBox(-1F, 0F, 0F, 1, 6, 8);
|
||||
this.wing0.setPos(-6F, 11F, -4F);
|
||||
|
||||
this.wing1 = new ModelRenderer(this, 26, 22);
|
||||
this.wing1.addBox(0F, 0F, 0F, 1, 6, 8);
|
||||
this.wing1.setPos(6F, 11F, -4F);
|
||||
|
||||
this.plume = new ModelRenderer(this, 52, 0);
|
||||
this.plume.addBox(-11F, -13F, 6F, 22, 14, 0);
|
||||
this.plume.setPos(0F, 12F, 0F);
|
||||
this.plume.xRot = -0.2617994F;
|
||||
|
||||
this.leg0 = new ModelRenderer(this, 44, 22);
|
||||
this.leg0.addBox(-5F, 0F, -5F, 5, 6, 4);
|
||||
this.leg0.setPos(0F, 18F, 4F);
|
||||
|
||||
this.leg1 = new ModelRenderer(this, 44, 22);
|
||||
this.leg1.addBox(0F, 0F, -5F, 5, 6, 4);
|
||||
this.leg1.setPos(0F, 18F, 4F);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Iterable<ModelRenderer> headParts() {
|
||||
return ImmutableList.of(this.head, this.beak, this.wattle);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Iterable<ModelRenderer> bodyParts() {
|
||||
return ImmutableList.of(this.body, this.chest, this.leg0, this.leg1, this.wing0, this.wing1, this.plume);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setupAnim(T entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {
|
||||
this.chest.xRot = (headPitch * ((float)Math.PI / 180F)) + 0.7853982F;
|
||||
this.chest.yRot = netHeadYaw * ((float)Math.PI / 180F);
|
||||
this.head.xRot = this.chest.xRot - 0.7853982F;
|
||||
this.head.yRot = this.chest.yRot;
|
||||
this.beak.xRot = this.chest.xRot - 0.7853982F;
|
||||
this.beak.yRot = this.chest.yRot;
|
||||
this.wattle.xRot = this.chest.xRot - 0.7853982F;
|
||||
this.wattle.yRot = this.chest.yRot;
|
||||
this.leg0.xRot = MathHelper.cos(limbSwing * 0.6662F) * 1.4F * limbSwingAmount;
|
||||
this.leg1.xRot = MathHelper.cos(limbSwing * 0.6662F + (float)Math.PI) * 1.4F * limbSwingAmount;
|
||||
this.wing0.zRot = ageInTicks;
|
||||
this.wing1.zRot = -ageInTicks;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderToBuffer(MatrixStack matrixStackIn, IVertexBuilder bufferIn, int packedLightIn, int packedOverlayIn, float red, float green, float blue, float alpha) {
|
||||
if (this.young) {
|
||||
matrixStackIn.pushPose();
|
||||
if (this.scaleHead) {
|
||||
float f = 1.5F / this.babyHeadScale;
|
||||
matrixStackIn.scale(f, f, f);
|
||||
}
|
||||
|
||||
matrixStackIn.translate(0.0D, (double)(this.yHeadOffset / 16.0F), (double)(this.zHeadOffset / 16.0F));
|
||||
this.headParts().forEach((p_228230_8_) -> {
|
||||
p_228230_8_.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn, red, green, blue, alpha);
|
||||
});
|
||||
matrixStackIn.popPose();
|
||||
matrixStackIn.pushPose();
|
||||
float f1 = 1.0F / this.babyBodyScale;
|
||||
matrixStackIn.scale(f1, f1, f1);
|
||||
matrixStackIn.translate(0.0D, (double)(this.bodyYOffset / 16.0F), 0.0D);
|
||||
this.bodyParts().forEach((p_228229_8_) -> {
|
||||
if (p_228229_8_ != this.plume) { p_228229_8_.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn, red, green, blue, alpha); }
|
||||
});
|
||||
matrixStackIn.popPose();
|
||||
} else {
|
||||
this.headParts().forEach((p_228228_8_) -> {
|
||||
p_228228_8_.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn, red, green, blue, alpha);
|
||||
});
|
||||
this.bodyParts().forEach((p_228227_8_) -> {
|
||||
p_228227_8_.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn, red, green, blue, alpha);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
package biomesoplenty.common.entity;
|
||||
|
||||
import net.minecraft.client.renderer.entity.EntityRendererManager;
|
||||
import net.minecraft.client.renderer.entity.MobRenderer;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public class TurkeyRenderer extends MobRenderer<TurkeyEntity, TurkeyModel<TurkeyEntity>> {
|
||||
private static final ResourceLocation TURKEY_LOCATION = new ResourceLocation("biomesoplenty:textures/entity/turkey.png");
|
||||
|
||||
public TurkeyRenderer(EntityRendererManager renderManagerIn) {
|
||||
super(renderManagerIn, new TurkeyModel<>(), 0.6F);
|
||||
}
|
||||
|
||||
public ResourceLocation getTextureLocation(TurkeyEntity entity) {
|
||||
return TURKEY_LOCATION;
|
||||
}
|
||||
|
||||
protected float getBob(TurkeyEntity livingBase, float partialTicks) {
|
||||
float f = MathHelper.lerp(partialTicks, livingBase.oFlap, livingBase.flap);
|
||||
float f1 = MathHelper.lerp(partialTicks, livingBase.oFlapSpeed, livingBase.flapSpeed);
|
||||
return (MathHelper.sin(f) + 1.0F) * f1;
|
||||
}
|
||||
}
|
|
@ -122,11 +122,13 @@ public class BOPConfiguredFeatures
|
|||
public static final ConfiguredFeature<?, ?> JADE_CLIFFS_TREES = register("jade_cliffs_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(TALL_SPRUCE_TREE.weighted(0.075F), Features.PINE.weighted(0.025F)), SPRUCE_BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(35, 0.1F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> LAVENDER_FIELD_TREES = register("lavender_field_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(FLOWERING_OAK_TREE_BEES.weighted(0.2F), BIG_FLOWERING_OAK_TREE.weighted(0.1F), BIG_JACARANDA_TREE.weighted(0.1F)), JACARANDA_TREE_BEES)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(1, 0.2F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> LUSH_DESERT_TREES = register("lush_desert_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(ACACIA_BUSH.weighted(0.4F), SPARSE_ACACIA_TREE.weighted(0.2F)), ACACIA_TWIGLET_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(5, 0.4F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> MEADOW_TREES = register("meadow_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(TALL_SPRUCE_TREE_BEES.weighted(0.25F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(5, 0.1F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> MEADOW_TREES = register("meadow_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(TALL_SPRUCE_TREE_BEES.weighted(0.1F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(4, 0.1F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> MEADOW_FOREST_TREES = register("meadow_forest_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(BUSH.weighted(0.25F)), TALL_SPRUCE_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(8, 0.1F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> MUSKEG_TREES = register("muskeg_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(DARK_OAK_TWIGLET_TREE.weighted(0.4F), DEAD_TREE.weighted(0.3F), DYING_TREE.weighted(0.075F), DEAD_TWIGLET_TREE_TALL.weighted(0.1F)), DEAD_TWIGLET_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(1, 0.2F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> MYSTIC_GROVE_TREES = register("mystic_grove_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(BIG_FLOWERING_OAK_TREE.weighted(0.15F), JACARANDA_TREE.weighted(0.25F), BIG_MAGIC_TREE.weighted(0.3F)), MAGIC_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(10, 0.5F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> MYSTIC_PLAINS_TREES = register("mystic_plains_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(FLOWERING_OAK_TREE.weighted(0.1F), JACARANDA_TREE.weighted(0.25F)), MAGIC_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(1, 0.2F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> OMINOUS_WOODS_TREES = register("ominous_woods_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(DEAD_TREE.weighted(0.05F), DYING_TREE.weighted(0.15F), WILLOW_TREE.weighted(0.15F), TALL_UMBRAN_TREE.weighted(0.7F)), UMBRAN_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(7, 0.5F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> OMINOUS_WOODS_TREES = register("ominous_woods_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(DEAD_TREE.weighted(0.05F), DYING_TREE.weighted(0.15F), TALL_UMBRAN_TREE.weighted(0.7F)), UMBRAN_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(7, 0.5F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> OMINOUS_MIRE_TREES = register("ominous_mire_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(DEAD_TREE.weighted(0.1F), DYING_TREE.weighted(0.2F), UMBRAN_TREE.weighted(0.4F)), WILLOW_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(10, 0.5F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> ORCHARD_TREES = register("orchard_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(BIG_FLOWERING_OAK_TREE.weighted(0.1F)), FLOWERING_OAK_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(2, 0.3F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> ORIGIN_VALLEY_TREES = register("origin_valley_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(BIG_ORIGIN_TREE.weighted(0.1F)), ORIGIN_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(BOPPlacements.ALPHA_TREE.configured(NoPlacementConfig.INSTANCE)));
|
||||
public static final ConfiguredFeature<?, ?> OVERGROWN_FUNGAL_JUNGLE_TREES = register("overgrown_fungal_jungle_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(GIANT_TREE.weighted(0.04F), BIG_OAK_TREE.weighted(0.4F), Features.OAK.weighted(0.2F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(20, 0.6F, 1))));
|
||||
|
@ -135,14 +137,16 @@ public class BOPConfiguredFeatures
|
|||
public static final ConfiguredFeature<?, ?> RAINFOREST_TREES = register("rainforest_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(Features.JUNGLE_TREE.weighted(0.1F)), MAHOGANY_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(12, 0.3F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> RAINFOREST_CLEARING_TREES = register("rainforest_clearing_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(SPARSE_OAK_TREE.weighted(0.3F), BIG_OAK_TREE.weighted(0.1F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(1, 0.3F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> RAINFOREST_CLIFFS_TREES = register("rainforest_cliffs_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(JUNGLE_TWIGLET_TREE.weighted(0.4F), MAHOGANY_TREE.weighted(0.05F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(20, 0.4F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> REDWOOD_FOREST_EDGE_TREES = register("redwood_forest_edge_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(REDWOOD_TREE.weighted(0.3F), REDWOOD_TREE_MEDIUM.weighted(0.1F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(5, 0.3F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> REDWOOD_FOREST_TREES = register("redwood_forest_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(REDWOOD_TREE.weighted(0.1F), REDWOOD_TREE_MEDIUM.weighted(0.3F), REDWOOD_TREE_LARGE.weighted(0.5F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(18, 0.2F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> REDWOOD_FOREST_EDGE_TREES = register("redwood_forest_edge_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(Features.OAK.weighted(0.2F), SPARSE_OAK_TREE.weighted(0.1F), REDWOOD_TREE.weighted(0.3F), REDWOOD_TREE_MEDIUM.weighted(0.1F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(6, 0.3F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> REDWOOD_FOREST_TREES = register("redwood_forest_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(BUSH.weighted(0.1F), REDWOOD_TREE.weighted(0.3F), REDWOOD_TREE_LARGE.weighted(0.5F)), REDWOOD_TREE_MEDIUM)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(18, 0.2F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> REDWOOD_HILLS_TREES = register("redwood_hills_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(BUSH.weighted(0.1F), REDWOOD_TREE_MEDIUM.weighted(0.3F)), REDWOOD_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(24, 0.2F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> SEASONAL_FOREST_TREES = register("seasonal_forest_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(Features.OAK.weighted(0.05F), BIG_OAK_TREE.weighted(0.025F), MAPLE_TREE.weighted(0.2F), YELLOW_AUTUMN_TREE.weighted(0.3F), BIG_MAPLE_TREE.weighted(0.1F), BIG_YELLOW_AUTUMN_TREE.weighted(0.1F), BIG_ORANGE_AUTUMN_TREE.weighted(0.1F)), ORANGE_AUTUMN_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(10, 0.3F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> SEASONAL_PUMPKIN_PATCH_TREES = register("seasonal_pumpkin_patch_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(BUSH.weighted(0.2F), YELLOW_AUTUMN_TREE.weighted(0.1F), BIG_YELLOW_AUTUMN_TREE.weighted(0.05F)), TWIGLET_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(6, 0.5F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> SHROOMY_WETLAND_TREES = register("shroomy_wetland_trees", DARK_OAK_TWIGLET_TREE.decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(3, 0.1F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> SHRUBLAND_TREES = register("shrubland_trees", BUSH.decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(1, 0.05F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> SHRUBLAND_HILLS_TREES = register("shrubland_hills_trees", BUSH.decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(10, 0.05F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> SILKGLADE_TREES = register("silkglade_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(Features.SWAMP_TREE.weighted(0.05F), BIRCH_POPLAR.weighted(0.15F), COBWEB_BUSH.weighted(0.2F), SMALL_DEAD_TREE.weighted(0.5F), SILK_TREE.weighted(0.2F), FULL_COBWEB_BUSH.weighted(0.05F), FULL_SILK_TREE.weighted(0.05F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(5, 0.4F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> SILKGLADE_NEST_TREES = register("silkglade_nest_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(COBWEB_BUSH.weighted(0.3F), SMALL_DEAD_TREE.weighted(0.1F), SILK_TREE.weighted(0.3F), FULL_COBWEB_BUSH.weighted(0.2F), FULL_SILK_TREE.weighted(0.2F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(25, 0.5F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> SNOWY_CONIFEROUS_FOREST_TREES = register("snowy_coniferous_forest_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(FIR_TREE.weighted(0.4F), MAPLE_TREE.weighted(0.1F)), FIR_TREE_LARGE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(6, 0.1F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> SNOWY_MAPLE_FOREST_TREES = register("snowy_maple_forest_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(FIR_TREE.weighted(0.025F), FIR_TREE_SMALL.weighted(0.1F), BIG_MAPLE_TREE.weighted(0.3F)), MAPLE_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(10, 0.1F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> TROPICS_TREES = register("tropics_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(JUNGLE_TWIGLET_TREE.weighted(0.3F), FLOWERING_BUSH.weighted(0.1F)), PALM_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(11, 0.2F, 1))));
|
||||
|
@ -191,10 +195,8 @@ public class BOPConfiguredFeatures
|
|||
public static final ConfiguredFeature<?, ?> FERN_GRASS_8 = register("fern_grass_8", BOPFeatures.FERN_GRASS.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(8)));
|
||||
public static final ConfiguredFeature<?, ?> FERN_GRASS_16 = register("fern_grass_16", BOPFeatures.FERN_GRASS.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(16)));
|
||||
|
||||
public static final ConfiguredFeature<?, ?> WASTELAND_GRASS_1 = register("wasteland_grass_1", BOPFeatures.WASTELAND_GRASS.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(1)));
|
||||
public static final ConfiguredFeature<?, ?> WASTELAND_GRASS_2 = register("wasteland_grass_2", BOPFeatures.WASTELAND_GRASS.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(2)));
|
||||
|
||||
public static final ConfiguredFeature<?, ?> BUSH_5 = register("bush_5", Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(BOPBlocks.bush.defaultBlockState())).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(5)));
|
||||
public static final ConfiguredFeature<?, ?> BUSH_10 = register("bush_10", Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(BOPBlocks.bush.defaultBlockState())).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(10)));
|
||||
public static final ConfiguredFeature<?, ?> BUSH_15 = register("bush_15", Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(BOPBlocks.bush.defaultBlockState())).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(15)));
|
||||
public static final ConfiguredFeature<?, ?> BUSH_50 = register("bush_50", Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(BOPBlocks.bush.defaultBlockState())).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(50)));
|
||||
|
@ -278,9 +280,11 @@ public class BOPConfiguredFeatures
|
|||
// Features
|
||||
public static final ConfiguredFeature<?, ?> BIG_PUMPKIN = register("big_pumpkin", BOPFeatures.BIG_PUMPKIN.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(3)));
|
||||
public static final ConfiguredFeature<?, ?> BLACK_SANDSTONE_COLUMN = register("black_sandstone_column", BOPFeatures.BLACK_SANDSTONE_COLUMN.configured(new ColumnConfig(FeatureSpread.fixed(1), FeatureSpread.of(1, 3))).decorated(Placement.COUNT_MULTILAYER.configured(new FeatureSpreadConfig(2))).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(1)));
|
||||
public static final ConfiguredFeature<?, ?> BLACK_SAND_DISK = register("black_sand_disk", Feature.DISK.configured(new SphereReplaceConfig(BOPBlocks.black_sand.defaultBlockState(), FeatureSpread.of(4, 2), 1, ImmutableList.of(Blocks.DIRT.defaultBlockState(), Blocks.GRASS_BLOCK.defaultBlockState()))).decorated(Features.Placements.TOP_SOLID_HEIGHTMAP_SQUARE).count(4));
|
||||
public static final ConfiguredFeature<?, ?> BLACK_SAND_DISK = register("black_sand_disk", Feature.DISK.configured(new SphereReplaceConfig(BOPBlocks.black_sand.defaultBlockState(), FeatureSpread.of(2, 4), 2, ImmutableList.of(Blocks.DIRT.defaultBlockState(), Blocks.GRASS_BLOCK.defaultBlockState()))).decorated(Features.Placements.TOP_SOLID_HEIGHTMAP_SQUARE).count(2));
|
||||
public static final ConfiguredFeature<?, ?> BONE_SPINE = register("bone_spine", BOPFeatures.BONE_SPINE.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(3)));
|
||||
public static final ConfiguredFeature<?, ?> BRAMBLE = register("bramble", BOPFeatures.BRAMBLE.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(3)));
|
||||
public static final ConfiguredFeature<?, ?> BRAMBLE_EXTRA = register("bramble_extra", BOPFeatures.BRAMBLE.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(10)));
|
||||
public static final ConfiguredFeature<?, ?> CRAG_SPLATTER = register("crag_splatter", BOPFeatures.CRAG_SPLATTER.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(128)));
|
||||
public static final ConfiguredFeature<?, ?> DENSE_BAYOU_VINES = register("dense_bayou_vines", BOPFeatures.DENSE_BAYOU_VINES.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE).count(128));
|
||||
public static final ConfiguredFeature<?, ?> FLESH_TENDON = register("flesh_tendon", BOPFeatures.FLESH_TENDON.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(65)));
|
||||
public static final ConfiguredFeature<?, ?> GRAVEL_DISK_EXTRA = register("gravel_disk_extra", Feature.DISK.configured(new SphereReplaceConfig(Blocks.GRAVEL.defaultBlockState(), FeatureSpread.of(4, 2), 1, ImmutableList.of(Blocks.DIRT.defaultBlockState(), Blocks.GRASS_BLOCK.defaultBlockState()))).decorated(Features.Placements.TOP_SOLID_HEIGHTMAP_SQUARE).count(6));
|
||||
|
|
|
@ -116,6 +116,7 @@ public class BOPFeatures
|
|||
public static final Feature<NoFeatureConfig> BIG_PUMPKIN = register("big_pumpkin", new BigPumpkinFeature(NoFeatureConfig.CODEC));
|
||||
public static final Feature<NoFeatureConfig> BONE_SPINE = register("bone_spine", new BoneSpineFeature(NoFeatureConfig.CODEC));
|
||||
public static final Feature<NoFeatureConfig> BRAMBLE = register("bramble", new BrambleFeature(NoFeatureConfig.CODEC));
|
||||
public static final Feature<NoFeatureConfig> CRAG_SPLATTER = register("crag_splatter", new CragSplatterFeature(NoFeatureConfig.CODEC));
|
||||
public static final Feature<NoFeatureConfig> DENSE_BAYOU_VINES = register("dense_bayou_vines", new DenseBayouVinesFeature(NoFeatureConfig.CODEC));
|
||||
public static final Feature<NoFeatureConfig> FERN_GRASS = register("fern_grass", new FernGrassFeature(NoFeatureConfig.CODEC));
|
||||
public static final Feature<NoFeatureConfig> FLESH_TENDON = register("flesh_tendon", new FleshTendonFeature(NoFeatureConfig.CODEC));
|
||||
|
|
|
@ -0,0 +1,89 @@
|
|||
package biomesoplenty.common.world.gen.feature;
|
||||
|
||||
import biomesoplenty.api.block.BOPBlocks;
|
||||
import com.mojang.serialization.Codec;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.ISeedReader;
|
||||
import net.minecraft.world.gen.ChunkGenerator;
|
||||
import net.minecraft.world.gen.feature.Feature;
|
||||
import net.minecraft.world.gen.feature.NoFeatureConfig;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class CragSplatterFeature extends Feature<NoFeatureConfig>
|
||||
{
|
||||
public CragSplatterFeature(Codec<NoFeatureConfig> deserializer)
|
||||
{
|
||||
super(deserializer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean place(ISeedReader worldIn, ChunkGenerator chunkGenerator, Random rand, BlockPos pos, NoFeatureConfig config)
|
||||
{
|
||||
int i = 0;
|
||||
int j = rand.nextInt(8 - 2) + 2;
|
||||
|
||||
for (int k = pos.getX() - j; k <= pos.getX() + j; ++k)
|
||||
{
|
||||
for (int l = pos.getZ() - j; l <= pos.getZ() + j; ++l)
|
||||
{
|
||||
int i1 = k - pos.getX();
|
||||
int j1 = l - pos.getZ();
|
||||
if (i1 * i1 + j1 * j1 <= j * j)
|
||||
{
|
||||
for (int k1 = pos.getY() - 2; k1 <= pos.getY() + 2; ++k1)
|
||||
{
|
||||
BlockPos blockpos = new BlockPos(k, k1, l);
|
||||
BlockState blockstate = worldIn.getBlockState(blockpos);
|
||||
BlockState blockstate1 = worldIn.getBlockState(blockpos.above());
|
||||
|
||||
if ((blockstate.getBlock() == Blocks.STONE || blockstate.getBlock() == Blocks.GRAVEL || blockstate.getBlock() == Blocks.ANDESITE || blockstate.getBlock() == Blocks.DIORITE || blockstate.getBlock() == Blocks.GRANITE || blockstate.getBlock() == Blocks.DIRT))
|
||||
{
|
||||
switch (rand.nextInt(14))
|
||||
{
|
||||
default:
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
worldIn.setBlock(blockpos, Blocks.COBBLESTONE.defaultBlockState(), 2);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
case 4:
|
||||
case 5:
|
||||
worldIn.setBlock(blockpos, Blocks.GRAVEL.defaultBlockState(), 2);
|
||||
break;
|
||||
|
||||
case 6:
|
||||
case 7:
|
||||
worldIn.setBlock(blockpos, Blocks.MOSSY_COBBLESTONE.defaultBlockState(), 2);
|
||||
break;
|
||||
|
||||
case 8:
|
||||
case 9:
|
||||
worldIn.setBlock(blockpos, Blocks.ANDESITE.defaultBlockState(), 2);
|
||||
break;
|
||||
|
||||
case 10:
|
||||
if (blockstate1.isAir(worldIn, blockpos.above()))
|
||||
{
|
||||
worldIn.setBlock(blockpos, Blocks.GRASS_BLOCK.defaultBlockState(), 2);
|
||||
worldIn.setBlock(blockpos.above(), Blocks.GRASS.defaultBlockState(), 2);
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
++i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return i > 0;
|
||||
}
|
||||
}
|
|
@ -85,9 +85,9 @@ public class HugeToadstoolFeature extends Feature<NoFeatureConfig>
|
|||
{
|
||||
for (int y = 0; y <= 8; y++)
|
||||
{
|
||||
for (int x = -1; x <= 1; x++)
|
||||
for (int x = -2; x <= 2; x++)
|
||||
{
|
||||
for (int z = -1; z <= 1; z++)
|
||||
for (int z = -2; z <= 2; z++)
|
||||
{
|
||||
BlockPos pos1 = pos.offset(x, y, z);
|
||||
if (pos1.getY() >= 255 || !this.replace.matches(world, pos1))
|
||||
|
|
|
@ -23,7 +23,6 @@ public class BOPSurfaceBuilders
|
|||
public static final SurfaceBuilderConfig TERRACOTTA_SURFACE = new SurfaceBuilderConfig(Blocks.TERRACOTTA.defaultBlockState(), Blocks.TERRACOTTA.defaultBlockState(), Blocks.GRAVEL.defaultBlockState());
|
||||
public static final SurfaceBuilderConfig MAGMA_SURFACE = new SurfaceBuilderConfig(Blocks.MAGMA_BLOCK.defaultBlockState(), Blocks.MAGMA_BLOCK.defaultBlockState(), Blocks.BASALT.defaultBlockState());
|
||||
public static final SurfaceBuilderConfig MUD_SURFACE = new SurfaceBuilderConfig(BOPBlocks.mud.defaultBlockState(), BOPBlocks.mud.defaultBlockState(), BOPBlocks.mud.defaultBlockState());
|
||||
public static final SurfaceBuilderConfig RED_SAND_SURFACE = new SurfaceBuilderConfig(Blocks.RED_SAND.defaultBlockState(), Blocks.RED_SAND.defaultBlockState(), Blocks.RED_SAND.defaultBlockState());
|
||||
public static final SurfaceBuilderConfig SNOW_SNOW_GRAVEL_SURFACE = new SurfaceBuilderConfig(Blocks.SNOW_BLOCK.defaultBlockState(), Blocks.SNOW_BLOCK.defaultBlockState(), Blocks.GRAVEL.defaultBlockState());
|
||||
public static final SurfaceBuilderConfig WHITE_SAND_SURFACE = new SurfaceBuilderConfig(BOPBlocks.white_sand.defaultBlockState(), BOPBlocks.white_sand.defaultBlockState(), BOPBlocks.white_sand.defaultBlockState());
|
||||
public static final SurfaceBuilderConfig ORANGE_SAND_SURFACE = new SurfaceBuilderConfig(BOPBlocks.orange_sand.defaultBlockState(), BOPBlocks.orange_sand.defaultBlockState(), BOPBlocks.orange_sand.defaultBlockState());
|
||||
|
@ -32,6 +31,7 @@ public class BOPSurfaceBuilders
|
|||
public static final SurfaceBuilderConfig DRIED_SALT_SURFACE = new SurfaceBuilderConfig(BOPBlocks.dried_salt.defaultBlockState(), BOPBlocks.dried_salt.defaultBlockState(), BOPBlocks.dried_salt.defaultBlockState());
|
||||
public static final SurfaceBuilderConfig ORIGIN_GRASS_SURFACE = new SurfaceBuilderConfig(BOPBlocks.origin_grass_block.defaultBlockState(), Blocks.DIRT.defaultBlockState(), Blocks.GRAVEL.defaultBlockState());
|
||||
|
||||
public static final SurfaceBuilder<SurfaceBuilderConfig> HIGHLAND_CRAG = register("highland_crag", new HighlandCragSurfaceBuilder(SurfaceBuilderConfig.CODEC));
|
||||
public static final SurfaceBuilder<SurfaceBuilderConfig> EXPOSED_STONE = register("exposed_stone", new ExposedStoneSurfaceBuilder(SurfaceBuilderConfig.CODEC));
|
||||
public static final SurfaceBuilder<SurfaceBuilderConfig> TERRACOTTA = register("terracotta", new TerracottaSurfaceBuilder(SurfaceBuilderConfig.CODEC));
|
||||
public static final SurfaceBuilder<SurfaceBuilderConfig> MARSH = register("marsh", new MarshSurfaceBuilder(SurfaceBuilderConfig.CODEC));
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
/*******************************************************************************
|
||||
* Copyright 2014-2019, 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.world.gen.surfacebuilders;
|
||||
|
||||
import com.mojang.serialization.Codec;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.world.biome.Biome;
|
||||
import net.minecraft.world.chunk.IChunk;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilderConfig;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class HighlandCragSurfaceBuilder extends SurfaceBuilder<SurfaceBuilderConfig>
|
||||
{
|
||||
public HighlandCragSurfaceBuilder(Codec<SurfaceBuilderConfig> deserializer)
|
||||
{
|
||||
super(deserializer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void apply(Random random, IChunk chunkIn, Biome biomeIn, int x, int z, int startHeight, double noise, BlockState defaultBlock, BlockState defaultFluid, int seaLevel, long seed, SurfaceBuilderConfig config) {
|
||||
if (noise > 1.9D) {
|
||||
SurfaceBuilder.DEFAULT.apply(random, chunkIn, biomeIn, x, z, startHeight, noise, defaultBlock, defaultFluid, seaLevel, seed, SurfaceBuilder.CONFIG_GRAVEL);
|
||||
} else {
|
||||
SurfaceBuilder.DEFAULT.apply(random, chunkIn, biomeIn, x, z, startHeight, noise, defaultBlock, defaultFluid, seaLevel, seed, SurfaceBuilder.CONFIG_STONE);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -49,6 +49,7 @@ public enum BOPBiomeEdgeLayer implements ICastleTransformer
|
|||
|
||||
// line BOP redwood forest with BOP redwood forest edge
|
||||
if (this.replaceBiomeEdge(outBiomeId, northBiomeId, eastBiomeId, southBiomeId, westBiomeId, biomeId, BOPBiomes.redwood_forest, BOPBiomes.redwood_forest_edge)) { return outBiomeId[0]; }
|
||||
if (this.replaceBiomeEdge(outBiomeId, northBiomeId, eastBiomeId, southBiomeId, westBiomeId, biomeId, BOPBiomes.redwood_hills, BOPBiomes.redwood_forest_edge)) { return outBiomeId[0]; }
|
||||
|
||||
// line BOP volcano with BOP volcanic plains
|
||||
if (this.replaceBiomeEdge(outBiomeId, northBiomeId, eastBiomeId, southBiomeId, westBiomeId, biomeId, BOPBiomes.volcano, BOPBiomes.volcanic_plains)) { return outBiomeId[0]; }
|
||||
|
|
|
@ -51,13 +51,11 @@ public class BiomesOPlenty
|
|||
|
||||
private void commonSetup(final FMLCommonSetupEvent event)
|
||||
{
|
||||
ModEntities.setup();
|
||||
ModVanillaCompat.setup();
|
||||
}
|
||||
|
||||
private void clientSetup(final FMLClientSetupEvent event)
|
||||
{
|
||||
ModEntities.registerRendering();
|
||||
}
|
||||
|
||||
private void loadComplete(final FMLLoadCompleteEvent event) // PostRegistrationEven
|
||||
|
|
|
@ -142,16 +142,20 @@ public class ModBiomes
|
|||
registerBiome(new GoldenPrairieBiome(), "golden_prairie");
|
||||
registerBiome(new GroveBiome(), "grove");
|
||||
registerBiome(new HighlandBiome(), "highland");
|
||||
registerBiome(new HighlandCragBiome(), "highland_crag");
|
||||
registerBiome(new HighlandMoorBiome(), "highland_moor");
|
||||
registerBiome(new JadeCliffsBiome(), "jade_cliffs");
|
||||
registerBiome(new JadeGrasslandBiome(), "jade_grassland");
|
||||
registerBiome(new LavenderFieldBiome(), "lavender_field");
|
||||
registerBiome(new LushDesertBiome(), "lush_desert");
|
||||
registerBiome(new LushSavannaBiome(), "lush_savanna");
|
||||
registerBiome(new MeadowBiome(), "meadow");
|
||||
registerBiome(new MeadowForestBiome(), "meadow_forest");
|
||||
registerBiome(new MuskegBiome(), "muskeg");
|
||||
registerBiome(new MysticGroveBiome(), "mystic_grove");
|
||||
registerBiome(new MysticPlainsBiome(), "mystic_plains");
|
||||
registerBiome(new OminousWoodsBiome(), "ominous_woods");
|
||||
registerBiome(new OminousMireBiome(), "ominous_mire");
|
||||
registerBiome(new OriginValleyBiome(), "origin_valley");
|
||||
registerBiome(new OvergrownFungalJungleBiome(), "overgrown_fungal_jungle");
|
||||
registerBiome(new PrairieBiome(), "prairie");
|
||||
|
@ -160,12 +164,14 @@ public class ModBiomes
|
|||
registerBiome(new RainforestClearingBiome(), "rainforest_clearing");
|
||||
registerBiome(new RainforestCliffsBiome(), "rainforest_cliffs");
|
||||
registerBiome(new RedwoodForestBiome(), "redwood_forest");
|
||||
registerBiome(new RedwoodHillsBiome(), "redwood_hills");
|
||||
registerBiome(new SeasonalForestBiome(), "seasonal_forest");
|
||||
registerBiome(new SeasonalPumpkinPatchBiome(), "seasonal_pumpkin_patch");
|
||||
registerBiome(new ShroomyWetlandBiome(), "shroomy_wetland");
|
||||
registerBiome(new ShrublandBiome(), "shrubland");
|
||||
registerBiome(new ShrublandHillsBiome(), "shrubland_hills");
|
||||
registerBiome(new SilkgladeBiome(), "silkglade");
|
||||
registerBiome(new SilkgladeNestBiome(), "silkglade_nest");
|
||||
registerBiome(new SnowyConiferousForestBiome(), "snowy_coniferous_forest");
|
||||
registerBiome(new SnowyMapleForestBiome(), "snowy_maple_forest");
|
||||
registerBiome(new SnowyFirClearingBiome(), "snowy_fir_clearing");
|
||||
|
@ -200,23 +206,33 @@ public class ModBiomes
|
|||
|
||||
registerSubBiome(fungal_jungle, overgrown_fungal_jungle, 0.8F, 100);
|
||||
|
||||
registerSubBiome(highland, highland_crag, 1.25F, 100);
|
||||
registerSubBiome(highland, highland_moor, 0.75F, 100);
|
||||
|
||||
registerSubBiome(jade_cliffs, jade_grassland, 0.85F, 100);
|
||||
|
||||
registerSubBiome(lush_desert, lush_savanna, 0.65F, 100);
|
||||
|
||||
registerSubBiome(meadow, flower_meadow, 0.5F, 100);
|
||||
registerSubBiome(meadow, flower_meadow, 1.0F, 100);
|
||||
registerSubBiome(meadow, meadow_forest, 1.0F, 100);
|
||||
|
||||
registerSubBiome(mystic_grove, mystic_plains, 0.75F, 100);
|
||||
|
||||
registerSubBiome(ominous_woods, ominous_mire, 0.75F, 100);
|
||||
|
||||
registerSubBiome(prairie, golden_prairie, 1.0F, 100);
|
||||
|
||||
registerSubBiome(rainforest, rainforest_cliffs, 2.0F, 100);
|
||||
registerSubBiome(rainforest, rainforest_clearing, 2.0F, 100);
|
||||
|
||||
registerSubBiome(redwood_forest, redwood_hills, 0.75F, 100);
|
||||
|
||||
registerSubBiome(seasonal_forest, seasonal_pumpkin_patch, 0.45F, 100);
|
||||
|
||||
registerSubBiome(shrubland, shrubland_hills, 0.75F, 100);
|
||||
|
||||
registerSubBiome(silkglade, silkglade_nest, 0.45F, 100);
|
||||
|
||||
registerSubBiome(snowy_coniferous_forest, snowy_fir_clearing, 0.75F, 100);
|
||||
registerSubBiome(snowy_coniferous_forest, snowy_maple_forest, 1.25F, 100);
|
||||
|
||||
|
@ -256,8 +272,8 @@ public class ModBiomes
|
|||
registerVanillaBiome(Biomes.TAIGA, BOPClimates.WET_BOREAL, 10);
|
||||
registerVanillaBiome(Biomes.GIANT_TREE_TAIGA, BOPClimates.DRY_BOREAL, 5);
|
||||
registerVanillaBiome(Biomes.DARK_FOREST, BOPClimates.WET_TEMPERATE, 5);
|
||||
registerVanillaBiome(Biomes.BIRCH_FOREST, BOPClimates.DRY_TEMPERATE, 5);
|
||||
registerVanillaBiome(Biomes.FOREST, BOPClimates.COOL_TEMPERATE, 10);
|
||||
registerVanillaBiome(Biomes.BIRCH_FOREST, BOPClimates.COOL_TEMPERATE, 7);
|
||||
registerVanillaBiome(Biomes.PLAINS, BOPClimates.WARM_TEMPERATE, 10);
|
||||
registerVanillaBiome(Biomes.SWAMP, BOPClimates.SUBTROPICAL, 7);
|
||||
registerVanillaBiome(Biomes.LUKEWARM_OCEAN, BOPClimates.SUBTROPICAL, 3);
|
||||
|
@ -300,16 +316,19 @@ public class ModBiomes
|
|||
registerVillagerType(gravel_beach, VillagerType.PLAINS);
|
||||
registerVillagerType(grove, VillagerType.PLAINS);
|
||||
registerVillagerType(highland, VillagerType.PLAINS);
|
||||
registerVillagerType(highland_crag, VillagerType.PLAINS);
|
||||
registerVillagerType(highland_moor, VillagerType.PLAINS);
|
||||
registerVillagerType(jade_cliffs, VillagerType.PLAINS);
|
||||
registerVillagerType(lavender_field, VillagerType.PLAINS);
|
||||
registerVillagerType(lush_desert, VillagerType.SAVANNA);
|
||||
registerVillagerType(lush_savanna, VillagerType.SAVANNA);
|
||||
registerVillagerType(meadow, VillagerType.TAIGA);
|
||||
registerVillagerType(meadow_forest, VillagerType.TAIGA);
|
||||
registerVillagerType(muskeg, VillagerType.SNOW);
|
||||
registerVillagerType(mystic_grove, VillagerType.PLAINS);
|
||||
registerVillagerType(mystic_plains, VillagerType.PLAINS);
|
||||
registerVillagerType(ominous_woods, VillagerType.SWAMP);
|
||||
registerVillagerType(ominous_mire, VillagerType.SWAMP);
|
||||
registerVillagerType(orchard, VillagerType.PLAINS);
|
||||
registerVillagerType(origin_valley, VillagerType.PLAINS);
|
||||
registerVillagerType(overgrown_fungal_jungle, VillagerType.JUNGLE);
|
||||
|
@ -320,12 +339,14 @@ public class ModBiomes
|
|||
registerVillagerType(rainforest_cliffs, VillagerType.JUNGLE);
|
||||
registerVillagerType(redwood_forest, VillagerType.PLAINS);
|
||||
registerVillagerType(redwood_forest_edge, VillagerType.PLAINS);
|
||||
registerVillagerType(redwood_hills, VillagerType.PLAINS);
|
||||
registerVillagerType(seasonal_forest, VillagerType.PLAINS);
|
||||
registerVillagerType(seasonal_pumpkin_patch, VillagerType.PLAINS);
|
||||
registerVillagerType(shroomy_wetland, VillagerType.SWAMP);
|
||||
registerVillagerType(shrubland, VillagerType.PLAINS);
|
||||
registerVillagerType(shrubland_hills, VillagerType.PLAINS);
|
||||
registerVillagerType(silkglade, VillagerType.SWAMP);
|
||||
registerVillagerType(silkglade_nest, VillagerType.SWAMP);
|
||||
registerVillagerType(snowy_coniferous_forest, VillagerType.SNOW);
|
||||
registerVillagerType(snowy_fir_clearing, VillagerType.SNOW);
|
||||
registerVillagerType(snowy_maple_forest, VillagerType.SNOW);
|
||||
|
|
|
@ -7,85 +7,5 @@
|
|||
******************************************************************************/
|
||||
package biomesoplenty.init;
|
||||
|
||||
import biomesoplenty.common.entity.DeerEntity;
|
||||
import biomesoplenty.common.entity.DeerRenderer;
|
||||
import biomesoplenty.common.entity.TurkeyEntity;
|
||||
import biomesoplenty.common.entity.TurkeyRenderer;
|
||||
import biomesoplenty.common.util.inventory.ItemGroupBOP;
|
||||
import biomesoplenty.core.BiomesOPlenty;
|
||||
import com.google.common.collect.Lists;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntitySpawnPlacementRegistry;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.entity.ai.attributes.GlobalEntityTypeAttributes;
|
||||
import net.minecraft.entity.passive.AnimalEntity;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.SpawnEggItem;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.world.gen.Heightmap;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
import net.minecraftforge.event.RegistryEvent;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.client.registry.RenderingRegistry;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
|
||||
public class ModEntities
|
||||
{
|
||||
private static List<EntityType> entities = Lists.newArrayList();
|
||||
private static List<Item> spawnEggs = Lists.newArrayList();
|
||||
|
||||
public static EntityType<DeerEntity> deer = addEntity(DeerEntity::new, EntityClassification.CREATURE, 1.0F, 1.6F, "deer", 0x765134, 0xF7EFE6);
|
||||
public static EntityType<TurkeyEntity> turkey = addEntity(TurkeyEntity::new, EntityClassification.CREATURE, 0.9F, 1.4F, "turkey", 0x6B492E, 0xE23131);
|
||||
|
||||
public static <T extends AnimalEntity> EntityType<T> addEntity(EntityType.IFactory<T> type, EntityClassification classification, float width, float height, String name, int eggPrimary, int eggSecondary)
|
||||
{
|
||||
EntityType<T> entity = EntityType.Builder.of(type, classification).sized(width, height).build(BiomesOPlenty.MOD_ID + ":" + name);
|
||||
entity.setRegistryName(new ResourceLocation(BiomesOPlenty.MOD_ID, name));
|
||||
entities.add(entity);
|
||||
|
||||
Item spawnEgg = new SpawnEggItem(entity, eggPrimary, eggSecondary, (new Item.Properties()).tab(ItemGroupBOP.instance));
|
||||
spawnEgg.setRegistryName(new ResourceLocation(BiomesOPlenty.MOD_ID, name + "_spawn_egg"));
|
||||
spawnEggs.add(spawnEgg);
|
||||
|
||||
return entity;
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void registerEntities(RegistryEvent.Register<EntityType<?>> event)
|
||||
{
|
||||
for (EntityType entity : entities)
|
||||
{
|
||||
ForgeRegistries.ENTITIES.register(entity);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void registerSpawnEggs(RegistryEvent.Register<Item> event)
|
||||
{
|
||||
for (Item spawnEgg : spawnEggs)
|
||||
{
|
||||
ForgeRegistries.ITEMS.register(spawnEgg);
|
||||
}
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public static void registerRendering()
|
||||
{
|
||||
RenderingRegistry.registerEntityRenderingHandler(deer, DeerRenderer::new);
|
||||
RenderingRegistry.registerEntityRenderingHandler(turkey, TurkeyRenderer::new);
|
||||
}
|
||||
|
||||
public static void setup()
|
||||
{
|
||||
EntitySpawnPlacementRegistry.register(deer, EntitySpawnPlacementRegistry.PlacementType.ON_GROUND, Heightmap.Type.MOTION_BLOCKING_NO_LEAVES, DeerEntity::checkAnimalSpawnRules);
|
||||
EntitySpawnPlacementRegistry.register(turkey, EntitySpawnPlacementRegistry.PlacementType.ON_GROUND, Heightmap.Type.MOTION_BLOCKING_NO_LEAVES, TurkeyEntity::checkAnimalSpawnRules);
|
||||
|
||||
GlobalEntityTypeAttributes.put(deer, DeerEntity.createAttributes().build());
|
||||
GlobalEntityTypeAttributes.put(turkey, TurkeyEntity.createAttributes().build());
|
||||
}
|
||||
public class ModEntities {
|
||||
}
|
||||
|
|
|
@ -25,10 +25,6 @@ import static biomesoplenty.api.item.BOPItems.*;
|
|||
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
|
||||
public class ModItems
|
||||
{
|
||||
public static final Food VENISON = (new Food.Builder()).nutrition(3).saturationMod(0.3F).meat().build();
|
||||
public static final Food COOKED_VENISON = (new Food.Builder()).nutrition(8).saturationMod(0.8F).meat().build();
|
||||
public static final Food TURKEY_LEG = (new Food.Builder()).nutrition(1).saturationMod(0.15F).effect(new EffectInstance(Effects.HUNGER, 600, 0), 0.3F).meat().build();
|
||||
public static final Food COOKED_TURKEY_LEG = (new Food.Builder()).nutrition(3).saturationMod(0.3F).meat().build();
|
||||
|
||||
@SubscribeEvent
|
||||
public static void registerItems(RegistryEvent.Register<Item> event)
|
||||
|
@ -50,11 +46,6 @@ public class ModItems
|
|||
umbran_boat = registerItem(new BoatItem(BoatEntity.Type.OAK, (new Item.Properties()).stacksTo(1).tab(ItemGroupBOP.instance)), "umbran_boat");
|
||||
hellbark_boat = registerItem(new BoatItem(BoatEntity.Type.OAK, (new Item.Properties()).stacksTo(1).tab(ItemGroupBOP.instance)), "hellbark_boat");
|
||||
|
||||
venison = registerItem(new Item(new Item.Properties().tab(ItemGroupBOP.instance).food(VENISON)), "venison");
|
||||
cooked_venison = registerItem(new Item(new Item.Properties().tab(ItemGroupBOP.instance).food(COOKED_VENISON)), "cooked_venison");
|
||||
turkey_leg = registerItem(new Item(new Item.Properties().tab(ItemGroupBOP.instance).food(TURKEY_LEG)), "turkey_leg");
|
||||
cooked_turkey_leg = registerItem(new Item(new Item.Properties().tab(ItemGroupBOP.instance).food(COOKED_TURKEY_LEG)), "cooked_turkey_leg");
|
||||
|
||||
bop_icon = registerItem(new Item(new Item.Properties()), "bop_icon");
|
||||
}
|
||||
|
||||
|
|
|
@ -26,13 +26,6 @@ public class ModSounds
|
|||
public static void registerSounds(RegistryEvent.Register<SoundEvent> event)
|
||||
{
|
||||
music_disc_wanderer = registerSound("music_disc.wanderer");
|
||||
deer_hurt = registerSound("entity.biomesoplenty.deer.hurt");
|
||||
deer_dead = registerSound("entity.biomesoplenty.deer.dead");
|
||||
deer_step = SoundEvents.LLAMA_STEP;
|
||||
turkey_ambient = registerSound("entity.biomesoplenty.turkey.ambient");
|
||||
turkey_hurt = registerSound("entity.biomesoplenty.turkey.hurt");
|
||||
turkey_dead = registerSound("entity.biomesoplenty.turkey.dead");
|
||||
turkey_step = SoundEvents.CHICKEN_STEP;
|
||||
}
|
||||
|
||||
private static SoundEvent registerSound(String soundName)
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
"biome.biomesoplenty.coniferous_lakes": "Coniferous Lakes",
|
||||
"biome.biomesoplenty.crystalline_chasm": "Crystalline Chasm",
|
||||
"biome.biomesoplenty.dead_forest": "Dead Forest",
|
||||
"biome.biomesoplenty.dead_plains": "Dead Plains",
|
||||
"biome.biomesoplenty.dense_bayou": "Dense Bayou",
|
||||
"biome.biomesoplenty.dryland": "Dryland",
|
||||
"biome.biomesoplenty.dry_steppe": "Dry Steppe",
|
||||
|
@ -29,15 +28,19 @@
|
|||
"biome.biomesoplenty.gravel_beach": "Gravel Beach",
|
||||
"biome.biomesoplenty.grove": "Grove",
|
||||
"biome.biomesoplenty.highland": "Highland",
|
||||
"biome.biomesoplenty.highland_crag": "Highland Crag",
|
||||
"biome.biomesoplenty.highland_moor": "Highland Moor",
|
||||
"biome.biomesoplenty.jade_cliffs": "Jade Cliffs",
|
||||
"biome.biomesoplenty.jade_grassland": "Jade Grassland",
|
||||
"biome.biomesoplenty.lavender_field": "Lavender Field",
|
||||
"biome.biomesoplenty.lush_desert": "Lush Desert",
|
||||
"biome.biomesoplenty.lush_savanna": "Lush Savanna",
|
||||
"biome.biomesoplenty.meadow": "Meadow",
|
||||
"biome.biomesoplenty.meadow_forest": "Meadow Forest",
|
||||
"biome.biomesoplenty.muskeg": "Muskeg",
|
||||
"biome.biomesoplenty.mystic_grove": "Mystic Grove",
|
||||
"biome.biomesoplenty.mystic_plains": "Mystic Plains",
|
||||
"biome.biomesoplenty.ominous_mire": "Ominous Mire",
|
||||
"biome.biomesoplenty.ominous_woods": "Ominous Woods",
|
||||
"biome.biomesoplenty.orchard": "Orchard",
|
||||
"biome.biomesoplenty.origin_valley": "Origin Valley",
|
||||
|
@ -49,12 +52,14 @@
|
|||
"biome.biomesoplenty.rainforest_cliffs": "Rainforest Cliffs",
|
||||
"biome.biomesoplenty.redwood_forest": "Redwood Forest",
|
||||
"biome.biomesoplenty.redwood_forest_edge": "Redwood Forest Edge",
|
||||
"biome.biomesoplenty.redwood_hills": "Redwood Hills",
|
||||
"biome.biomesoplenty.seasonal_forest": "Seasonal Forest",
|
||||
"biome.biomesoplenty.seasonal_pumpkin_patch": "Seasonal Pumpkin Patch",
|
||||
"biome.biomesoplenty.shroomy_wetland": "Shroomy Wetland",
|
||||
"biome.biomesoplenty.shrubland": "Shrubland",
|
||||
"biome.biomesoplenty.shrubland_hills": "Shrubland Hills",
|
||||
"biome.biomesoplenty.silkglade": "Silkglade",
|
||||
"biome.biomesoplenty.silkglade_nest": "Silkglade Nest",
|
||||
"biome.biomesoplenty.snowy_coniferous_forest": "Snowy Coniferous Forest",
|
||||
"biome.biomesoplenty.snowy_fir_clearing": "Snowy Fir Clearing",
|
||||
"biome.biomesoplenty.snowy_maple_forest": "Snowy Maple Forest",
|
||||
|
@ -74,10 +79,7 @@
|
|||
|
||||
"item.biomesoplenty.bop_icon": "BOP Icon",
|
||||
"item.biomesoplenty.cherry_boat": "Cherry Boat",
|
||||
"item.biomesoplenty.cooked_turkey_leg": "Cooked Turkey Leg",
|
||||
"item.biomesoplenty.cooked_venison": "Cooked Venison",
|
||||
"item.biomesoplenty.dead_boat": "Dead Boat",
|
||||
"item.biomesoplenty.deer_spawn_egg": "Deer Spawn Egg",
|
||||
"item.biomesoplenty.fir_boat": "Fir Boat",
|
||||
"item.biomesoplenty.hellbark_boat": "Hellbark Boat",
|
||||
"item.biomesoplenty.jacaranda_boat": "Jacaranda Boat",
|
||||
|
@ -89,10 +91,7 @@
|
|||
"item.biomesoplenty.music_disc_wanderer.desc": "Tim Rurkowski - Wanderer",
|
||||
"item.biomesoplenty.palm_boat": "Palm Boat",
|
||||
"item.biomesoplenty.redwood_boat": "Redwood Boat",
|
||||
"item.biomesoplenty.turkey_leg": "Raw Turkey Leg",
|
||||
"item.biomesoplenty.turkey_spawn_egg": "Turkey Spawn Egg",
|
||||
"item.biomesoplenty.umbran_boat": "Umbran Boat",
|
||||
"item.biomesoplenty.venison": "Raw Venison",
|
||||
"item.biomesoplenty.willow_boat": "Willow Boat",
|
||||
|
||||
"block.biomesoplenty.black_sand": "Black Sand",
|
||||
|
@ -404,7 +403,5 @@
|
|||
"commands.biomesoplenty.tpbiome.success": "Teleported %s to biome %s at (%s, %s, %s)",
|
||||
"commands.biomesoplenty.tpbiome.error": "Couldn't find biome %s!",
|
||||
|
||||
"entity.biomesoplenty.boat_bop": "Boat",
|
||||
"entity.biomesoplenty.deer": "Deer",
|
||||
"entity.biomesoplenty.turkey": "Turkey"
|
||||
"entity.biomesoplenty.boat_bop": "Boat"
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"parent": "item/generated",
|
||||
"textures": {
|
||||
"layer0": "biomesoplenty:item/cooked_turkey_leg"
|
||||
}
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"parent": "item/generated",
|
||||
"textures": {
|
||||
"layer0": "biomesoplenty:item/cooked_venison"
|
||||
}
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"parent": "item/template_spawn_egg"
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"parent": "item/generated",
|
||||
"textures": {
|
||||
"layer0": "biomesoplenty:item/turkey_leg"
|
||||
}
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"parent": "item/template_spawn_egg"
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"parent": "item/generated",
|
||||
"textures": {
|
||||
"layer0": "biomesoplenty:item/venison"
|
||||
}
|
||||
}
|
|
@ -6,30 +6,5 @@
|
|||
"stream": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"entity.biomesoplenty.turkey.ambient": {
|
||||
"sounds": [
|
||||
"biomesoplenty:entity/turkey/ambient"
|
||||
]
|
||||
},
|
||||
"entity.biomesoplenty.turkey.hurt": {
|
||||
"sounds": [
|
||||
"biomesoplenty:entity/turkey/hurt"
|
||||
]
|
||||
},
|
||||
"entity.biomesoplenty.turkey.dead": {
|
||||
"sounds": [
|
||||
"biomesoplenty:entity/turkey/dead"
|
||||
]
|
||||
},
|
||||
"entity.biomesoplenty.deer.hurt": {
|
||||
"sounds": [
|
||||
"biomesoplenty:entity/deer/hurt"
|
||||
]
|
||||
},
|
||||
"entity.biomesoplenty.deer.dead": {
|
||||
"sounds": [
|
||||
"biomesoplenty:entity/deer/dead"
|
||||
]
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 2 KiB |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 531 B |
Before Width: | Height: | Size: 421 B |
Before Width: | Height: | Size: 543 B |
Before Width: | Height: | Size: 411 B |
|
@ -134,6 +134,12 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:highland"
|
||||
}
|
||||
},
|
||||
"highland_crag": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:highland_crag"
|
||||
}
|
||||
},
|
||||
"highland_moor": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -146,6 +152,12 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:jade_cliffs"
|
||||
}
|
||||
},
|
||||
"jade_grassland": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:jade_grassland"
|
||||
}
|
||||
},
|
||||
"lavender_field": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -170,6 +182,12 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:meadow"
|
||||
}
|
||||
},
|
||||
"meadow_forest": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:meadow_forest"
|
||||
}
|
||||
},
|
||||
"muskeg": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -194,6 +212,12 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:ominous_woods"
|
||||
}
|
||||
},
|
||||
"ominous_mire": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:ominous_mire"
|
||||
}
|
||||
},
|
||||
"orchard": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -254,6 +278,12 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:redwood_forest_edge"
|
||||
}
|
||||
},
|
||||
"redwood_hills": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:redwood_hills"
|
||||
}
|
||||
},
|
||||
"seasonal_forest": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -290,6 +320,12 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:silkglade"
|
||||
}
|
||||
},
|
||||
"silkglade_nest": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:silkglade_nest"
|
||||
}
|
||||
},
|
||||
"snowy_coniferous_forest": {
|
||||
"trigger": "minecraft:location",
|
||||
|
|
|
@ -133,6 +133,12 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:highland"
|
||||
}
|
||||
},
|
||||
"highland_crag": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:highland_crag"
|
||||
}
|
||||
},
|
||||
"highland_moor": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -145,6 +151,12 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:jade_cliffs"
|
||||
}
|
||||
},
|
||||
"jade_grassland": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:jade_grassland"
|
||||
}
|
||||
},
|
||||
"lavender_field": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -169,6 +181,12 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:meadow"
|
||||
}
|
||||
},
|
||||
"meadow_forest": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:meadow_forest"
|
||||
}
|
||||
},
|
||||
"muskeg": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -193,6 +211,12 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:ominous_woods"
|
||||
}
|
||||
},
|
||||
"ominous_mire": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:ominous_mire"
|
||||
}
|
||||
},
|
||||
"orchard": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -253,6 +277,12 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:redwood_forest_edge"
|
||||
}
|
||||
},
|
||||
"redwood_hills": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:redwood_hills"
|
||||
}
|
||||
},
|
||||
"seasonal_forest": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -289,6 +319,12 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:silkglade"
|
||||
}
|
||||
},
|
||||
"silkglade_nest": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:silkglade_nest"
|
||||
}
|
||||
},
|
||||
"snowy_coniferous_forest": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -409,16 +445,20 @@
|
|||
"gravel_beach",
|
||||
"grove",
|
||||
"highland",
|
||||
"highland_crag",
|
||||
"highland_moor",
|
||||
"jade_cliffs",
|
||||
"jade_grassland",
|
||||
"lavender_field",
|
||||
"lush_desert",
|
||||
"lush_savanna",
|
||||
"meadow",
|
||||
"meadow_forest",
|
||||
"muskeg",
|
||||
"mystic_grove",
|
||||
"mystic_plains",
|
||||
"ominous_woods",
|
||||
"ominous_mire",
|
||||
"orchard",
|
||||
"origin_valley",
|
||||
"overgrown_fungal_jungle",
|
||||
|
@ -429,12 +469,14 @@
|
|||
"rainforest_cliffs",
|
||||
"redwood_forest",
|
||||
"redwood_forest_edge",
|
||||
"redwood_hills",
|
||||
"seasonal_forest",
|
||||
"seasonal_pumpkin_patch",
|
||||
"shroomy_wetland",
|
||||
"shrubland",
|
||||
"shrubland_hills",
|
||||
"silkglade",
|
||||
"silkglade_nest",
|
||||
"snowy_coniferous_forest",
|
||||
"snowy_fir_clearing",
|
||||
"snowy_maple_forest",
|
||||
|
|
|
@ -1,32 +0,0 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"biomesoplenty:cooked_turkey_leg"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_turkey_leg": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"item": "biomesoplenty:turkey_leg"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "biomesoplenty:cooked_turkey_leg"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_turkey_leg",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -1,32 +0,0 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"biomesoplenty:cooked_turkey_leg_from_campfire_cooking"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_turkey_leg": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"item": "biomesoplenty:turkey_leg"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "biomesoplenty:cooked_turkey_leg_from_campfire_cooking"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_turkey_leg",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -1,32 +0,0 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"biomesoplenty:cooked_turkey_leg_from_smoking"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_turkey_leg": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"item": "biomesoplenty:turkey_leg"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "biomesoplenty:cooked_turkey_leg_from_smoking"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_turkey_leg",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -1,32 +0,0 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"biomesoplenty:cooked_venison"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_venison": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"item": "biomesoplenty:venison"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "biomesoplenty:cooked_venison"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_venison",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -1,32 +0,0 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"biomesoplenty:cooked_venison_from_campfire_cooking"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_venison": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"item": "biomesoplenty:venison"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "biomesoplenty:cooked_venison_from_campfire_cooking"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_venison",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -1,32 +0,0 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"biomesoplenty:cooked_venison_from_smoking"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_venison": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"item": "biomesoplenty:venison"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "biomesoplenty:cooked_venison_from_smoking"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_venison",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -1,45 +0,0 @@
|
|||
{
|
||||
"type": "minecraft:entity",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"functions": [
|
||||
{
|
||||
"function": "minecraft:set_count",
|
||||
"count": {
|
||||
"min": 1.0,
|
||||
"max": 3.0,
|
||||
"type": "minecraft:uniform"
|
||||
}
|
||||
},
|
||||
{
|
||||
"function": "minecraft:furnace_smelt",
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:entity_properties",
|
||||
"predicate": {
|
||||
"flags": {
|
||||
"is_on_fire": true
|
||||
}
|
||||
},
|
||||
"entity": "this"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"function": "minecraft:looting_enchant",
|
||||
"count": {
|
||||
"min": 0.0,
|
||||
"max": 1.0
|
||||
}
|
||||
}
|
||||
],
|
||||
"name": "biomesoplenty:venison"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,71 +0,0 @@
|
|||
{
|
||||
"type": "minecraft:entity",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"functions": [
|
||||
{
|
||||
"function": "minecraft:set_count",
|
||||
"count": {
|
||||
"min": 0.0,
|
||||
"max": 2.0,
|
||||
"type": "minecraft:uniform"
|
||||
}
|
||||
},
|
||||
{
|
||||
"function": "minecraft:looting_enchant",
|
||||
"count": {
|
||||
"min": 0.0,
|
||||
"max": 1.0
|
||||
}
|
||||
}
|
||||
],
|
||||
"name": "minecraft:feather"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"functions": [
|
||||
{
|
||||
"function": "minecraft:set_count",
|
||||
"count": {
|
||||
"min": 1.0,
|
||||
"max": 2.0,
|
||||
"type": "minecraft:uniform"
|
||||
}
|
||||
},
|
||||
{
|
||||
"function": "minecraft:furnace_smelt",
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:entity_properties",
|
||||
"predicate": {
|
||||
"flags": {
|
||||
"is_on_fire": true
|
||||
}
|
||||
},
|
||||
"entity": "this"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"function": "minecraft:looting_enchant",
|
||||
"count": {
|
||||
"min": 0.0,
|
||||
"max": 1.0
|
||||
}
|
||||
}
|
||||
],
|
||||
"name": "biomesoplenty:turkey_leg"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
"type": "minecraft:smelting",
|
||||
"ingredient": {
|
||||
"item": "biomesoplenty:turkey_leg"
|
||||
},
|
||||
"result": "biomesoplenty:cooked_turkey_leg",
|
||||
"experience": 0.35,
|
||||
"cookingtime": 200
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
"type": "minecraft:campfire_cooking",
|
||||
"ingredient": {
|
||||
"item": "biomesoplenty:turkey_leg"
|
||||
},
|
||||
"result": "biomesoplenty:cooked_turkey_leg",
|
||||
"experience": 0.35,
|
||||
"cookingtime": 600
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
"type": "minecraft:smoking",
|
||||
"ingredient": {
|
||||
"item": "biomesoplenty:turkey_leg"
|
||||
},
|
||||
"result": "biomesoplenty:cooked_turkey_leg",
|
||||
"experience": 0.35,
|
||||
"cookingtime": 100
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
"type": "minecraft:smelting",
|
||||
"ingredient": {
|
||||
"item": "biomesoplenty:venison"
|
||||
},
|
||||
"result": "biomesoplenty:cooked_venison",
|
||||
"experience": 0.35,
|
||||
"cookingtime": 200
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
"type": "minecraft:campfire_cooking",
|
||||
"ingredient": {
|
||||
"item": "biomesoplenty:venison"
|
||||
},
|
||||
"result": "biomesoplenty:cooked_venison",
|
||||
"experience": 0.35,
|
||||
"cookingtime": 600
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
"type": "minecraft:smoking",
|
||||
"ingredient": {
|
||||
"item": "biomesoplenty:venison"
|
||||
},
|
||||
"result": "biomesoplenty:cooked_venison",
|
||||
"experience": 0.35,
|
||||
"cookingtime": 100
|
||||
}
|