Search in sources :

Example 6 with Spawnpoint

use of de.gurkenlabs.litiengine.entities.Spawnpoint in project litiengine by gurkenlabs.

the class Environment method addEntity.

private void addEntity(final IEntity entity) {
    int desiredID = entity.getMapId();
    // assign local map id if the entity's mapID is invalid
    if (desiredID == 0 || this.allEntities.keySet().contains(desiredID)) {
        entity.setMapId(getLocalMapId());
        log.fine(() -> String.format("Entity [%s] was assigned a local mapID because #%d was already taken or invalid.", entity, desiredID));
    }
    if (entity instanceof Emitter) {
        Emitter emitter = (Emitter) entity;
        this.addEmitter(emitter);
    }
    if (entity instanceof ICombatEntity) {
        this.combatEntities.put(entity.getMapId(), (ICombatEntity) entity);
    }
    if (entity instanceof IMobileEntity) {
        this.mobileEntities.put(entity.getMapId(), (IMobileEntity) entity);
    }
    if (entity instanceof Prop) {
        this.props.add((Prop) entity);
    }
    if (entity instanceof Creature) {
        this.creatures.add((Creature) entity);
    }
    if (entity instanceof CollisionBox) {
        this.colliders.add((CollisionBox) entity);
    }
    if (entity instanceof LightSource) {
        this.lightSources.add((LightSource) entity);
    }
    if (entity instanceof Trigger) {
        this.triggers.add((Trigger) entity);
    }
    if (entity instanceof Spawnpoint) {
        this.spawnPoints.add((Spawnpoint) entity);
    }
    if (entity instanceof SoundSource) {
        this.soundSources.add((SoundSource) entity);
    }
    if (entity instanceof StaticShadow) {
        this.staticShadows.add((StaticShadow) entity);
    } else if (entity instanceof MapArea) {
        this.mapAreas.add((MapArea) entity);
    }
    for (String rawTag : entity.getTags()) {
        if (rawTag == null) {
            continue;
        }
        final String tag = rawTag.trim().toLowerCase();
        if (tag.isEmpty()) {
            continue;
        }
        this.getEntitiesByTag().computeIfAbsent(tag, t -> new CopyOnWriteArrayList<>()).add(entity);
    }
    // we need to load the new entity manually
    if (this.loaded) {
        this.load(entity);
    }
    this.allEntities.put(entity.getMapId(), entity);
}
Also used : SoundSource(de.gurkenlabs.litiengine.entities.SoundSource) Color(java.awt.Color) Arrays(java.util.Arrays) AmbientLight(de.gurkenlabs.litiengine.graphics.AmbientLight) Point2D(java.awt.geom.Point2D) StaticShadow(de.gurkenlabs.litiengine.entities.StaticShadow) Rectangle2D(java.awt.geom.Rectangle2D) GameMetrics(de.gurkenlabs.litiengine.GameMetrics) ColorLayer(de.gurkenlabs.litiengine.graphics.ColorLayer) ILayer(de.gurkenlabs.litiengine.environment.tilemap.ILayer) DebugRenderer(de.gurkenlabs.litiengine.graphics.DebugRenderer) IMovementController(de.gurkenlabs.litiengine.physics.IMovementController) GravityForce(de.gurkenlabs.litiengine.physics.GravityForce) Map(java.util.Map) Trigger(de.gurkenlabs.litiengine.entities.Trigger) Creature(de.gurkenlabs.litiengine.entities.Creature) Shape(java.awt.Shape) EnumMap(java.util.EnumMap) Predicate(java.util.function.Predicate) Collection(java.util.Collection) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) EntityInfo(de.gurkenlabs.litiengine.entities.EntityInfo) RenderType(de.gurkenlabs.litiengine.graphics.RenderType) AffineTransform(java.awt.geom.AffineTransform) Logger(java.util.logging.Logger) IEntity(de.gurkenlabs.litiengine.entities.IEntity) Collectors(java.util.stream.Collectors) List(java.util.List) IMapObjectLayer(de.gurkenlabs.litiengine.environment.tilemap.IMapObjectLayer) Modifier(java.lang.reflect.Modifier) Entry(java.util.Map.Entry) Optional(java.util.Optional) Spawnpoint(de.gurkenlabs.litiengine.entities.Spawnpoint) Game(de.gurkenlabs.litiengine.Game) EntityListener(de.gurkenlabs.litiengine.entities.EntityListener) CopyOnWriteArrayList(java.util.concurrent.CopyOnWriteArrayList) GeometricUtilities(de.gurkenlabs.litiengine.util.geom.GeometricUtilities) CollisionBox(de.gurkenlabs.litiengine.entities.CollisionBox) LightSource(de.gurkenlabs.litiengine.entities.LightSource) IMap(de.gurkenlabs.litiengine.environment.tilemap.IMap) MapUtilities(de.gurkenlabs.litiengine.environment.tilemap.MapUtilities) Quality(de.gurkenlabs.litiengine.configuration.Quality) IMapObject(de.gurkenlabs.litiengine.environment.tilemap.IMapObject) ArrayList(java.util.ArrayList) Level(java.util.logging.Level) Blueprint(de.gurkenlabs.litiengine.environment.tilemap.xml.Blueprint) Graphics2D(java.awt.Graphics2D) StaticShadowLayer(de.gurkenlabs.litiengine.graphics.StaticShadowLayer) Prop(de.gurkenlabs.litiengine.entities.Prop) BiConsumer(java.util.function.BiConsumer) ICollisionEntity(de.gurkenlabs.litiengine.entities.ICollisionEntity) MapProperty(de.gurkenlabs.litiengine.environment.tilemap.MapProperty) MapArea(de.gurkenlabs.litiengine.entities.MapArea) Iterator(java.util.Iterator) Emitter(de.gurkenlabs.litiengine.graphics.emitters.Emitter) IRenderable(de.gurkenlabs.litiengine.graphics.IRenderable) Resources(de.gurkenlabs.litiengine.resources.Resources) ICombatEntity(de.gurkenlabs.litiengine.entities.ICombatEntity) Consumer(java.util.function.Consumer) MapObjectType(de.gurkenlabs.litiengine.environment.tilemap.MapObjectType) TimeUtilities(de.gurkenlabs.litiengine.util.TimeUtilities) Direction(de.gurkenlabs.litiengine.Direction) IMobileEntity(de.gurkenlabs.litiengine.entities.IMobileEntity) StaticShadowType(de.gurkenlabs.litiengine.graphics.StaticShadowType) RenderEngine(de.gurkenlabs.litiengine.graphics.RenderEngine) SoundSource(de.gurkenlabs.litiengine.entities.SoundSource) Collections(java.util.Collections) IUpdateable(de.gurkenlabs.litiengine.IUpdateable) MapRenderer(de.gurkenlabs.litiengine.environment.tilemap.MapRenderer) Emitter(de.gurkenlabs.litiengine.graphics.emitters.Emitter) ICombatEntity(de.gurkenlabs.litiengine.entities.ICombatEntity) Creature(de.gurkenlabs.litiengine.entities.Creature) Prop(de.gurkenlabs.litiengine.entities.Prop) MapArea(de.gurkenlabs.litiengine.entities.MapArea) Spawnpoint(de.gurkenlabs.litiengine.entities.Spawnpoint) Blueprint(de.gurkenlabs.litiengine.environment.tilemap.xml.Blueprint) Trigger(de.gurkenlabs.litiengine.entities.Trigger) StaticShadow(de.gurkenlabs.litiengine.entities.StaticShadow) IMobileEntity(de.gurkenlabs.litiengine.entities.IMobileEntity) LightSource(de.gurkenlabs.litiengine.entities.LightSource) Spawnpoint(de.gurkenlabs.litiengine.entities.Spawnpoint) CollisionBox(de.gurkenlabs.litiengine.entities.CollisionBox) CopyOnWriteArrayList(java.util.concurrent.CopyOnWriteArrayList)

Example 7 with Spawnpoint

use of de.gurkenlabs.litiengine.entities.Spawnpoint in project litiengine by gurkenlabs.

the class SpawnpointMapObjectLoader method load.

@Override
public Collection<IEntity> load(Environment environment, IMapObject mapObject) {
    Collection<IEntity> entities = new ArrayList<>();
    if (!this.isMatchingType(mapObject)) {
        return entities;
    }
    final Direction direction = mapObject.getStringValue(MapObjectProperty.SPAWN_DIRECTION) != null ? Direction.valueOf(mapObject.getStringValue(MapObjectProperty.SPAWN_DIRECTION)) : Direction.DOWN;
    final String spawnType = mapObject.getStringValue(MapObjectProperty.SPAWN_INFO);
    final Spawnpoint spawn = this.createSpawnpoint(mapObject, direction, spawnType);
    loadDefaultProperties(spawn, mapObject);
    entities.add(spawn);
    return entities;
}
Also used : IEntity(de.gurkenlabs.litiengine.entities.IEntity) ArrayList(java.util.ArrayList) Direction(de.gurkenlabs.litiengine.Direction) Spawnpoint(de.gurkenlabs.litiengine.entities.Spawnpoint)

Aggregations

Spawnpoint (de.gurkenlabs.litiengine.entities.Spawnpoint)7 Creature (de.gurkenlabs.litiengine.entities.Creature)3 IEntity (de.gurkenlabs.litiengine.entities.IEntity)3 ArrayList (java.util.ArrayList)3 Direction (de.gurkenlabs.litiengine.Direction)2 CollisionBox (de.gurkenlabs.litiengine.entities.CollisionBox)2 ICombatEntity (de.gurkenlabs.litiengine.entities.ICombatEntity)2 IMobileEntity (de.gurkenlabs.litiengine.entities.IMobileEntity)2 LightSource (de.gurkenlabs.litiengine.entities.LightSource)2 MapArea (de.gurkenlabs.litiengine.entities.MapArea)2 Prop (de.gurkenlabs.litiengine.entities.Prop)2 SoundSource (de.gurkenlabs.litiengine.entities.SoundSource)2 StaticShadow (de.gurkenlabs.litiengine.entities.StaticShadow)2 Trigger (de.gurkenlabs.litiengine.entities.Trigger)2 Emitter (de.gurkenlabs.litiengine.graphics.emitters.Emitter)2 List (java.util.List)2 CopyOnWriteArrayList (java.util.concurrent.CopyOnWriteArrayList)2 Game (de.gurkenlabs.litiengine.Game)1 GameMetrics (de.gurkenlabs.litiengine.GameMetrics)1 GameTest (de.gurkenlabs.litiengine.GameTest)1