类net.minecraft.util.MovingObjectPosition源码实例Demo

下面列出了怎么用net.minecraft.util.MovingObjectPosition的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: LiquidBounce   文件: MixinMinecraft.java
/**
 * @author CCBlueX
 */
@Overwrite
private void sendClickBlockToController(boolean leftClick) {
    if(!leftClick)
        this.leftClickCounter = 0;

    if (this.leftClickCounter <= 0 && (!this.thePlayer.isUsingItem() || LiquidBounce.moduleManager.getModule(MultiActions.class).getState())) {
        if(leftClick && this.objectMouseOver != null && this.objectMouseOver.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) {
            BlockPos blockPos = this.objectMouseOver.getBlockPos();

            if(this.leftClickCounter == 0)
                LiquidBounce.eventManager.callEvent(new ClickBlockEvent(blockPos, this.objectMouseOver.sideHit));


            if(this.theWorld.getBlockState(blockPos).getBlock().getMaterial() != Material.air && this.playerController.onPlayerDamageBlock(blockPos, this.objectMouseOver.sideHit)) {
                this.effectRenderer.addBlockHitEffects(blockPos, this.objectMouseOver.sideHit);
                this.thePlayer.swingItem();
            }
        } else if (!LiquidBounce.moduleManager.getModule(AbortBreaking.class).getState()) {
            this.playerController.resetBlockRemoving();
        }
    }
}
 
源代码2 项目: LiquidBounce   文件: MixinMinecraft.java
/**
 * @author CCBlueX
 */
@Overwrite
private void sendClickBlockToController(boolean leftClick) {
    if(!leftClick)
        this.leftClickCounter = 0;

    if (this.leftClickCounter <= 0 && (!this.thePlayer.isUsingItem() || LiquidBounce.moduleManager.getModule(MultiActions.class).getState())) {
        if(leftClick && this.objectMouseOver != null && this.objectMouseOver.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) {
            BlockPos blockPos = this.objectMouseOver.getBlockPos();

            if(this.leftClickCounter == 0)
                LiquidBounce.eventManager.callEvent(new ClickBlockEvent(blockPos, this.objectMouseOver.sideHit));


            if(this.theWorld.getBlockState(blockPos).getBlock().getMaterial() != Material.air && this.playerController.onPlayerDamageBlock(blockPos, this.objectMouseOver.sideHit)) {
                this.effectRenderer.addBlockHitEffects(blockPos, this.objectMouseOver.sideHit);
                this.thePlayer.swingItem();
            }
        } else if (!LiquidBounce.moduleManager.getModule(AbortBreaking.class).getState()) {
            this.playerController.resetBlockRemoving();
        }
    }
}
 
源代码3 项目: Hyperium   文件: ReachDisplay.java
@InvokeEvent
public void attacc(PlayerAttackEntityEvent entityEvent) {
    if (!Settings.SHOW_HIT_DISTANCES) return;
    if (!(entityEvent.getEntity() instanceof EntityLivingBase)) return;
    if (((EntityLivingBase) entityEvent.getEntity()).hurtTime > 0) return;
    if (locked) return;

    locked = true;
    EntityPlayerSP entity = Minecraft.getMinecraft().thePlayer;
    double d0 = 6;
    Vec3 vec3 = entity.getPositionEyes(0.0F);
    Vec3 vec31 = entity.getLook(0.0F);
    Vec3 vec32 = vec3.addVector(vec31.xCoord * d0, vec31.yCoord * d0, vec31.zCoord * d0);
    Entity entity1 = entityEvent.getEntity();
    float f1 = .1F;
    AxisAlignedBB axisalignedbb = entity1.getEntityBoundingBox().expand(f1, f1, f1);
    MovingObjectPosition movingobjectposition = axisalignedbb.calculateIntercept(vec3, vec32);
    if (movingobjectposition == null) return;
    Vec3 vec33 = movingobjectposition.hitVec;
    hits.add(new Hit(vec33, dis));

}
 
源代码4 项目: ehacks-pro   文件: DragonsFuck.java
@Override
public void onMouse(MouseEvent event) {
    MovingObjectPosition mop = Wrapper.INSTANCE.mc().objectMouseOver;
    if (mop.sideHit == -1) {
        return;
    }
    if (Mouse.isButtonDown(1)) {
        TileEntity entity = Wrapper.INSTANCE.world().getTileEntity(mop.blockX, mop.blockY, mop.blockZ);
        try {
            if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK && entity != null && Class.forName("eu.thesociety.DragonbornSR.DragonsRadioMod.Block.TileEntity.TileEntityRadio").isInstance(entity)) {
                Wrapper.INSTANCE.mc().displayGuiScreen((GuiScreen) Class.forName("eu.thesociety.DragonbornSR.DragonsRadioMod.Block.Gui.NGuiRadio").getConstructor(Class.forName("eu.thesociety.DragonbornSR.DragonsRadioMod.Block.TileEntity.TileEntityRadio")).newInstance(entity));
                InteropUtils.log("Gui opened", this);
                if (event.isCancelable()) {
                    event.setCanceled(true);
                }
            }
        } catch (Exception ex) {
            InteropUtils.log("&cError", this);
        }
    }
}
 
源代码5 项目: ehacks-pro   文件: ExtendedDestroyer.java
@Override
public void onMouse(MouseEvent event) {
    try {
        MovingObjectPosition position = Wrapper.INSTANCE.mc().objectMouseOver;
        boolean nowState = Mouse.isButtonDown(0);
        if (position.sideHit != -1 && nowState && !prevState) {
            ByteBuf buf = Unpooled.buffer(0);
            buf.writeByte(14);
            buf.writeInt(position.blockX);
            buf.writeInt(position.blockY);
            buf.writeInt(position.blockZ);
            C17PacketCustomPayload packet = new C17PacketCustomPayload("cfm", buf);
            Wrapper.INSTANCE.player().sendQueue.addToSendQueue(packet);
        }
        prevState = nowState;
    } catch (Exception ignored) {

    }
}
 
源代码6 项目: ehacks-pro   文件: ContainerClear.java
@Override
public void onModuleEnabled() {
    try {
        Class.forName("powercrystals.minefactoryreloaded.net.ServerPacketHandler");
        MovingObjectPosition mop = Wrapper.INSTANCE.mc().objectMouseOver;
        TileEntity entity = Wrapper.INSTANCE.world().getTileEntity(mop.blockX, mop.blockY, mop.blockZ);
        if (entity == null) {
            this.off();
            return;
        }
        if (entity instanceof IInventory) {
            IInventory inv = (IInventory) entity;
            for (int i = 0; i < inv.getSizeInventory(); i++) {
                setSlot(i, mop.blockX, mop.blockY, mop.blockZ);
            }
        }
        InteropUtils.log("Cleared", this);
        this.off();
    } catch (Exception ex) {
        this.off();
    }
}
 
源代码7 项目: ehacks-pro   文件: HotGive.java
@Override
public void onTicks() {
    try {
        boolean newState = Keyboard.isKeyDown(GiveKeybind.getKey());
        if (newState && !prevState) {
            prevState = newState;
            MovingObjectPosition mop = Wrapper.INSTANCE.mc().objectMouseOver;
            TileEntity entity = Wrapper.INSTANCE.world().getTileEntity(mop.blockX, mop.blockY, mop.blockZ);
            if (entity != null && Class.forName("cofh.thermalexpansion.block.cache.TileCache").isInstance(entity)) {
                setSlot(entity, Statics.STATIC_ITEMSTACK);
                InteropUtils.log("Set", this);
            }
        }
        prevState = newState;
    } catch (Exception e) {
    }
}
 
源代码8 项目: ehacks-pro   文件: AimAssist.java
@Override
public void onTicks() {
    Entity entity;
    this.targetlist.clear();
    Wrapper.INSTANCE.world().playerEntities.stream().filter((e) -> !(!this.isAttackable((Entity) e) || (AuraConfiguration.config.friends.contains(((Entity) e).getCommandSenderName())))).forEachOrdered((e) -> {
        this.targetlist.add((EntityPlayer) e);
    });
    if (Wrapper.INSTANCE.mc().objectMouseOver == null) {
        return;
    }
    if (Wrapper.INSTANCE.mc().objectMouseOver.typeOfHit == MovingObjectPosition.MovingObjectType.ENTITY && (entity = Wrapper.INSTANCE.mc().objectMouseOver.entityHit) instanceof EntityPlayer) {
        this.curtarget = (EntityPlayer) entity;
        return;
    }
    if (!this.targetlist.contains(this.curtarget) && this.curtarget != null) {
        this.curtarget = null;
        return;
    }
    Random r = new Random();
    if (this.curtarget == null) {
        return;
    }
    Wrapper.INSTANCE.player().rotationYaw = (float) (Wrapper.INSTANCE.player().rotationYaw - (Wrapper.INSTANCE.player().rotationYaw - this.getAngles(this.curtarget)[0]) * 0.5);
    Wrapper.INSTANCE.player().rotationPitch = (float) (Wrapper.INSTANCE.player().rotationPitch - (Wrapper.INSTANCE.player().rotationPitch - this.getAngles(this.curtarget)[1]) * 0.5);
}
 
源代码9 项目: ehacks-pro   文件: ShowContainer.java
@Override
public void onMouse(MouseEvent event) {
    try {
        boolean nowState = Mouse.isButtonDown(1);
        MovingObjectPosition position = Wrapper.INSTANCE.mc().objectMouseOver;
        if (position.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK && !prevState && nowState) {
            TileEntity tileEntity = Wrapper.INSTANCE.world().getTileEntity(position.blockX, position.blockY, position.blockZ);
            if (tileEntity instanceof IInventory) {
                ItemStack[] stacks = new ItemStack[0];
                Wrapper.INSTANCE.mc().displayGuiScreen(new ShowContainerGui(new ShowContainerContainer(stacks, tileEntity.getClass().getSimpleName())));
                if (event.isCancelable()) {
                    event.setCanceled(true);
                }
            } else {
                InteropUtils.log("Not a container", this);
            }
        }
        prevState = nowState;
    } catch (Exception ignored) {

    }
}
 
源代码10 项目: ehacks-pro   文件: Events.java
@SubscribeEvent
public void onAttack(AttackEntityEvent event) {
    if (!cheatEnabled) {
        return;
    }
    if (!(KillAura.isActive || MobAura.isActive || ProphuntAura.isActive || Forcefield.isActive || TriggerBot.isActive || !Criticals.isActive || Wrapper.INSTANCE.player().isInWater() || Wrapper.INSTANCE.player().isInsideOfMaterial(Material.lava) || Wrapper.INSTANCE.player().isInsideOfMaterial(Material.web) || !Wrapper.INSTANCE.player().onGround || !Wrapper.INSTANCE.mcSettings().keyBindAttack.getIsKeyPressed() || Wrapper.INSTANCE.mc().objectMouseOver == null || Wrapper.INSTANCE.mc().objectMouseOver.typeOfHit != MovingObjectPosition.MovingObjectType.ENTITY)) {
        event.setCanceled(true);
        Wrapper.INSTANCE.player().motionY = 0.1000000014901161;
        Wrapper.INSTANCE.player().fallDistance = 0.1f;
        Wrapper.INSTANCE.player().onGround = false;
        event.setCanceled(false);
    }
    if (event.target instanceof EntityPlayer) {
        EntityPlayer e = (EntityPlayer) event.target;
        if (SeeHealth.isActive) {
            InteropUtils.log("Health of &e" + e.getCommandSenderName() + "&f: &e" + e.getHealth(), "SeeHealth");
        }
    }
}
 
源代码11 项目: Gadomancy   文件: TileEssentiaCompressor.java
private void playVortexEffects() {
    for (int a = 0; a < Thaumcraft.proxy.particleCount(1); a++) {
        int tx = this.xCoord + this.worldObj.rand.nextInt(4) - this.worldObj.rand.nextInt(4);
        int ty = this.yCoord + 1 + this.worldObj.rand.nextInt(4) - this.worldObj.rand.nextInt(4);
        int tz = this.zCoord + this.worldObj.rand.nextInt(4) - this.worldObj.rand.nextInt(4);
        if (ty > this.worldObj.getHeightValue(tx, tz)) {
            ty = this.worldObj.getHeightValue(tx, tz);
        }
        Vec3 v1 = Vec3.createVectorHelper(this.xCoord + 0.5D, this.yCoord + 1.5D, this.zCoord + 0.5D);
        Vec3 v2 = Vec3.createVectorHelper(tx + 0.5D, ty + 0.5D, tz + 0.5D);

        MovingObjectPosition mop = ThaumcraftApiHelper.rayTraceIgnoringSource(this.worldObj, v1, v2, true, false, false);
        if ((mop != null) && (getDistanceFrom(mop.blockX, mop.blockY, mop.blockZ) < 16.0D)) {
            tx = mop.blockX;
            ty = mop.blockY;
            tz = mop.blockZ;
            Block bi = this.worldObj.getBlock(tx, ty, tz);
            int md = this.worldObj.getBlockMetadata(tx, ty, tz);
            if (!bi.isAir(this.worldObj, tx, ty, tz)) {
                Thaumcraft.proxy.hungryNodeFX(this.worldObj, tx, ty, tz, this.xCoord, this.yCoord + 1, this.zCoord, bi, md);
            }
        }
    }
}
 
源代码12 项目: WirelessRedstone   文件: WirelessPart.java
@Override
public boolean activate(EntityPlayer player, MovingObjectPosition hit, ItemStack held) {
    if (hit.sideHit == (side() ^ 1) && player.isSneaking()) {
        int r = rotation();
        setRotation((r + 1) % 4);
        if (!tile().canReplacePart(this, this)) {
            setRotation(r);
            return false;
        }

        if (!world().isRemote) {
            updateChange();
            onPartChanged(this);
        } else {
            setRotation(r);
        }
        return true;
    }
    return false;
}
 
源代码13 项目: Chisel-2   文件: General.java
public static MovingObjectPosition getMovingObjectPositionFromPlayer(World par1World, EntityPlayer par2EntityPlayer, boolean par3) {
	float var4 = 1.0F;
	float var5 = par2EntityPlayer.prevRotationPitch + (par2EntityPlayer.rotationPitch - par2EntityPlayer.prevRotationPitch) * var4;
	float var6 = par2EntityPlayer.prevRotationYaw + (par2EntityPlayer.rotationYaw - par2EntityPlayer.prevRotationYaw) * var4;
	double var7 = par2EntityPlayer.prevPosX + (par2EntityPlayer.posX - par2EntityPlayer.prevPosX) * var4;
	double var9 = par2EntityPlayer.prevPosY + (par2EntityPlayer.posY - par2EntityPlayer.prevPosY) * var4 + 1.62D - par2EntityPlayer.yOffset;
	double var11 = par2EntityPlayer.prevPosZ + (par2EntityPlayer.posZ - par2EntityPlayer.prevPosZ) * var4;
	// TODO- 1.7.10 fix?
	Vec3 var13 = Vec3.createVectorHelper(var7, var9, var11);
	float var14 = MathHelper.cos(-var6 * 0.017453292F - (float) Math.PI);
	float var15 = MathHelper.sin(-var6 * 0.017453292F - (float) Math.PI);
	float var16 = -MathHelper.cos(-var5 * 0.017453292F);
	float var17 = MathHelper.sin(-var5 * 0.017453292F);
	float var18 = var15 * var16;
	float var20 = var14 * var16;
	double var21 = 5.0D;

	if (par2EntityPlayer instanceof EntityPlayerMP) {
		var21 = ((EntityPlayerMP) par2EntityPlayer).theItemInWorldManager.getBlockReachDistance();
	}

	Vec3 var23 = var13.addVector(var18 * var21, var17 * var21, var20 * var21);
	return par1World.rayTraceBlocks(var13, var23, par3);
}
 
源代码14 项目: Chisel   文件: General.java
public static MovingObjectPosition getMovingObjectPositionFromPlayer(World par1World, EntityPlayer par2EntityPlayer, boolean par3)
{
    float var4 = 1.0F;
    float var5 = par2EntityPlayer.prevRotationPitch + (par2EntityPlayer.rotationPitch - par2EntityPlayer.prevRotationPitch) * var4;
    float var6 = par2EntityPlayer.prevRotationYaw + (par2EntityPlayer.rotationYaw - par2EntityPlayer.prevRotationYaw) * var4;
    double var7 = par2EntityPlayer.prevPosX + (par2EntityPlayer.posX - par2EntityPlayer.prevPosX) * var4;
    double var9 = par2EntityPlayer.prevPosY + (par2EntityPlayer.posY - par2EntityPlayer.prevPosY) * var4 + 1.62D - par2EntityPlayer.yOffset;
    double var11 = par2EntityPlayer.prevPosZ + (par2EntityPlayer.posZ - par2EntityPlayer.prevPosZ) * var4;
    //TODO- 1.7.10 fix?
    Vec3 var13 = Vec3.createVectorHelper(var7, var9, var11);
    float var14 = MathHelper.cos(-var6 * 0.017453292F - (float) Math.PI);
    float var15 = MathHelper.sin(-var6 * 0.017453292F - (float) Math.PI);
    float var16 = -MathHelper.cos(-var5 * 0.017453292F);
    float var17 = MathHelper.sin(-var5 * 0.017453292F);
    float var18 = var15 * var16;
    float var20 = var14 * var16;
    double var21 = 5.0D;

    if(par2EntityPlayer instanceof EntityPlayerMP)
    {
        var21 = ((EntityPlayerMP) par2EntityPlayer).theItemInWorldManager.getBlockReachDistance();
    }

    Vec3 var23 = var13.addVector(var18 * var21, var17 * var21, var20 * var21);
    return par1World.rayTraceBlocks(var13, var23, par3);
}
 
源代码15 项目: SkyblockAddons   文件: MinecraftHook.java
public static void rightClickMouse(ReturnValue<?> returnValue) {
    SkyblockAddons main = SkyblockAddons.getInstance();
    if (main.getUtils().isOnSkyblock()) {
        Minecraft mc = Minecraft.getMinecraft();
        if (mc.objectMouseOver != null && mc.objectMouseOver.typeOfHit == MovingObjectPosition.MovingObjectType.ENTITY) {
            Entity entityIn = mc.objectMouseOver.entityHit;
            if (main.getConfigValues().isEnabled(Feature.DONT_OPEN_PROFILES_WITH_BOW)) {
                if (entityIn instanceof EntityOtherPlayerMP && !NPCUtils.isNPC(entityIn)) {
                    ItemStack item = mc.thePlayer.inventory.getCurrentItem();
                    ItemStack itemInUse = mc.thePlayer.getItemInUse();
                    if ((isItemBow(item) || isItemBow(itemInUse))) {
                        if (System.currentTimeMillis() - lastProfileMessage > 20000) {
                            lastProfileMessage = System.currentTimeMillis();
                            main.getUtils().sendMessage(main.getConfigValues().getRestrictedColor(Feature.DONT_OPEN_PROFILES_WITH_BOW) +
                                    Message.MESSAGE_STOPPED_OPENING_PROFILE.getMessage());
                        }
                        returnValue.cancel();
                        return;
                    }
                }
            }
            if (main.getConfigValues().isEnabled(Feature.LOCK_SLOTS) && entityIn instanceof EntityItemFrame && ((EntityItemFrame)entityIn).getDisplayedItem() == null) {
                int slot = mc.thePlayer.inventory.currentItem + 36;
                if (main.getConfigValues().getLockedSlots().contains(slot) && slot >= 9) {
                    main.getUtils().playLoudSound("note.bass", 0.5);
                    main.getUtils().sendMessage(main.getConfigValues().getRestrictedColor(Feature.DROP_CONFIRMATION) + Message.MESSAGE_SLOT_LOCKED.getMessage());
                    returnValue.cancel();
                }
            }
        }
    }
}
 
源代码16 项目: Hyperium   文件: DrawBlockHighlightEvent.java
public DrawBlockHighlightEvent(@NotNull EntityPlayer player, @NotNull MovingObjectPosition target, float partialTicks) {
    Preconditions.checkNotNull(player, "player");
    Preconditions.checkNotNull(target, "target");

    this.player = player;
    this.target = target;
    this.partialTicks = partialTicks;
}
 
源代码17 项目: Hyperium   文件: ReachDisplay.java
@InvokeEvent
public void onAttack(PlayerAttackEntityEvent event) {
    if (mc.objectMouseOver != null && mc.objectMouseOver.typeOfHit == MovingObjectPosition.MovingObjectType.ENTITY && mc.objectMouseOver.entityHit.getEntityId() ==
        event.getEntity().getEntityId()) {
        Vec3 vec = mc.getRenderViewEntity().getPositionEyes(1.0f);
        double range = mc.objectMouseOver.hitVec.distanceTo(vec);
        rangeText = new DecimalFormat(".##").format(range) + " blocks";
    } else {
        rangeText = "Not on target?";
    }

    lastAttack = System.currentTimeMillis();
}
 
源代码18 项目: ehacks-pro   文件: Debug.java
public static int[] getMop() {
    MovingObjectPosition preMop = Wrapper.INSTANCE.mc().objectMouseOver;
    Entity ent = Wrapper.INSTANCE.mc().pointedEntity;
    int[] arrn = new int[5];
    arrn[0] = preMop.blockX;
    arrn[1] = preMop.blockY;
    arrn[2] = preMop.blockZ;
    arrn[3] = preMop.sideHit;
    arrn[4] = ent != null ? ent.getEntityId() : 0;
    int[] mop = arrn;
    return mop;
}
 
源代码19 项目: ehacks-pro   文件: MusicalCrash.java
@Override
public void onMouse(MouseEvent event) {
    MovingObjectPosition mop = Wrapper.INSTANCE.mc().objectMouseOver;
    if (mop.sideHit == -1) {
        return;
    }
    boolean nowState = Mouse.isButtonDown(1);
    if (!prevState && nowState) {
        prevState = nowState;
        TileEntity entity = Wrapper.INSTANCE.world().getTileEntity(mop.blockX, mop.blockY, mop.blockZ);
        try {
            if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK && entity != null && !Class.forName("eu.thesociety.DragonbornSR.DragonsRadioMod.Block.TileEntity.TileEntityRadio").isInstance(entity)) {
                ByteBuf buf = Unpooled.buffer(0);
                buf.writeByte(0);
                buf.writeInt(0);
                buf.writeDouble(mop.blockX);
                buf.writeDouble(mop.blockY);
                buf.writeDouble(mop.blockZ);
                buf.writeInt(Wrapper.INSTANCE.player().dimension);
                buf.writeInt(0);
                buf.writeBytes(new byte[0]);
                buf.writeBoolean(false);
                buf.writeFloat(0);
                buf.writeDouble(0);
                buf.writeDouble(0);
                buf.writeDouble(0);
                C17PacketCustomPayload packet = new C17PacketCustomPayload("DragonsRadioMod", buf);
                Wrapper.INSTANCE.player().sendQueue.addToSendQueue(packet);
                InteropUtils.log("Crash sent", this);
                if (event.isCancelable()) {
                    event.setCanceled(true);
                }
            }
        } catch (Exception ex) {
            InteropUtils.log("Error happened", this);
        }
    }
    prevState = nowState;
}
 
源代码20 项目: GardenCollection   文件: VisNetHandler.java
public static boolean canNodeBeSeen(TileVisNode source,TileVisNode target)
{		 
 MovingObjectPosition mop = ThaumcraftApiHelper.rayTraceIgnoringSource(source.getWorldObj(), 
		 Vec3.createVectorHelper(source.xCoord+.5, source.yCoord+.5,source.zCoord+.5),
		 Vec3.createVectorHelper(target.xCoord+.5, target.yCoord+.5,target.zCoord+.5),
		 false, true, false);
 return  mop == null || (mop.typeOfHit==MovingObjectType.BLOCK &&
		 mop.blockX==target.xCoord && mop.blockY==target.yCoord && mop.blockZ==target.zCoord);
}
 
源代码21 项目: ForbiddenMagic   文件: SimpleWikiProvider.java
@Override
public String getWikiURL(World world, MovingObjectPosition pos) {
	String name = getBlockName(world, pos);
	if(name == null)
		return null;

	if(lowercase) {
		return String.format(urlBase, name.toLowerCase().replaceAll(" ", replacement));
	} else {
		return String.format(urlBase, WordUtils.capitalizeFully(name).replaceAll(" ", replacement));
	}
}
 
源代码22 项目: NBTEdit   文件: MouseOverPacket.java
@Override
public void handleClientSide(EntityPlayer player) {
	MovingObjectPosition pos = Minecraft.getMinecraft().objectMouseOver;
	AbstractPacket packet = null;
	if (pos != null)
		if (pos.entityHit != null)
			packet = new EntityRequestPacket(pos.entityHit.getEntityId());
		else if (pos.typeOfHit == MovingObjectType.BLOCK)
			packet = new TileRequestPacket(pos.blockX, pos.blockY, pos.blockZ);
	if (packet == null) 
		sendMessageToPlayer(player, SECTION_SIGN + "cError - No tile or entity selected");
	else
		NBTEdit.DISPATCHER.sendToServer(packet);
}
 
源代码23 项目: ehacks-pro   文件: BlockDestroy.java
@Override
public void onTicks() {
    try {
        MovingObjectPosition position = Wrapper.INSTANCE.mc().objectMouseOver;
        boolean nowState = Mouse.isButtonDown(0);
        if (position.sideHit != -1 && nowState && !prevState) {
            snd.invoke(obj, msg.newInstance(position.blockX, position.blockY, position.blockZ));
        }
        prevState = nowState;
    } catch (Exception ignored) {

    }
}
 
源代码24 项目: GardenCollection   文件: BlockGardenProxy.java
@Override
public MovingObjectPosition collisionRayTrace (World world, int x, int y, int z, Vec3 startVec, Vec3 endVec) {
    TileEntityGarden te = getGardenEntity(world, x, y, z);
    BlockGarden garden = getGardenBlock(world, x, y, z);
    if (te == null || garden == null)
        return super.collisionRayTrace(world, x, y, z, startVec, endVec);

    int baseY = getBaseBlockYCoord(world, x, y, z);

    MovingObjectPosition mop = null;
    for (int slot : garden.getSlotProfile().getPlantSlots()) {
        Block block = getPlantBlock(te, slot);
        if (block == null)
            continue;

        bindSlot(world, x, y, z, te, slot);
        try {
            float offsetX = garden.getSlotProfile().getPlantOffsetX(world, x, baseY, z, slot);
            float offsetY = garden.getSlotProfile().getPlantOffsetY(world, x, baseY, z, slot);
            float offsetZ = garden.getSlotProfile().getPlantOffsetZ(world, x, baseY, z, slot);

            Vec3 slotStartVec = Vec3.createVectorHelper(startVec.xCoord - offsetX, startVec.yCoord - offsetY, startVec.zCoord - offsetZ);
            Vec3 slotEndVec = Vec3.createVectorHelper(endVec.xCoord - offsetX, endVec.yCoord - offsetY, endVec.zCoord - offsetZ);

            MovingObjectPosition sub = block.collisionRayTrace(world, x, y, z, slotStartVec, slotEndVec);
            if (mop == null || slotStartVec.squareDistanceTo(mop.hitVec) > slotStartVec.squareDistanceTo(sub.hitVec))
                mop = sub;
        }
        catch (Exception e) {
            continue;
        }
        finally {
            unbindSlot(world, x, y, z, te);
        }
    }

    return mop;
}
 
源代码25 项目: ehacks-pro   文件: BlockOverlay.java
@Override
public void onWorldRender(RenderWorldLastEvent event) {
    MovingObjectPosition position = Wrapper.INSTANCE.mc().objectMouseOver;
    Block block = Wrapper.INSTANCE.world().getBlock(position.blockX, position.blockY, position.blockZ);
    if (block.getMaterial() != Material.air) {
        this.drawESP(0.0f);
    }
}
 
源代码26 项目: ehacks-pro   文件: BlockOverlay.java
private void drawESP(MovingObjectPosition position) {
    GL11.glPushMatrix();
    GL11.glEnable(3042);
    GL11.glBlendFunc(770, 771);
    GL11.glLineWidth(1.0f);
    GL11.glDisable(2896);
    GL11.glDisable(3553);
    GL11.glEnable(2848);
    GL11.glDisable(2929);
    GL11.glDepthMask(false);
    double blockX = RenderManager.renderPosX;
    double blockY = RenderManager.renderPosY;
    double blockZ = RenderManager.renderPosZ;
    Block block = Wrapper.INSTANCE.world().getBlock(position.blockX, position.blockY, position.blockZ);
    GL11.glColor4f(0.0f, 0.0f, 0.0f, 0.2f);
    BlockOverlay.drawOutlinedBoundingBox(block.getSelectedBoundingBoxFromPool(Wrapper.INSTANCE.world(), position.blockX, position.blockY, position.blockZ).expand(0.002, 0.002, 0.002).getOffsetBoundingBox(-blockX, -blockY, -blockZ));
    GL11.glColor4f(0.0f, 0.4f, 0.0f, 0.2f);
    BlockOverlay.drawBoundingBox(block.getSelectedBoundingBoxFromPool(Wrapper.INSTANCE.world(), position.blockX, position.blockY, position.blockZ).expand(0.002, 0.002, 0.002).getOffsetBoundingBox(-blockX, -blockY, -blockZ));
    GL11.glLineWidth(1.0f);
    GL11.glDisable(2848);
    GL11.glEnable(3553);
    GL11.glEnable(2896);
    GL11.glEnable(2929);
    GL11.glDepthMask(true);
    GL11.glDisable(3042);
    GL11.glPopMatrix();
}
 
源代码27 项目: ehacks-pro   文件: ShowArmor.java
public Entity getMouseOver(float partialTicks, double distance, boolean canBeCollidedWith) {
    Minecraft mc = Wrapper.INSTANCE.mc();
    Entity pointedEntity = null;
    MovingObjectPosition rayTrace = null;

    if (mc.renderViewEntity != null) {
        if (mc.theWorld != null) {
            Vec3 positionVec = mc.renderViewEntity.getPosition(partialTicks);
            Vec3 lookVec = mc.renderViewEntity.getLook(partialTicks);
            Vec3 posDistVec = positionVec.addVector(lookVec.xCoord * distance, lookVec.yCoord * distance, lookVec.zCoord * distance);
            double boxExpand = 1.0F;
            @SuppressWarnings("unchecked")
            List<Entity> entities = mc.theWorld.getEntitiesWithinAABBExcludingEntity(mc.renderViewEntity, mc.renderViewEntity.boundingBox.addCoord(lookVec.xCoord * distance, lookVec.yCoord * distance, lookVec.zCoord * distance).expand(boxExpand, boxExpand, boxExpand));
            double mincalc = Double.MAX_VALUE;
            for (Entity entity : entities) {
                if (!canBeCollidedWith || entity.canBeCollidedWith()) {
                    double borderSize = entity.getCollisionBorderSize();
                    AxisAlignedBB expEntityBox = entity.boundingBox.expand(borderSize, borderSize, borderSize);
                    MovingObjectPosition calculateInterceptPos = expEntityBox.calculateIntercept(positionVec, posDistVec);
                    if (calculateInterceptPos != null) {
                        double calcInterceptPosDist = positionVec.distanceTo(calculateInterceptPos.hitVec);
                        if (mincalc > calcInterceptPosDist) {
                            mincalc = calcInterceptPosDist;
                            pointedEntity = entity;
                        }
                    }
                }
            }
            if (pointedEntity != null) {
                return pointedEntity;
            }
        }
    }

    return null;
}
 
源代码28 项目: Chisel-2   文件: WailaCompat.java
@Override
public List<String> getWailaBody(ItemStack stack, List<String> strings, IWailaDataAccessor accessor, IWailaConfigHandler configHandler) {
	if (accessor.getBlock() instanceof ICarvable) {
		ICarvable block = (ICarvable) accessor.getBlock();
		MovingObjectPosition pos = accessor.getPosition();
		strings.add(block.getManager(accessor.getWorld(), pos.blockX, pos.blockY, pos.blockZ, accessor.getMetadata()).getDescription());
	}
	return strings;
}
 
源代码29 项目: Chisel-2   文件: VisNetHandler.java
public static boolean canNodeBeSeen(TileVisNode source,TileVisNode target)
{		 
 MovingObjectPosition mop = ThaumcraftApiHelper.rayTraceIgnoringSource(source.getWorldObj(), 
		 Vec3.createVectorHelper(source.xCoord+.5, source.yCoord+.5,source.zCoord+.5),
		 Vec3.createVectorHelper(target.xCoord+.5, target.yCoord+.5,target.zCoord+.5),
		 false, true, false);
 return  mop == null || (mop.typeOfHit==MovingObjectType.BLOCK &&
		 mop.blockX==target.xCoord && mop.blockY==target.yCoord && mop.blockZ==target.zCoord);
}
 
源代码30 项目: NOVA-Core   文件: FWBlock.java
@Override
public void onBlockClicked(World world, BlockPos pos, EntityPlayer player) {
	Block blockInstance = getBlockInstance(world, VectorConverter.instance().toNova(pos));
	MovingObjectPosition mop = player.rayTrace(10, 1);
	Block.LeftClickEvent evt = new Block.LeftClickEvent(EntityConverter.instance().toNova(player), DirectionConverter.instance().toNova(mop.sideHit), VectorConverter.instance().toNova(mop.hitVec));
	blockInstance.events.publish(evt);
}
 
 类所在包
 同包方法