當前位置: 首頁>>代碼示例>>Java>>正文


Java WorldServer.updateEntityWithOptionalForce方法代碼示例

本文整理匯總了Java中net.minecraft.world.WorldServer.updateEntityWithOptionalForce方法的典型用法代碼示例。如果您正苦於以下問題:Java WorldServer.updateEntityWithOptionalForce方法的具體用法?Java WorldServer.updateEntityWithOptionalForce怎麽用?Java WorldServer.updateEntityWithOptionalForce使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在net.minecraft.world.WorldServer的用法示例。


在下文中一共展示了WorldServer.updateEntityWithOptionalForce方法的11個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的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);
    }
}
 
開發者ID:elytra,項目名稱:tp-plus,代碼行數:18,代碼來源:CommandTPP.java

示例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);
    }
}
 
開發者ID:ImbaKnugel,項目名稱:Whoosh,代碼行數:18,代碼來源:TeleportUtil.java

示例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));
}
 
開發者ID:TerminatorNL,項目名稱:LagGoggles,代碼行數:37,代碼來源:Teleport.java

示例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);
}
 
開發者ID:kenijey,項目名稱:harshencastle,代碼行數:57,代碼來源:HarshenUtils.java

示例5: handleSpectate

import net.minecraft.world.WorldServer; //導入方法依賴的package包/類
public void handleSpectate(C18PacketSpectate packetIn)
{
    PacketThreadUtil.checkThreadAndEnqueue(packetIn, this, this.playerEntity.getServerForPlayer());

    if (this.playerEntity.isSpectator())
    {
        Entity entity = null;

        for (WorldServer worldserver : this.serverController.worldServers)
        {
            if (worldserver != null)
            {
                entity = packetIn.getEntity(worldserver);

                if (entity != null)
                {
                    break;
                }
            }
        }

        if (entity != null)
        {
            this.playerEntity.setSpectatingEntity(this.playerEntity);
            this.playerEntity.mountEntity((Entity)null);

            if (entity.worldObj != this.playerEntity.worldObj)
            {
                WorldServer worldserver1 = this.playerEntity.getServerForPlayer();
                WorldServer worldserver2 = (WorldServer)entity.worldObj;
                this.playerEntity.dimension = entity.dimension;
                this.sendPacket(new S07PacketRespawn(this.playerEntity.dimension, worldserver1.getDifficulty(), worldserver1.getWorldInfo().getTerrainType(), this.playerEntity.theItemInWorldManager.getGameType()));
                worldserver1.removePlayerEntityDangerously(this.playerEntity);
                this.playerEntity.isDead = false;
                this.playerEntity.setLocationAndAngles(entity.posX, entity.posY, entity.posZ, entity.rotationYaw, entity.rotationPitch);

                if (this.playerEntity.isEntityAlive())
                {
                    worldserver1.updateEntityWithOptionalForce(this.playerEntity, false);
                    worldserver2.spawnEntityInWorld(this.playerEntity);
                    worldserver2.updateEntityWithOptionalForce(this.playerEntity, false);
                }

                this.playerEntity.setWorld(worldserver2);
                this.serverController.getConfigurationManager().preparePlayer(this.playerEntity, worldserver1);
                this.playerEntity.setPositionAndUpdate(entity.posX, entity.posY, entity.posZ);
                this.playerEntity.theItemInWorldManager.setWorld(worldserver2);
                this.serverController.getConfigurationManager().updateTimeAndWeatherForPlayer(this.playerEntity, worldserver2);
                this.serverController.getConfigurationManager().syncPlayerInventory(this.playerEntity);
            }
            else
            {
                this.playerEntity.setPositionAndUpdate(entity.posX, entity.posY, entity.posZ);
            }
        }
    }
}
 
開發者ID:Notoh,項目名稱:DecompiledMinecraft,代碼行數:58,代碼來源:NetHandlerPlayServer.java

示例6: transferEntityToWorld

import net.minecraft.world.WorldServer; //導入方法依賴的package包/類
/**
 * Transfers an entity from a world to another world.
 */
public void transferEntityToWorld(Entity entityIn, int p_82448_2_, WorldServer p_82448_3_, WorldServer p_82448_4_)
{
    double d0 = entityIn.posX;
    double d1 = entityIn.posZ;
    double d2 = 8.0D;
    float f = entityIn.rotationYaw;
    p_82448_3_.theProfiler.startSection("moving");

    if (entityIn.dimension == -1)
    {
        d0 = MathHelper.clamp_double(d0 / d2, p_82448_4_.getWorldBorder().minX() + 16.0D, p_82448_4_.getWorldBorder().maxX() - 16.0D);
        d1 = MathHelper.clamp_double(d1 / d2, p_82448_4_.getWorldBorder().minZ() + 16.0D, p_82448_4_.getWorldBorder().maxZ() - 16.0D);
        entityIn.setLocationAndAngles(d0, entityIn.posY, d1, entityIn.rotationYaw, entityIn.rotationPitch);

        if (entityIn.isEntityAlive())
        {
            p_82448_3_.updateEntityWithOptionalForce(entityIn, false);
        }
    }
    else if (entityIn.dimension == 0)
    {
        d0 = MathHelper.clamp_double(d0 * d2, p_82448_4_.getWorldBorder().minX() + 16.0D, p_82448_4_.getWorldBorder().maxX() - 16.0D);
        d1 = MathHelper.clamp_double(d1 * d2, p_82448_4_.getWorldBorder().minZ() + 16.0D, p_82448_4_.getWorldBorder().maxZ() - 16.0D);
        entityIn.setLocationAndAngles(d0, entityIn.posY, d1, entityIn.rotationYaw, entityIn.rotationPitch);

        if (entityIn.isEntityAlive())
        {
            p_82448_3_.updateEntityWithOptionalForce(entityIn, false);
        }
    }
    else
    {
        BlockPos blockpos;

        if (p_82448_2_ == 1)
        {
            blockpos = p_82448_4_.getSpawnPoint();
        }
        else
        {
            blockpos = p_82448_4_.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())
        {
            p_82448_3_.updateEntityWithOptionalForce(entityIn, false);
        }
    }

    p_82448_3_.theProfiler.endSection();

    if (p_82448_2_ != 1)
    {
        p_82448_3_.theProfiler.startSection("placing");
        d0 = (double)MathHelper.clamp_int((int)d0, -29999872, 29999872);
        d1 = (double)MathHelper.clamp_int((int)d1, -29999872, 29999872);

        if (entityIn.isEntityAlive())
        {
            entityIn.setLocationAndAngles(d0, entityIn.posY, d1, entityIn.rotationYaw, entityIn.rotationPitch);
            p_82448_4_.getDefaultTeleporter().placeInPortal(entityIn, f);
            p_82448_4_.spawnEntityInWorld(entityIn);
            p_82448_4_.updateEntityWithOptionalForce(entityIn, false);
        }

        p_82448_3_.theProfiler.endSection();
    }

    entityIn.setWorld(p_82448_4_);
}
 
開發者ID:Notoh,項目名稱:DecompiledMinecraft,代碼行數:79,代碼來源:ServerConfigurationManager.java

示例7: handleSpectate

import net.minecraft.world.WorldServer; //導入方法依賴的package包/類
public void handleSpectate(CPacketSpectate packetIn)
{
    PacketThreadUtil.checkThreadAndEnqueue(packetIn, this, this.playerEntity.getServerWorld());

    if (this.playerEntity.isSpectator())
    {
        Entity entity = null;

        for (WorldServer worldserver : this.serverController.worldServers)
        {
            if (worldserver != null)
            {
                entity = packetIn.getEntity(worldserver);

                if (entity != null)
                {
                    break;
                }
            }
        }

        if (entity != null)
        {
            this.playerEntity.setSpectatingEntity(this.playerEntity);
            this.playerEntity.dismountRidingEntity();

            if (entity.world == this.playerEntity.world)
            {
                this.playerEntity.setPositionAndUpdate(entity.posX, entity.posY, entity.posZ);
            }
            else
            {
                WorldServer worldserver1 = this.playerEntity.getServerWorld();
                WorldServer worldserver2 = (WorldServer)entity.world;
                this.playerEntity.dimension = entity.dimension;
                this.sendPacket(new SPacketRespawn(this.playerEntity.dimension, worldserver1.getDifficulty(), worldserver1.getWorldInfo().getTerrainType(), this.playerEntity.interactionManager.getGameType()));
                this.serverController.getPlayerList().updatePermissionLevel(this.playerEntity);
                worldserver1.removeEntityDangerously(this.playerEntity);
                this.playerEntity.isDead = false;
                this.playerEntity.setLocationAndAngles(entity.posX, entity.posY, entity.posZ, entity.rotationYaw, entity.rotationPitch);

                if (this.playerEntity.isEntityAlive())
                {
                    worldserver1.updateEntityWithOptionalForce(this.playerEntity, false);
                    worldserver2.spawnEntityInWorld(this.playerEntity);
                    worldserver2.updateEntityWithOptionalForce(this.playerEntity, false);
                }

                this.playerEntity.setWorld(worldserver2);
                this.serverController.getPlayerList().preparePlayer(this.playerEntity, worldserver1);
                this.playerEntity.setPositionAndUpdate(entity.posX, entity.posY, entity.posZ);
                this.playerEntity.interactionManager.setWorld(worldserver2);
                this.serverController.getPlayerList().updateTimeAndWeatherForPlayer(this.playerEntity, worldserver2);
                this.serverController.getPlayerList().syncPlayerInventory(this.playerEntity);
            }
        }
    }
}
 
開發者ID:NSExceptional,項目名稱:Zombe-Modpack,代碼行數:59,代碼來源:NetHandlerPlayServer.java

示例8: transferEntityToWorld

import net.minecraft.world.WorldServer; //導入方法依賴的package包/類
/**
 * Transfers an entity from a world to another world.
 */
public void transferEntityToWorld(Entity entityIn, int lastDimension, WorldServer oldWorldIn, WorldServer toWorldIn)
{
    double d0 = entityIn.posX;
    double d1 = entityIn.posZ;
    double d2 = 8.0D;
    float f = entityIn.rotationYaw;
    oldWorldIn.theProfiler.startSection("moving");

    if (entityIn.dimension == -1)
    {
        d0 = MathHelper.clamp(d0 / 8.0D, toWorldIn.getWorldBorder().minX() + 16.0D, toWorldIn.getWorldBorder().maxX() - 16.0D);
        d1 = MathHelper.clamp(d1 / 8.0D, toWorldIn.getWorldBorder().minZ() + 16.0D, toWorldIn.getWorldBorder().maxZ() - 16.0D);
        entityIn.setLocationAndAngles(d0, entityIn.posY, d1, entityIn.rotationYaw, entityIn.rotationPitch);

        if (entityIn.isEntityAlive())
        {
            oldWorldIn.updateEntityWithOptionalForce(entityIn, false);
        }
    }
    else if (entityIn.dimension == 0)
    {
        d0 = MathHelper.clamp(d0 * 8.0D, toWorldIn.getWorldBorder().minX() + 16.0D, toWorldIn.getWorldBorder().maxX() - 16.0D);
        d1 = MathHelper.clamp(d1 * 8.0D, toWorldIn.getWorldBorder().minZ() + 16.0D, toWorldIn.getWorldBorder().maxZ() - 16.0D);
        entityIn.setLocationAndAngles(d0, entityIn.posY, d1, entityIn.rotationYaw, entityIn.rotationPitch);

        if (entityIn.isEntityAlive())
        {
            oldWorldIn.updateEntityWithOptionalForce(entityIn, false);
        }
    }
    else
    {
        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.theProfiler.endSection();

    if (lastDimension != 1)
    {
        oldWorldIn.theProfiler.startSection("placing");
        d0 = (double)MathHelper.clamp((int)d0, -29999872, 29999872);
        d1 = (double)MathHelper.clamp((int)d1, -29999872, 29999872);

        if (entityIn.isEntityAlive())
        {
            entityIn.setLocationAndAngles(d0, entityIn.posY, d1, entityIn.rotationYaw, entityIn.rotationPitch);
            toWorldIn.getDefaultTeleporter().placeInPortal(entityIn, f);
            toWorldIn.spawnEntityInWorld(entityIn);
            toWorldIn.updateEntityWithOptionalForce(entityIn, false);
        }

        oldWorldIn.theProfiler.endSection();
    }

    entityIn.setWorld(toWorldIn);
}
 
開發者ID:sudofox,項目名稱:Backmemed,代碼行數:79,代碼來源:PlayerList.java

示例9: handleSpectate

import net.minecraft.world.WorldServer; //導入方法依賴的package包/類
public void handleSpectate(CPacketSpectate packetIn)
{
    PacketThreadUtil.checkThreadAndEnqueue(packetIn, this, this.playerEntity.getServerWorld());

    if (this.playerEntity.isSpectator())
    {
        Entity entity = null;

        for (WorldServer worldserver : this.serverController.worldServers)
        {
            if (worldserver != null)
            {
                entity = packetIn.getEntity(worldserver);

                if (entity != null)
                {
                    break;
                }
            }
        }

        if (entity != null)
        {
            this.playerEntity.setSpectatingEntity(this.playerEntity);
            this.playerEntity.dismountRidingEntity();

            if (entity.worldObj == this.playerEntity.worldObj)
            {
                this.playerEntity.setPositionAndUpdate(entity.posX, entity.posY, entity.posZ);
            }
            else
            {
                WorldServer worldserver1 = this.playerEntity.getServerWorld();
                WorldServer worldserver2 = (WorldServer)entity.worldObj;
                this.playerEntity.dimension = entity.dimension;
                this.sendPacket(new SPacketRespawn(this.playerEntity.dimension, worldserver1.getDifficulty(), worldserver1.getWorldInfo().getTerrainType(), this.playerEntity.interactionManager.getGameType()));
                this.serverController.getPlayerList().updatePermissionLevel(this.playerEntity);
                worldserver1.removeEntityDangerously(this.playerEntity);
                this.playerEntity.isDead = false;
                this.playerEntity.setLocationAndAngles(entity.posX, entity.posY, entity.posZ, entity.rotationYaw, entity.rotationPitch);

                if (this.playerEntity.isEntityAlive())
                {
                    worldserver1.updateEntityWithOptionalForce(this.playerEntity, false);
                    worldserver2.spawnEntityInWorld(this.playerEntity);
                    worldserver2.updateEntityWithOptionalForce(this.playerEntity, false);
                }

                this.playerEntity.setWorld(worldserver2);
                this.serverController.getPlayerList().preparePlayer(this.playerEntity, worldserver1);
                this.playerEntity.setPositionAndUpdate(entity.posX, entity.posY, entity.posZ);
                this.playerEntity.interactionManager.setWorld(worldserver2);
                this.serverController.getPlayerList().updateTimeAndWeatherForPlayer(this.playerEntity, worldserver2);
                this.serverController.getPlayerList().syncPlayerInventory(this.playerEntity);
            }
        }
    }
}
 
開發者ID:F1r3w477,項目名稱:CustomWorldGen,代碼行數:59,代碼來源:NetHandlerPlayServer.java

示例10: transferEntityToWorld

import net.minecraft.world.WorldServer; //導入方法依賴的package包/類
@SuppressWarnings("unused")
public void transferEntityToWorld(Entity entityIn, int lastDimension, WorldServer oldWorldIn, WorldServer toWorldIn, net.minecraft.world.Teleporter teleporter)
{
    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.theProfiler.startSection("moving");

    if (false && entityIn.dimension == -1)
    {
        d0 = MathHelper.clamp_double(d0 / 8.0D, toWorldIn.getWorldBorder().minX() + 16.0D, toWorldIn.getWorldBorder().maxX() - 16.0D);
        d1 = MathHelper.clamp_double(d1 / 8.0D, toWorldIn.getWorldBorder().minZ() + 16.0D, toWorldIn.getWorldBorder().maxZ() - 16.0D);
        entityIn.setLocationAndAngles(d0, entityIn.posY, d1, entityIn.rotationYaw, entityIn.rotationPitch);

        if (entityIn.isEntityAlive())
        {
            oldWorldIn.updateEntityWithOptionalForce(entityIn, false);
        }
    }
    else if (false && entityIn.dimension == 0)
    {
        d0 = MathHelper.clamp_double(d0 * 8.0D, toWorldIn.getWorldBorder().minX() + 16.0D, toWorldIn.getWorldBorder().maxX() - 16.0D);
        d1 = MathHelper.clamp_double(d1 * 8.0D, toWorldIn.getWorldBorder().minZ() + 16.0D, toWorldIn.getWorldBorder().maxZ() - 16.0D);
        entityIn.setLocationAndAngles(d0, entityIn.posY, d1, entityIn.rotationYaw, entityIn.rotationPitch);

        if (entityIn.isEntityAlive())
        {
            oldWorldIn.updateEntityWithOptionalForce(entityIn, false);
        }
    }

    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.theProfiler.endSection();

    if (lastDimension != 1)
    {
        oldWorldIn.theProfiler.startSection("placing");
        d0 = (double)MathHelper.clamp_int((int)d0, -29999872, 29999872);
        d1 = (double)MathHelper.clamp_int((int)d1, -29999872, 29999872);

        if (entityIn.isEntityAlive())
        {
            entityIn.setLocationAndAngles(d0, entityIn.posY, d1, entityIn.rotationYaw, entityIn.rotationPitch);
            teleporter.placeInPortal(entityIn, f);
            toWorldIn.spawnEntityInWorld(entityIn);
            toWorldIn.updateEntityWithOptionalForce(entityIn, false);
        }

        oldWorldIn.theProfiler.endSection();
    }

    entityIn.setWorld(toWorldIn);
}
 
開發者ID:F1r3w477,項目名稱:CustomWorldGen,代碼行數:81,代碼來源:PlayerList.java

示例11: transferEntityToWorld

import net.minecraft.world.WorldServer; //導入方法依賴的package包/類
private static void transferEntityToWorld(Entity entityIn, int lastDimension, WorldServer oldWorldIn, WorldServer toWorldIn, net.minecraft.world.Teleporter teleporter, int targetHeight)
 {
     net.minecraft.world.WorldProvider pOld = oldWorldIn.provider;
     net.minecraft.world.WorldProvider pNew = toWorldIn.provider;

     double moveFactor = pOld.getMovementFactor() / pNew.getMovementFactor();

     // What does this do?
     double newPosX = entityIn.posX * moveFactor;
     double newPosZ = entityIn.posZ * moveFactor;
     //double d2 = 8.0D;

     float entityRotationYaw = entityIn.rotationYaw;	// What is this being saved for?

     oldWorldIn.theProfiler.startSection("moving");

     // Overworld, where we're going
     if (entityIn.dimension == 1)
     {
         BlockPos blockpos;

         if (lastDimension == 1)
         {
             blockpos = toWorldIn.getSpawnPoint();	// From the End to the End?
         }
         else
         {
             blockpos = toWorldIn.getSpawnCoordinate();	// From Wherever to the End
         }

newPosX = blockpos.getX();
entityIn.posY = blockpos.getY();
newPosZ = blockpos.getZ();

entityIn.setLocationAndAngles(newPosX, entityIn.posY, newPosZ, 90.0F, 0.0F);

         if (entityIn.isEntityAlive())
         {
             oldWorldIn.updateEntityWithOptionalForce(entityIn, false);
         }
     }

     oldWorldIn.theProfiler.endSection();

     // ...anything else? Did not come from the overworld
     if (lastDimension != 1)
     {
         oldWorldIn.theProfiler.startSection("placing");
         newPosX = MathHelper.clamp_int((int)newPosX, -29999872, 29999872);
         newPosZ = MathHelper.clamp_int((int)newPosZ, -29999872, 29999872);

         if (entityIn.isEntityAlive())
         {
             entityIn.setLocationAndAngles(newPosX, targetHeight, newPosZ, entityIn.rotationYaw, entityIn.rotationPitch);

             //teleporter.placeInPortal(entityIn, entityRotationYaw);	// Found it. Begone with ye.

             toWorldIn.spawnEntityInWorld(entityIn);
             toWorldIn.updateEntityWithOptionalForce(entityIn, false);
         }

         oldWorldIn.theProfiler.endSection();
     }

     entityIn.setWorld(toWorldIn);
 }
 
開發者ID:Domochevsky,項目名稱:minecraft-territorialdealings,代碼行數:67,代碼來源:Transition.java


注:本文中的net.minecraft.world.WorldServer.updateEntityWithOptionalForce方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。