Generando una Entidad

Usted necesitará cuatro cosas para spawnear: una :javadoc: Entity, una Location, :javadoc:`Extent`y un :javadoc:`EntityType`. El proceso para conseguirlos es simple, sólo necesita agarrar una ``Location``de alguna parte en su código plug-in y elegir el tipo de ``Entity``que desea generar (spawn).

Por ejemplo, intenta crear un Creeper:

import org.spongepowered.api.entity.Entity;
import org.spongepowered.api.entity.EntityTypes;
import org.spongepowered.api.event.cause.Cause;
import org.spongepowered.api.event.cause.entity.spawn.SpawnCause;
import org.spongepowered.api.event.cause.entity.spawn.SpawnTypes;
import org.spongepowered.api.world.Location;
import org.spongepowered.api.world.World;

import java.util.Optional;

public void spawnEntity(Location<World> spawnLocation) {
    World world = spawnLocation.getExtent();
    Entity creeper = world
        .createEntity(EntityTypes.CREEPER, spawnLocation.getPosition());
    SpawnCause spawnCause = SpawnCause.builder().type(SpawnTypes.PLUGIN).build();
    world.spawnEntity(creeper, Cause.source(spawnCause).build());
}

Esto tomara del mundo nuestra``Location``, la cual necesitaremos para generar actualmente. Despues, usa EntityUniverse#createEntity(EntityType, Vector3d) a generar, y las co-ordenadas de su``Location``.

Una vez que tengamos creada nuestra``Entity``entonces podremos usar el generador del mundo de``Entity``. Nosotros necesitaremos para especificar la``Cause``para el generador. Para generar``Entity``s, es mejor usar :javadoc:`SpawnCause`como la raiz de la causa. En este ejemplo, nosotros fijamos que nuestra entidad fue generada por el plugin, sin embargo podemos crear cualquier causa que mejor se describa porque nosotros generamos esta dentro, semejante a los puntos de generacion(ver:javadoc:`MobSpawnerSpawnCause`),o el huevo generador (ver:javadoc:EntitySpawnCause).