Bir varlık yumurtlama
Yumurtlamak için üç şey gerekecek :javadoc:`Varlık' :javadoc:`Location` Extent ve bir EntityType. Bunları alma süreci oldukça basit, sadece eklenti kodunuzdaki bir yerden bir Location’a koymanızve yumurtlamak istediğiniz Entity
türünü seçmeniz gerekiyor.
Ö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).