Search in sources :

Example 21 with OnlyIn

use of net.minecraftforge.api.distmarker.OnlyIn in project BluePower by Qmunity.

the class BPEventHandler method blockHighlightEvent.

@OnlyIn(Dist.CLIENT)
@SubscribeEvent
public void blockHighlightEvent(DrawHighlightEvent event) {
    PlayerEntity player = Minecraft.getInstance().player;
    if (player == null) {
        return;
    }
    World world = player.level;
    if (world == null) {
        return;
    }
    RayTraceResult mop = event.getTarget();
    if (mop instanceof BlockRayTraceResult) {
        BlockPos pos = ((BlockRayTraceResult) mop).getBlockPos();
        BlockState state = world.getBlockState(pos);
        if (state.getBlock() instanceof BlockBPMultipart) {
            BlockState partstate = MultipartUtils.getClosestState(player, pos);
            IVertexBuilder builder = event.getBuffers().getBuffer(RenderType.lines());
            if (partstate != null) {
                VoxelShape shape = partstate.getShape(world, pos, ISelectionContext.of(player));
                Vector3d projectedView = event.getInfo().getPosition();
                double d0 = pos.getX() - projectedView.x();
                double d1 = pos.getY() - projectedView.y();
                double d2 = pos.getZ() - projectedView.z();
                Matrix4f matrix4f = event.getMatrix().last().pose();
                shape.forAllEdges((startX, startY, startZ, endX, endY, endZ) -> {
                    builder.vertex(matrix4f, (float) (startX + d0), (float) (startY + d1), (float) (startZ + d2)).color(0.0F, 0.0F, 0.0F, 0.4F).endVertex();
                    builder.vertex(matrix4f, (float) (endX + d0), (float) (endY + d1), (float) (endZ + d2)).color(0.0F, 0.0F, 0.0F, 0.4F).endVertex();
                });
                event.setCanceled(true);
            }
        }
    }
}
Also used : Matrix4f(net.minecraft.util.math.vector.Matrix4f) BlockState(net.minecraft.block.BlockState) VoxelShape(net.minecraft.util.math.shapes.VoxelShape) Vector3d(net.minecraft.util.math.vector.Vector3d) RayTraceResult(net.minecraft.util.math.RayTraceResult) BlockRayTraceResult(net.minecraft.util.math.BlockRayTraceResult) BlockBPMultipart(com.bluepowermod.block.BlockBPMultipart) BlockPos(net.minecraft.util.math.BlockPos) BlockRayTraceResult(net.minecraft.util.math.BlockRayTraceResult) World(net.minecraft.world.World) PlayerEntity(net.minecraft.entity.player.PlayerEntity) IVertexBuilder(com.mojang.blaze3d.vertex.IVertexBuilder) SubscribeEvent(net.minecraftforge.eventbus.api.SubscribeEvent) OnlyIn(net.minecraftforge.api.distmarker.OnlyIn)

Example 22 with OnlyIn

use of net.minecraftforge.api.distmarker.OnlyIn in project Geolosys by oitsjustjose.

the class PacketStackUnderground method sendProspectingMessage.

@OnlyIn(Dist.CLIENT)
private static void sendProspectingMessage(PlayerEntity player, Object... messageDecorators) {
    TranslationTextComponent msg = new TranslationTextComponent("geolosys.pro_pick.tooltip.found", messageDecorators);
    player.sendStatusMessage(msg, true);
}
Also used : TranslationTextComponent(net.minecraft.util.text.TranslationTextComponent) OnlyIn(net.minecraftforge.api.distmarker.OnlyIn)

Example 23 with OnlyIn

use of net.minecraftforge.api.distmarker.OnlyIn in project Geolosys by oitsjustjose.

the class PacketStackUnderground method handleClient.

@OnlyIn(Dist.CLIENT)
public static void handleClient(PacketStackUnderground msg, Supplier<NetworkEvent.Context> context) {
    if (context.get().getDirection().getReceptionSide() == LogicalSide.CLIENT) {
        context.get().enqueueWork(() -> {
            Minecraft mc = Minecraft.getInstance();
            sendProspectingMessage(mc.player, PacketHelpers.messagify(msg.blocks), msg.direction);
        });
    }
    context.get().setPacketHandled(true);
}
Also used : Minecraft(net.minecraft.client.Minecraft) OnlyIn(net.minecraftforge.api.distmarker.OnlyIn)

Example 24 with OnlyIn

use of net.minecraftforge.api.distmarker.OnlyIn in project Geolosys by oitsjustjose.

the class ProPickItem method onDrawScreen.

@SubscribeEvent
@OnlyIn(Dist.CLIENT)
@SuppressWarnings("deprecation")
public void onDrawScreen(RenderGameOverlayEvent.Post event) {
    Minecraft mc = Minecraft.getInstance();
    if (event.getType() != RenderGameOverlayEvent.ElementType.ALL || mc.gameSettings.showDebugInfo || mc.gameSettings.showDebugProfilerChart) {
        return;
    }
    if (mc.player.getHeldItemMainhand().getItem() instanceof ProPickItem || mc.player.getHeldItemOffhand().getItem() instanceof ProPickItem) {
        GlStateManager.enableBlend();
        GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
        RenderSystem.disableLighting();
        int seaLvl = mc.player.getEntityWorld().getSeaLevel();
        int level = (int) (seaLvl - mc.player.getPosY());
        if (level < 0) {
            mc.fontRenderer.drawStringWithShadow(event.getMatrixStack(), I18n.format("geolosys.pro_pick.depth.above", Math.abs(level)), (float) ClientConfig.PROPICK_HUD_X.get(), (float) ClientConfig.PROPICK_HUD_Y.get(), 0xFFFFFFFF);
        } else if (level == 0) {
            mc.fontRenderer.drawStringWithShadow(event.getMatrixStack(), I18n.format("geolosys.pro_pick.depth.at"), (float) ClientConfig.PROPICK_HUD_X.get(), (float) ClientConfig.PROPICK_HUD_Y.get(), 0xFFFFFFFF);
        } else {
            mc.fontRenderer.drawStringWithShadow(event.getMatrixStack(), I18n.format("geolosys.pro_pick.depth.below", Math.abs(level)), (float) ClientConfig.PROPICK_HUD_X.get(), (float) ClientConfig.PROPICK_HUD_Y.get(), 0xFFFFFFFF);
        }
        RenderSystem.color4f(1F, 1F, 1F, 1F);
    }
}
Also used : Minecraft(net.minecraft.client.Minecraft) SubscribeEvent(net.minecraftforge.eventbus.api.SubscribeEvent) OnlyIn(net.minecraftforge.api.distmarker.OnlyIn)

Example 25 with OnlyIn

use of net.minecraftforge.api.distmarker.OnlyIn in project Geolosys by oitsjustjose.

the class PacketStackSurface method sendProspectingMessage.

@OnlyIn(Dist.CLIENT)
private static void sendProspectingMessage(PlayerEntity player, Object... messageDecorators) {
    TranslationTextComponent msg = new TranslationTextComponent("geolosys.pro_pick.tooltip.found_surface", messageDecorators);
    player.sendStatusMessage(msg, true);
}
Also used : TranslationTextComponent(net.minecraft.util.text.TranslationTextComponent) OnlyIn(net.minecraftforge.api.distmarker.OnlyIn)

Aggregations

OnlyIn (net.minecraftforge.api.distmarker.OnlyIn)45 ResourceLocation (net.minecraft.util.ResourceLocation)23 ModelResourceLocation (net.minecraft.client.renderer.model.ModelResourceLocation)17 Minecraft (net.minecraft.client.Minecraft)5 ResizeableTextureGenerator (com.cjm721.overloaded.client.render.dynamic.general.ResizeableTextureGenerator)3 StringTextComponent (net.minecraft.util.text.StringTextComponent)3 TranslationTextComponent (net.minecraft.util.text.TranslationTextComponent)3 CompoundNBT (net.minecraft.nbt.CompoundNBT)2 AxisAlignedBB (net.minecraft.util.math.AxisAlignedBB)2 BlockPos (net.minecraft.util.math.BlockPos)2 Vector3d (net.minecraft.util.math.vector.Vector3d)2 SubscribeEvent (net.minecraftforge.eventbus.api.SubscribeEvent)2 BlockBPMultipart (com.bluepowermod.block.BlockBPMultipart)1 RailGunFireMessage (com.cjm721.overloaded.network.packets.RailGunFireMessage)1 Streams (com.google.common.collect.Streams)1 MinecraftProfileTexture (com.mojang.authlib.minecraft.MinecraftProfileTexture)1 Type (com.mojang.authlib.minecraft.MinecraftProfileTexture.Type)1 IVertexBuilder (com.mojang.blaze3d.vertex.IVertexBuilder)1 ILaunchPluginService (cpw.mods.modlauncher.serviceapi.ILaunchPluginService)1 ArrayList (java.util.ArrayList)1