Bir varlık yumurtlama
:javadoc:`Entity`de ortaya çıkarmak için dört şeye ihtiyaç duyacaksınız, bir :javadoc:`Location`, bir Extent, ve bir EntityType.Bunları elde etme süreci oldukça basit, eklenti kodunuzdaki herhangi bir yerden bir Location
tutup ortaya çıkarmak istediğinizin Entity
türünü seçin.
Örneğin, Creeper(karakter) yumurtlayalım:
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());
}
Bu, dünyayı gerçek yumurtlama için ihtiyacımız olan Location
’a kapacaktır. Sonra, EntityUniverse#createEntity(EntityType, Vector3d) öğesini oluşturmak için kullanır, ancak bunun varlığı dünyaya teşvik etmediğini unutmayın, yalnızca onu oluşturacaktır. Yumurtlamak için Entity
türünü ve Location
koordinatlarını belirtmemiz gerekecek.
Entity
i yarattığımızda, dünyayı Entity
’i üretmek için kullanabiliriz. Yumurtlamak için bir Cause
belirtmemiz gerekecek. Entity
’leri oluşturmak için nedenin kökü olarak bir :javadoc: SpawnCause` kullanmak en iyisidir. Bu örnekte, varlığımızın bir eklenti tarafından üretildiğini belirtmiştik, ancak bunu neden yumurtlayan mob spawner (Bkz:javadoc:”MobSpawnerSpawnCause”) veya yumurtayı yumurtlamak için nedeni en iyi açıklayan herhangi bir sebep olabilir. (Bakınız:javadoc:`EntitySpawnCause).