Bir varlık yumurtlama
Uyarı
These docs were written for SpongeAPI 7 and are likely out of date. If you feel like you can help update them, please submit a PR!
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.CauseStackManager.StackFrame;
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());
// We need to push a new cause StackFrame to the stack so we can add our own causes
// In previous versions of the API you had to submit a Cause parameter
// that would often not contain the real root cause
// By default the current plugin's PluginContainer is already pushed to the stack.
try (StackFrame frame = Sponge.getCauseStackManager().pushCauseFrame()) {
frame.addContext(EventContextKeys.SPAWN_TYPE, SpawnTypes.PLUGIN);
world.spawnEntity(creeper);
}
}
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.
Once we have created our Entity
we can then use the world for spawning the Entity
. We should specify a
Cause
for the spawning so other plugins can handle it accordingly. For spawning Entity
s, it is best to use a
SpawnType as part of the context. In this example, we stated that our entity was spawned from a plugin,
however we can make it any cause/context that best describes why we are spawning this in, such as a mob spawner
(See SpawnTypes#MOB_SPAWNER), or spawn egg (See SpawnTypes#SPAWN_EGG).