public interface Populator
A populator has access to some nearby chunks, so it can more easily place objects that cross chunk boundaries.
Instead of directly implementing this interface, it may be easier to
implement PopulatorObject
instead, and use the RandomObject
populator to get a populator that spawns that object.
Note that blocks are not captured, nor are events thrown for block changes from a populator performing block changes.
PopulatorObject
Modifier and Type | Method and Description |
---|---|
PopulatorType |
getType()
Gets the type of this populator.
|
void |
populate(World world,
Extent volume,
Random random)
Applies the populator to the given
Extent volume. |
default void |
populate(World world,
Extent volume,
Random random,
ImmutableBiomeVolume virtualBiomes)
Applies the populator to the given
Extent volume. |
PopulatorType getType()
It should be noted that the relationship of classes implementing
Populator
and PopulatorType
s is not a one-to-one
relationship. That is to say that multiple different populators could
return the same PopulatorType
for the purposes of grouping (A
plugin populator creating custom glowstone clusters may want to return
PopulatorTypes.GLOWSTONE
so that other plugins can recognize
changes that it makes as being part of the generation of glowstone).
void populate(World world, Extent volume, Random random)
Extent
volume. The entire volume
of the given extent should be populated.
Due to their transitive nature virtual biomes cannot be fetched from
the given extent, instead your populator should override
populate(World, Extent, Random, ImmutableBiomeVolume)
to make use
of the ImmutableBiomeArea which does contain virtual biome types.
world
- The World within which the generation in happeningvolume
- The volume to be populatedrandom
- A random number generator. This random number generator is
based on the world seed and the chunk position. It is shared with
with other populatorsdefault void populate(World world, Extent volume, Random random, ImmutableBiomeVolume virtualBiomes)
Extent
volume. The entire volume
of the given extent should be populated.world
- The World within which the generation in happeningvolume
- The volume to be populatedrandom
- A random number generator. This random number generator is
based on the world seed and the chunk position. It is shared with
with other populatorsvirtualBiomes
- A biome volume for the extent being populated which
includes any virtual biomes not persisted to the world