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).