public final class GameWorld extends Object
| Type | Property and Description |
|---|---|
javafx.beans.property.ObjectProperty<Entity> |
selectedEntity |
| Constructor and Description |
|---|
GameWorld()
Constructs the world with initial entity capacity = 32.
|
GameWorld(int initialCapacity) |
| Modifier and Type | Method and Description |
|---|---|
void |
addEntities(Entity... entitiesToAdd) |
void |
addEntity(Entity entity)
The entity will be added to update list in the next tick.
|
void |
addWorldListener(EntityWorldListener listener) |
void |
clear()
Removes all (including with IrremovableComponent) entities.
|
Optional<Entity> |
getClosestEntity(Entity entity,
Predicate<Entity> filter)
Returns the closest entity to the given entity with given
filter.
|
void |
getCollidingEntities(Array<Entity> result,
Entity entity)
GC-friendly version of
getCollidingEntities(Entity). |
List<Entity> |
getCollidingEntities(Entity entity)
Returns a list of entities
which colliding with given entity.
|
List<Entity> |
getEntities() |
void |
getEntitiesAt(Array<Entity> result,
javafx.geometry.Point2D position)
GC-friendly version of
getEntitiesAt(Point2D). |
List<Entity> |
getEntitiesAt(javafx.geometry.Point2D position)
Returns a list of entities at given position.
|
List<Entity> |
getEntitiesByComponent(Class<? extends Component> type) |
void |
getEntitiesByLayer(Array<Entity> result,
RenderLayer layer)
GC-friendly version of
getEntitiesByLayer(RenderLayer). |
List<Entity> |
getEntitiesByLayer(RenderLayer layer)
Returns a list of entities which have the given render layer index.
|
void |
getEntitiesByType(Array<Entity> result,
Enum<?>... types)
GC-friendly version of
getEntitiesByType(Enum[]). |
List<Entity> |
getEntitiesByType(Enum<?>... types)
If called with no arguments, all entities are returned.
|
List<Entity> |
getEntitiesCopy() |
void |
getEntitiesFiltered(Array<Entity> result,
Predicate<Entity> predicate)
GC-friendly version of
getEntitiesFiltered(Predicate). |
List<Entity> |
getEntitiesFiltered(Predicate<Entity> predicate)
Returns a list of entities which are filtered by
given predicate.
|
void |
getEntitiesInRange(Array<Entity> result,
double minX,
double minY,
double maxX,
double maxY)
GC-friendly version of
getEntitiesInRange(Rectangle2D). |
List<Entity> |
getEntitiesInRange(javafx.geometry.Rectangle2D selection)
Returns a list of entities
which are partially or entirely
in the specified rectangular selection.
|
Optional<Entity> |
getEntityByID(String name,
int id)
Returns an entity whose IDComponent matches given name and id.
|
<T extends EntityFactory> |
getEntityFactory() |
<T extends Entity> |
getGroup(Enum<?>... types) |
Optional<Entity> |
getRandom(Enum<?> type) |
Optional<Entity> |
getRandom(Predicate<Entity> predicate) |
Optional<Entity> |
getSelectedEntity() |
Optional<Entity> |
getSingleton(Enum<?> type)
Useful for singleton type entities, e.g.
|
Optional<Entity> |
getSingleton(Predicate<Entity> predicate) |
void |
onUpdate(double tpf) |
void |
removeEntities(Entity... entitiesToRemove) |
void |
removeEntity(Entity entity)
Entity will be removed from world and parties notified of removal in the same frame.
|
void |
removeWorldListener(EntityWorldListener listener) |
javafx.beans.property.ObjectProperty<Entity> |
selectedEntityProperty() |
void |
setEntityFactory(EntityFactory entityFactory)
Set main entity factory to be used via
spawn(String, SpawnData). |
void |
setLevel(Level level)
Set level to given.
|
void |
setLevelFromMap(String mapFileName) |
void |
setLevelFromMap(TiledMap map) |
Entity |
spawn(String entityName) |
Entity |
spawn(String entityName,
double x,
double y)
Creates an entity with given name at x, y using specified entity factory.
|
Entity |
spawn(String entityName,
javafx.geometry.Point2D position)
Creates an entity with given name at x, y using specified entity factory.
|
Entity |
spawn(String entityName,
SpawnData data)
Creates an entity with given name and data using specified entity factory.
|
public javafx.beans.property.ObjectProperty<Entity> selectedEntityProperty
getSelectedEntity()public GameWorld()
public GameWorld(int initialCapacity)
initialCapacity - initial entity capacitypublic void addEntity(Entity entity)
entity - the entity to add to worldpublic void addEntities(Entity... entitiesToAdd)
public void removeEntity(Entity entity)
public void removeEntities(Entity... entitiesToRemove)
public void clear()
public void addWorldListener(EntityWorldListener listener)
public void removeWorldListener(EntityWorldListener listener)
public List<Entity> getEntities()
public List<Entity> getEntitiesCopy()
public void onUpdate(double tpf)
public Optional<Entity> getSelectedEntity()
public javafx.beans.property.ObjectProperty<Entity> selectedEntityProperty()
getSelectedEntity()public void setLevel(Level level)
level - the levelpublic void setLevelFromMap(String mapFileName)
mapFileName - name of the .json file or the .tmx filepublic void setLevelFromMap(TiledMap map)
public <T extends EntityFactory> T getEntityFactory()
public void setEntityFactory(EntityFactory entityFactory)
spawn(String, SpawnData).entityFactory - factory for creating entitiespublic Entity spawn(String entityName, javafx.geometry.Point2D position)
entityName - name of entity as specified by Spawnsposition - spawn locationpublic Entity spawn(String entityName, double x, double y)
entityName - name of entity as specified by Spawnsx - x positiony - y positionpublic Entity spawn(String entityName, SpawnData data)
entityName - name of entity as specified by Spawnsdata - spawn data, such as x, y and any extra infopublic Optional<Entity> getSingleton(Enum<?> type)
public Optional<Entity> getSingleton(Predicate<Entity> predicate)
public Optional<Entity> getRandom(Enum<?> type)
type - entity typepublic List<Entity> getEntitiesByComponent(Class<? extends Component> type)
type - component typepublic List<Entity> getEntitiesFiltered(Predicate<Entity> predicate)
predicate - filterpublic void getEntitiesFiltered(Array<Entity> result, Predicate<Entity> predicate)
getEntitiesFiltered(Predicate).result - the array to collect entitiespredicate - filterpublic List<Entity> getEntitiesByType(Enum<?>... types)
types - entity typespublic void getEntitiesByType(Array<Entity> result, Enum<?>... types)
getEntitiesByType(Enum[]).result - the array to collect entitiestypes - entity typespublic List<Entity> getEntitiesInRange(javafx.geometry.Rectangle2D selection)
selection - Rectangle2D that describes the selection boxpublic void getEntitiesInRange(Array<Entity> result, double minX, double minY, double maxX, double maxY)
getEntitiesInRange(Rectangle2D).result - the array to collect entitiesminX - min xminY - min ymaxX - max xmaxY - max ypublic List<Entity> getCollidingEntities(Entity entity)
entity - the entitypublic void getCollidingEntities(Array<Entity> result, Entity entity)
getCollidingEntities(Entity).result - the array to collect entitiesentity - the entitypublic List<Entity> getEntitiesByLayer(RenderLayer layer)
layer - render layerpublic void getEntitiesByLayer(Array<Entity> result, RenderLayer layer)
getEntitiesByLayer(RenderLayer).result - the array to collect entitieslayer - render layerpublic List<Entity> getEntitiesAt(javafx.geometry.Point2D position)
position - point in the worldpublic void getEntitiesAt(Array<Entity> result, javafx.geometry.Point2D position)
getEntitiesAt(Point2D).result - the array to collect entitiesposition - point in the worldpublic Optional<Entity> getClosestEntity(Entity entity, Predicate<Entity> filter)
If there no entities satisfying the requirement, Optional.empty()
is returned.
Warning: object allocation.
entity - selected entityfilter - requirementspublic Optional<Entity> getEntityByID(String name, int id)
Returns Optional.empty() if no entity was found with such combination.
This query only works on entities with IDComponent.
name - entity nameid - entity idOptional.empty()Copyright © 2018. All rights reserved.