本文整理汇总了Java中net.minecraft.entity.player.EntityPlayerMP.setPositionAndUpdate方法的典型用法代码示例。如果您正苦于以下问题:Java EntityPlayerMP.setPositionAndUpdate方法的具体用法?Java EntityPlayerMP.setPositionAndUpdate怎么用?Java EntityPlayerMP.setPositionAndUpdate使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类net.minecraft.entity.player.EntityPlayerMP
的用法示例。
在下文中一共展示了EntityPlayerMP.setPositionAndUpdate方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: initialisePlayer
import net.minecraft.entity.player.EntityPlayerMP; //导入方法依赖的package包/类
private void initialisePlayer(String username, String agentname)
{
AgentSection as = getAgentSectionFromAgentName(agentname);
EntityPlayerMP player = getPlayerFromUsername(username);
if (player != null && as != null)
{
if ((player.getHealth() <= 0 || player.isDead || !player.isEntityAlive()))
{
player.markPlayerActive();
player = MinecraftServer.getServer().getConfigurationManager().recreatePlayerEntity(player, player.dimension, false);
player.playerNetServerHandler.playerEntity = player;
}
// Reset their food and health:
player.setHealth(player.getMaxHealth());
player.getFoodStats().addStats(20, 40);
player.maxHurtResistantTime = 1; // Set this to a low value so that lava will kill the player straight away.
disablePlayerGracePeriod(player); // Otherwise player will be invulnerable for the first 60 ticks.
player.extinguish(); // In case the player was left burning.
// Set their initial position and speed:
PosAndDirection pos = as.getAgentStart().getPlacement();
if (pos != null) {
player.rotationYaw = pos.getYaw().floatValue();
player.rotationPitch = pos.getPitch().floatValue();
player.setPositionAndUpdate(pos.getX().doubleValue(),pos.getY().doubleValue(),pos.getZ().doubleValue());
player.onUpdate(); // Needed to force scene to redraw
}
player.setVelocity(0, 0, 0); // Minimise chance of drift!
// Set their inventory:
if (as.getAgentStart().getInventory() != null)
initialiseInventory(player, as.getAgentStart().getInventory());
// Set their game mode to spectator for now, to protect them while we wait for the rest of the cast to assemble:
player.setGameType(GameType.SPECTATOR);
}
}
示例2: teleportPlayer
import net.minecraft.entity.player.EntityPlayerMP; //导入方法依赖的package包/类
public static void teleportPlayer(EntityPlayerMP player, int dim, double x, double y, double z){
new RunInServerThread(new Runnable() {
@Override
public void run() {
if(player.dimension != dim) {
teleportPlayerToDimension(player, dim, x, y, z);
}else{
player.setPositionAndUpdate(x,y,z);
}
player.sendMessage(new TextComponentString(TextFormatting.GREEN + "Teleported to: " + TextFormatting.GRAY + " Dim: " + dim + TextFormatting.WHITE + ", " + (int) x + ", " + (int) y + ", " + (int) z));
}
});
}
示例3: fire
import net.minecraft.entity.player.EntityPlayerMP; //导入方法依赖的package包/类
private synchronized boolean fire() {
Entity itemShot = getCloseEntityIfUpgraded();
if (getPressure() >= PneumaticValues.MIN_PRESSURE_AIR_CANNON && (itemShot != null || !inventory.getStackInSlot(CANNON_SLOT).isEmpty())) {
double[] velocity = getVelocityVector(heightAngle, rotationAngle, getForce());
addAir((int) (-500 * getForce()));
boolean shootingInventory = false;
if (itemShot == null) {
shootingInventory = true;
itemShot = getPayloadEntity();
if (itemShot instanceof EntityItem) {
inventory.setStackInSlot(CANNON_SLOT, ItemStack.EMPTY);
if (getUpgrades(EnumUpgrade.BLOCK_TRACKER) > 0) {
trackedItems.add((EntityItem) itemShot);
}
} else {
inventory.extractItem(CANNON_SLOT, 1, false);
}
} else if (itemShot instanceof EntityPlayer) {
EntityPlayerMP entityplayermp = (EntityPlayerMP) itemShot;
if (entityplayermp.connection.getNetworkManager().isChannelOpen()) {
//This is a nasty hack to get around "player moved wrongly!" messages, which can be caused if player movement
// triggers a player teleport (e.g. player moves onto pressure plate, triggers air cannon with an entity tracker).
entityplayermp.invulnerableDimensionChange = true;
entityplayermp.setPositionAndUpdate(getPos().getX() + 0.5D, getPos().getY() + 1.8D, getPos().getZ() + 0.5D);
}
}
if (itemShot.isRiding()) {
itemShot.dismountRidingEntity();
}
itemShot.setPosition(getPos().getX() + 0.5D, getPos().getY() + 1.8D, getPos().getZ() + 0.5D);
NetworkHandler.sendToAllAround(new PacketSetEntityMotion(itemShot, velocity[0], velocity[1], velocity[2]),
new TargetPoint(getWorld().provider.getDimension(), getPos().getX(), getPos().getY(), getPos().getZ(), 64));
if (itemShot instanceof EntityFireball) {
velocity[0] *= 0.05D;
velocity[1] *= 0.05D;
velocity[2] *= 0.05D;
}
itemShot.motionX = velocity[0];
itemShot.motionY = velocity[1];
itemShot.motionZ = velocity[2];
itemShot.onGround = false;
itemShot.collided = false;
itemShot.collidedHorizontally = false;
itemShot.collidedVertically = false;
if (itemShot instanceof EntityLivingBase) ((EntityLivingBase) itemShot).setJumping(true);
if (shootingInventory && !getWorld().isRemote) getWorld().spawnEntity(itemShot);
for (int i = 0; i < 10; i++) {
double velX = velocity[0] * 0.4D + (rand.nextGaussian() - 0.5D) * 0.05D;
double velY = velocity[1] * 0.4D + (rand.nextGaussian() - 0.5D) * 0.05D;
double velZ = velocity[2] * 0.4D + (rand.nextGaussian() - 0.5D) * 0.05D;
NetworkHandler.sendToAllAround(new PacketSpawnParticle(EnumParticleTypes.SMOKE_LARGE, getPos().getX() + 0.5D, getPos().getY() + 0.7D, getPos().getZ() + 0.5D, velX, velY, velZ), getWorld());
}
NetworkHandler.sendToAllAround(new PacketPlaySound(Sounds.CANNON_SOUND, SoundCategory.BLOCKS, getPos().getX(), getPos().getY(), getPos().getZ(), 1.0F, rand.nextFloat() / 4F + 0.75F, true), getWorld());
return true;
} else {
return false;
}
}