本文整理匯總了Java中net.minecraft.world.WorldServer.spawnEntity方法的典型用法代碼示例。如果您正苦於以下問題:Java WorldServer.spawnEntity方法的具體用法?Java WorldServer.spawnEntity怎麽用?Java WorldServer.spawnEntity使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類net.minecraft.world.WorldServer
的用法示例。
在下文中一共展示了WorldServer.spawnEntity方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: teleportToDimension
import net.minecraft.world.WorldServer; //導入方法依賴的package包/類
public static void teleportToDimension(EntityPlayer player, int dimension, double x, double y, double z) {
int oldDimension = player.getEntityWorld().provider.getDimension();
EntityPlayerMP entityPlayerMP = (EntityPlayerMP) player;
MinecraftServer server = player.getEntityWorld().getMinecraftServer();
WorldServer worldServer = server.getWorld(dimension);
player.addExperienceLevel(0);
worldServer.getMinecraftServer().getPlayerList().transferPlayerToDimension(entityPlayerMP, dimension, new RfToolsTeleporter(worldServer, x, y, z));
player.setPositionAndUpdate(x, y, z);
if (oldDimension == 1) {
// For some reason teleporting out of the end does weird things.
player.setPositionAndUpdate(x, y, z);
worldServer.spawnEntity(player);
worldServer.updateEntityWithOptionalForce(player, false);
}
}
示例2: teleportToDimension
import net.minecraft.world.WorldServer; //導入方法依賴的package包/類
public static void teleportToDimension(EntityPlayer player, int dimension, double x, double y, double z) {
int oldDimension = player.getEntityWorld().provider.getDimension();
EntityPlayerMP entityPlayerMP = (EntityPlayerMP) player;
MinecraftServer server = player.getEntityWorld().getMinecraftServer();
WorldServer worldServer = server.getWorld(dimension);
player.addExperienceLevel(0);
worldServer.getMinecraftServer().getPlayerList().transferPlayerToDimension(entityPlayerMP, dimension, new WhooshTeleporter(worldServer, x, y, z));
player.setPositionAndUpdate(x, y, z);
if (oldDimension == 1) {
// For some reason teleporting out of the end does weird things.
player.setPositionAndUpdate(x, y, z);
worldServer.spawnEntity(player);
worldServer.updateEntityWithOptionalForce(player, false);
}
}
示例3: teleportPlayerToDimension
import net.minecraft.world.WorldServer; //導入方法依賴的package包/類
private static void teleportPlayerToDimension(EntityPlayerMP playerIn, int suggestedDimensionId, double x, double y, double z) {
WorldServer fromWorld = FMLCommonHandler.instance().getMinecraftServerInstance().getWorld(playerIn.dimension);
WorldServer toWorld = FMLCommonHandler.instance().getMinecraftServerInstance().getWorld(suggestedDimensionId);
playerIn.dimension = toWorld.provider.getDimension();
ChunkPos pos = new ChunkPos(playerIn.getPosition());
toWorld.getChunkProvider().loadChunk(pos.x, pos.z);
final int dimensionId = playerIn.dimension;
if (fromWorld != toWorld && fromWorld.provider.getDimensionType() == toWorld.provider.getDimensionType()) {
playerIn.connection.sendPacket(new SPacketRespawn((dimensionId >= 0 ? -1 : 0), toWorld.getDifficulty(), toWorld.getWorldInfo().getTerrainType(), playerIn.interactionManager.getGameType()));
}
playerIn.connection.sendPacket(new SPacketRespawn(dimensionId, toWorld.getDifficulty(), toWorld.getWorldInfo().getTerrainType(), playerIn.interactionManager.getGameType()));
fromWorld.removeEntityDangerously(playerIn);
playerIn.isDead = false;
playerIn.connection.setPlayerLocation(x, y, z, playerIn.rotationYaw, playerIn.rotationPitch);
playerIn.world = toWorld;
playerIn.setWorld(toWorld);
toWorld.spawnEntity(playerIn);
toWorld.updateEntityWithOptionalForce(playerIn, false);
WorldServer worldserver = playerIn.getServerWorld();
fromWorld.getPlayerChunkMap().removePlayer(playerIn);
worldserver.getPlayerChunkMap().addPlayer(playerIn);
worldserver.getChunkProvider().provideChunk((int)playerIn.posX >> 4, (int)playerIn.posZ >> 4);
playerIn.connection.setPlayerLocation(playerIn.posX, playerIn.posY, playerIn.posZ, playerIn.rotationYaw, playerIn.rotationPitch);
playerIn.interactionManager.setWorld(toWorld);
WorldBorder worldborder = FMLCommonHandler.instance().getMinecraftServerInstance().worlds[0].getWorldBorder();
playerIn.connection.sendPacket(new SPacketWorldBorder(worldborder, SPacketWorldBorder.Action.INITIALIZE));
playerIn.connection.sendPacket(new SPacketTimeUpdate(toWorld.getTotalWorldTime(), toWorld.getWorldTime(), toWorld.getGameRules().getBoolean("doDaylightCycle")));
if (toWorld.isRaining()) {
playerIn.connection.sendPacket(new SPacketChangeGameState(1, 0.0F));
playerIn.connection.sendPacket(new SPacketChangeGameState(7, toWorld.getRainStrength(1.0F)));
playerIn.connection.sendPacket(new SPacketChangeGameState(8, toWorld.getThunderStrength(1.0F)));
}
playerIn.sendContainerToPlayer(playerIn.inventoryContainer);
playerIn.setPlayerHealthUpdated();
playerIn.connection.sendPacket(new SPacketHeldItemChange(playerIn.inventory.currentItem));
}
示例4: transferPlayerToWorld
import net.minecraft.world.WorldServer; //導入方法依賴的package包/類
private static void transferPlayerToWorld(Entity entityIn, int lastDimension, WorldServer oldWorldIn, WorldServer toWorldIn, BlockPos pos, IBlockState state)
{
net.minecraft.world.WorldProvider pOld = oldWorldIn.provider;
net.minecraft.world.WorldProvider pNew = toWorldIn.provider;
double moveFactor = pOld.getMovementFactor() / pNew.getMovementFactor();
double d0 = entityIn.posX * moveFactor;
double d1 = entityIn.posZ * moveFactor;
double d2 = 8.0D;
float f = entityIn.rotationYaw;
oldWorldIn.profiler.startSection("moving");
if (entityIn.dimension == 1)
{
BlockPos blockpos;
if (lastDimension == 1)
{
blockpos = toWorldIn.getSpawnPoint();
}
else
{
blockpos = toWorldIn.getSpawnCoordinate();
}
d0 = (double)blockpos.getX();
entityIn.posY = (double)blockpos.getY();
d1 = (double)blockpos.getZ();
entityIn.setLocationAndAngles(d0, entityIn.posY, d1, 90.0F, 0.0F);
if (entityIn.isEntityAlive())
{
oldWorldIn.updateEntityWithOptionalForce(entityIn, false);
}
}
oldWorldIn.profiler.endSection();
if (lastDimension != 1)
{
oldWorldIn.profiler.startSection("placing");
if (entityIn.isEntityAlive())
{
int y = toWorldIn.getTopSolidOrLiquidBlock(pos).getY();
BlockPos p = new BlockPos(pos.getX(), y, pos.getZ());
entityIn.setLocationAndAngles(p.getX(), p.getY(), p.getZ(), entityIn.rotationYaw, entityIn.rotationPitch);
if(state != null && toWorldIn.getBlockState(p.add(0, -1, 0)).getBlock() != state.getBlock())
toWorldIn.setBlockState(p.add(0, -1, 0), state, 3);
toWorldIn.spawnEntity(entityIn);
toWorldIn.updateEntityWithOptionalForce(entityIn, false);
}
oldWorldIn.profiler.endSection();
}
entityIn.setWorld(toWorldIn);
}
示例5: generateTower
import net.minecraft.world.WorldServer; //導入方法依賴的package包/類
public void generateTower(WorldServer world, BlockPos pos, Random rand) {
MinecraftServer server = world.getMinecraftServer();
Template template = world.getStructureTemplateManager().getTemplate(server, TOWER_STRUCTURE);
PlacementSettings settings = new PlacementSettings();
settings.setRotation(Rotation.values()[rand.nextInt(Rotation.values().length)]);
BlockPos size = template.getSize();
int airBlocks = 0;
for(int x = 0; x < size.getX(); x++) {
for (int z = 0; z < size.getZ(); z++) {
if (world.isAirBlock(pos.add(template.transformedBlockPos(settings, new BlockPos(x, 0, z))))) {
airBlocks++;
if (airBlocks > 0.33 * (size.getX() * size.getZ())) {
return;
}
}
}
}
for (int x = 0; x < size.getX(); x++) {
for (int z = 0; z < size.getZ(); z++) {
if (x == 0 || x == size.getX() - 1 || z == 0 || z == size.getZ() - 1) {
for (int y = 0; y < size.getY(); y++) {
BlockPos checkPos = pos.add(template.transformedBlockPos(settings, new BlockPos(x, y, z)));
IBlockState checkState = world.getBlockState(checkPos);
if (!checkState.getBlock().isAir(checkState, world, checkPos)) {
if (!(y <= 3 && (checkState.getBlock() == Blocks.NETHERRACK || checkState.getBlock() == Blocks.QUARTZ_ORE || checkState.getBlock() == Blocks.MAGMA))) {
return;
}
}
}
}
}
}
template.addBlocksToWorld(world, pos, settings);
Map<BlockPos, String> dataBlocks = template.getDataBlocks(pos, settings);
for (Entry<BlockPos, String> entry : dataBlocks.entrySet()) {
String[] tokens = entry.getValue().split(" ");
if (tokens.length == 0)
return;
BlockPos dataPos = entry.getKey();
EntityPigMage pigMage;
switch (tokens[0]) {
case "pigman_mage":
pigMage = new EntityPigMage(world);
pigMage.setPosition(dataPos.getX() + 0.5, dataPos.getY(), dataPos.getZ() + 0.5);
pigMage.onInitialSpawn(world.getDifficultyForLocation(dataPos), null);
world.spawnEntity(pigMage);
break;
case "fortress_chest":
IBlockState chestState = Blocks.CHEST.getDefaultState().withRotation(settings.getRotation());
chestState = chestState.withMirror(Mirror.FRONT_BACK);
world.setBlockState(dataPos, chestState);
TileEntity tile = world.getTileEntity(dataPos);
if (tile != null && tile instanceof TileEntityLockableLoot)
((TileEntityLockableLoot) tile).setLootTable(NETHER_BRIDGE_LOOT_TABLE, rand.nextLong());
break;
}
}
}