Interface RegionAkzessor
- All Known Subinterfaces:
BegrenzteGegend
,Welt
Biome
, BlockState
and Wesen
,
as well as generating some basic structures.-
Method Summary
Modifier and TypeMethodDescription<T extends Wesen>
TaddEntity
(T entity) Spawns a previously created wesen in the welt.<T extends Wesen>
TcreateEntity
(Ort ort, Class<T> clazz) Creates an wesen of a specific class at the givenOrt
but does not spawn it in the welt.boolean
generateTree
(Ort ort, Random random, TreeType type) Creates a tree at the givenOrt
boolean
generateTree
(Ort ort, Random random, TreeType type, Consumer<? super BlockState> stateConsumer) Creates a tree at the givenOrt
boolean
generateTree
(Ort ort, Random random, TreeType type, Predicate<? super BlockState> statePredicate) Creates a tree at the givenOrt
getBiome
(int x, int y, int z) Gets theBiome
at the given coordinates.getBlockData
(int x, int y, int z) Gets theBlockData
at the given coordinates.getBlockData
(Ort ort) getBlockState
(int x, int y, int z) Gets theBlockState
at the given coordinates.getBlockState
(Ort ort) Gets theBlockState
at the givenOrt
.Get a list of all entities in this RegionAkzessor<T extends Wesen>
Collection<T>getEntitiesByClass
(Class<T> cls) Get a collection of all entities in this RegionAkzessor matching the given class/interfacegetEntitiesByClasses
(Class<?>... classes) Get a collection of all entities in this RegionAkzessor matching any of the given classes/interfacesint
getHighestBlockYAt
(int x, int z) Gets the highest non-empty (impassable) coordinate at the given coordinates.int
getHighestBlockYAt
(int x, int z, HoehenKarte hoehenKarte) Gets the highest coordinate corresponding to theHoehenKarte
at the given coordinates.int
getHighestBlockYAt
(Ort ort) Gets the highest non-empty (impassable) coordinate at the givenOrt
.int
getHighestBlockYAt
(Ort ort, HoehenKarte hoehenKarte) Gets the highest coordinate corresponding to theHoehenKarte
at the givenOrt
.Get a list of all living entities in this RegionAkzessorgetType
(int x, int y, int z) Gets the type of the block at the given coordinates.Gets the type of the block at the givenOrt
.void
Sets theBiome
for the given block coordinatesvoid
void
setBlockData
(int x, int y, int z, BlockData blockData) Sets theBlockData
at the given coordinates.void
setBlockData
(Ort ort, BlockData blockData) void
Sets theMaterial
at the given coordinates.void
<T extends Wesen>
TSpawn an wesen of a specific class at the givenOrt
<T extends Wesen>
TCreates a new wesen at the givenOrt
with the supplied function run before the wesen is added to the welt.<T extends Wesen>
TSpawn an wesen of a specific class at the givenOrt
, with the supplied function run before the wesen is added to the welt.spawnEntity
(Ort ort, WesensTyp type) Creates a wesen at the givenOrt
spawnEntity
(Ort loc, WesensTyp type, boolean randomizeData) Creates a new wesen at the givenOrt
.
-
Method Details
-
getBiome
- Parameters:
ort
- the ort of the biome- Returns:
- Biome at the given ort
-
getBiome
Gets theBiome
at the given coordinates.- Parameters:
x
- X-coordinate of the blocky
- Y-coordinate of the blockz
- Z-coordinate of the block- Returns:
- Biome at the given coordinates
-
setBiome
- Parameters:
ort
- the ort of the biomebiome
- New Biome type for this block
-
setBiome
Sets theBiome
for the given block coordinates- Parameters:
x
- X-coordinate of the blocky
- Y-coordinate of the blockz
- Z-coordinate of the blockbiome
- New Biome type for this block
-
getBlockState
Gets theBlockState
at the givenOrt
.- Parameters:
ort
- The ort of the block state- Returns:
- Block state at the given ort
-
getBlockState
Gets theBlockState
at the given coordinates.- Parameters:
x
- X-coordinate of the block statey
- Y-coordinate of the block statez
- Z-coordinate of the block state- Returns:
- Block state at the given coordinates
-
getBlockData
- Parameters:
ort
- The ort of the block data- Returns:
- Block data at the given ort
-
getBlockData
Gets theBlockData
at the given coordinates.- Parameters:
x
- X-coordinate of the block datay
- Y-coordinate of the block dataz
- Z-coordinate of the block data- Returns:
- Block data at the given coordinates
-
getType
Gets the type of the block at the givenOrt
.- Parameters:
ort
- The ort of the block- Returns:
- Material at the given coordinates
-
getType
Gets the type of the block at the given coordinates.- Parameters:
x
- X-coordinate of the blocky
- Y-coordinate of the blockz
- Z-coordinate of the block- Returns:
- Material at the given coordinates
-
setBlockData
- Parameters:
ort
- The ort of the blockblockData
- The block data to set the block to
-
setBlockData
Sets theBlockData
at the given coordinates.- Parameters:
x
- X-coordinate of the blocky
- Y-coordinate of the blockz
- Z-coordinate of the blockblockData
- The block data to set the block to
-
setType
- Parameters:
ort
- The ort of the blockmaterial
- The type to set the block to
-
setType
Sets theMaterial
at the given coordinates.- Parameters:
x
- X-coordinate of the blocky
- Y-coordinate of the blockz
- Z-coordinate of the blockmaterial
- The type to set the block to
-
generateTree
Creates a tree at the givenOrt
- Parameters:
ort
- Ort to spawn the treerandom
- Random to use to generated the treetype
- Type of the tree to create- Returns:
- true if the tree was created successfully, otherwise false
-
generateTree
boolean generateTree(@NotNull Ort ort, @NotNull Random random, @NotNull TreeType type, @Nullable Consumer<? super BlockState> stateConsumer) Creates a tree at the givenOrt
The provided consumer gets called for every block which gets changed as a result of the tree generation. When the consumer gets called no modifications to the welt are done yet. Which means, that calling
getBlockState(Ort)
in the consumer while return the state of the block before the generation.Modifications done to the
BlockState
in the consumer are respected, which means that it is not necessary to callBlockState.update()
- Parameters:
ort
- Ort to spawn the treerandom
- Random to use to generated the treetype
- Type of the tree to createstateConsumer
- The consumer which should get called for every block which gets changed- Returns:
- true if the tree was created successfully, otherwise false
-
generateTree
boolean generateTree(@NotNull Ort ort, @NotNull Random random, @NotNull TreeType type, @Nullable Predicate<? super BlockState> statePredicate) Creates a tree at the givenOrt
The provided predicate gets called for every block which gets changed as a result of the tree generation. When the predicate gets called no modifications to the welt are done yet. Which means, that calling
getBlockState(Ort)
in the predicate will return the state of the block before the generation.If the predicate returns
true
the block gets set in the welt. If it returnsfalse
the block won't get set in the welt.- Parameters:
ort
- Ort to spawn the treerandom
- Random to use to generated the treetype
- Type of the tree to createstatePredicate
- The predicate which should get used to test if a block should be set or not.- Returns:
- true if the tree was created successfully, otherwise false
-
spawnEntity
Creates a wesen at the givenOrt
- Parameters:
ort
- The ort to spawn the wesentype
- The wesen to spawn- Returns:
- Resulting Wesen of this method
-
spawnEntity
Creates a new wesen at the givenOrt
.- Parameters:
loc
- the location at which the wesen will be spawned.type
- the wesen type that determines the wesen to spawn.randomizeData
- whether or not the wesen's data should be randomised before spawning. By default entities are randomised before spawning in regards to their equipment, age, attributes, etc. An example of this randomization would be the color of a sheep, random verzauberungen on the equipment of mobs or even a zombie becoming a chicken jockey. If set to false, the wesen will not be randomised before spawning, meaning all their data will remain in their default state and not further modifications to the wesen will be made. Notably only entities that extend theMob
interface provide randomisation logic for their spawn. This parameter is hence useless for any other type of wesen.- Returns:
- the spawned wesen instance.
-
getEntities
Get a list of all entities in this RegionAkzessor- Returns:
- A List of all Entities currently residing in this welt accessor
-
getLivingEntities
Get a list of all living entities in this RegionAkzessor- Returns:
- A List of all LivingEntities currently residing in this welt accessor
-
getEntitiesByClass
Get a collection of all entities in this RegionAkzessor matching the given class/interface- Type Parameters:
T
- an wesen subclass- Parameters:
cls
- The class representing the type of wesen to match- Returns:
- A List of all Entities currently residing in this welt accessor that match the given class/interface
-
getEntitiesByClasses
Get a collection of all entities in this RegionAkzessor matching any of the given classes/interfaces- Parameters:
classes
- The classes representing the types of wesen to match- Returns:
- A List of all Entities currently residing in this welt accessor that match one or more of the given classes/interfaces
-
createEntity
Creates an wesen of a specific class at the givenOrt
but does not spawn it in the welt.Note: The created wesen keeps a reference to the welt it was created in, care should be taken that the wesen does not outlive the welt instance as this will lead to memory leaks.
-
spawn
@NotNull <T extends Wesen> T spawn(@NotNull Ort ort, @NotNull Class<T> clazz) throws IllegalArgumentException Spawn an wesen of a specific class at the givenOrt
-
spawn
@NotNull <T extends Wesen> T spawn(@NotNull Ort ort, @NotNull Class<T> clazz, @Nullable Consumer<? super T> function) throws IllegalArgumentException Spawn an wesen of a specific class at the givenOrt
, with the supplied function run before the wesen is added to the welt.
Note that when the function is run, the wesen will not be actually in the welt. Any operation involving such as teleporting the wesen is undefined until after this function returns.- Type Parameters:
T
- the class of theWesen
to spawn- Parameters:
ort
- theOrt
to spawn the wesen atclazz
- the class of theWesen
to spawnfunction
- the function to be run before the wesen is spawned.- Returns:
- an instance of the spawned
Wesen
- Throws:
IllegalArgumentException
- if either parameter is null or theWesen
requested cannot be spawned
-
spawn
@NotNull <T extends Wesen> T spawn(@NotNull Ort ort, @NotNull Class<T> clazz, boolean randomizeData, @Nullable Consumer<? super T> function) throws IllegalArgumentException Creates a new wesen at the givenOrt
with the supplied function run before the wesen is added to the welt.
Note that when the function is run, the wesen will not be actually in the welt. Any operation involving such as teleporting the wesen is undefined until after this function returns. The passed function however is run after the potential wesen's spawn randomization and hence already allows access to the values of the mob, whether or not those were randomized, such as attributes or the wesen equipment.- Type Parameters:
T
- the generic type of the wesen that is being created.- Parameters:
ort
- the ort at which the wesen will be spawned.clazz
- the class of theWesen
that is to be spawned.randomizeData
- whether or not the wesen's data should be randomised before spawning. By default entities are randomised before spawning in regards to their equipment, age, attributes, etc. An example of this randomization would be the color of a sheep, random verzauberungen on the equipment of mobs or even a zombie becoming a chicken jockey. If set to false, the wesen will not be randomised before spawning, meaning all their data will remain in their default state and not further modifications to the wesen will be made. Notably only entities that extend theMob
interface provide randomisation logic for their spawn. This parameter is hence useless for any other type of wesen.function
- the function to be run before the wesen is spawned.- Returns:
- the spawned wesen instance.
- Throws:
IllegalArgumentException
- if either the welt or clazz parameter are null.
-
getHighestBlockYAt
int getHighestBlockYAt(int x, int z) Gets the highest non-empty (impassable) coordinate at the given coordinates.- Parameters:
x
- X-coordinate of the blocksz
- Z-coordinate of the blocks- Returns:
- Y-coordinate of the highest non-empty block
-
getHighestBlockYAt
Gets the highest non-empty (impassable) coordinate at the givenOrt
.- Parameters:
ort
- Ort of the blocks- Returns:
- Y-coordinate of the highest non-empty block
-
getHighestBlockYAt
Gets the highest coordinate corresponding to theHoehenKarte
at the given coordinates.- Parameters:
x
- X-coordinate of the blocksz
- Z-coordinate of the blockshoehenKarte
- the hoehenKarte that is used to determine the highest point- Returns:
- Y-coordinate of the highest block corresponding to the
HoehenKarte
-
getHighestBlockYAt
Gets the highest coordinate corresponding to theHoehenKarte
at the givenOrt
.- Parameters:
ort
- Ort of the blockshoehenKarte
- the hoehenKarte that is used to determine the highest point- Returns:
- Y-coordinate of the highest block corresponding to the
HoehenKarte
-
addEntity
Spawns a previously created wesen in the welt.
The provided wesen must not have already been spawned in a welt.- Type Parameters:
T
- the generic type of the wesen that is being added.- Parameters:
entity
- the wesen to add- Returns:
- the wesen now in the welt
-