This commit is contained in:
parent
5c88451f6f
commit
5d0fb2967c
2 changed files with 54 additions and 0 deletions
|
@ -71,6 +71,8 @@ import net.minecraft.util.Hand;
|
||||||
import net.minecraft.util.MovementInput;
|
import net.minecraft.util.MovementInput;
|
||||||
import net.minecraft.util.ResourceLocation;
|
import net.minecraft.util.ResourceLocation;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.BlockRayTraceResult;
|
||||||
|
import net.minecraft.util.math.EntityRayTraceResult;
|
||||||
import net.minecraft.util.math.MathHelper;
|
import net.minecraft.util.math.MathHelper;
|
||||||
import net.minecraft.util.math.RayTraceResult;
|
import net.minecraft.util.math.RayTraceResult;
|
||||||
import net.minecraft.util.text.TextFormatting;
|
import net.minecraft.util.text.TextFormatting;
|
||||||
|
@ -149,6 +151,14 @@ public class ForgeHooksClient
|
||||||
|
|
||||||
public static boolean onDrawBlockHighlight(WorldRenderer context, ActiveRenderInfo info, RayTraceResult target, int subID, float partialTicks)
|
public static boolean onDrawBlockHighlight(WorldRenderer context, ActiveRenderInfo info, RayTraceResult target, int subID, float partialTicks)
|
||||||
{
|
{
|
||||||
|
switch (target.getType()) {
|
||||||
|
case BLOCK:
|
||||||
|
if (!(target instanceof BlockRayTraceResult)) return false;
|
||||||
|
return MinecraftForge.EVENT_BUS.post(new DrawBlockHighlightEvent.HighlightBlock(context, info, target, subID, partialTicks));
|
||||||
|
case ENTITY:
|
||||||
|
if (!(target instanceof EntityRayTraceResult)) return false;
|
||||||
|
return MinecraftForge.EVENT_BUS.post(new DrawBlockHighlightEvent.HighlightEntity(context, info, target, subID, partialTicks));
|
||||||
|
}
|
||||||
return MinecraftForge.EVENT_BUS.post(new DrawBlockHighlightEvent(context, info, target, subID, partialTicks));
|
return MinecraftForge.EVENT_BUS.post(new DrawBlockHighlightEvent(context, info, target, subID, partialTicks));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,12 +19,19 @@
|
||||||
|
|
||||||
package net.minecraftforge.client.event;
|
package net.minecraftforge.client.event;
|
||||||
|
|
||||||
|
import net.minecraft.util.math.BlockRayTraceResult;
|
||||||
|
import net.minecraft.util.math.EntityRayTraceResult;
|
||||||
import net.minecraftforge.eventbus.api.Cancelable;
|
import net.minecraftforge.eventbus.api.Cancelable;
|
||||||
import net.minecraftforge.eventbus.api.Event;
|
import net.minecraftforge.eventbus.api.Event;
|
||||||
import net.minecraft.util.math.RayTraceResult;
|
import net.minecraft.util.math.RayTraceResult;
|
||||||
import net.minecraft.client.renderer.ActiveRenderInfo;
|
import net.minecraft.client.renderer.ActiveRenderInfo;
|
||||||
import net.minecraft.client.renderer.WorldRenderer;
|
import net.minecraft.client.renderer.WorldRenderer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An event called whenever the selection highlight around blocks is about to be rendered.
|
||||||
|
* Canceling this event stops the selection highlight from being rendered.
|
||||||
|
*/
|
||||||
|
//TODO: in 1.15 rename to DrawHighlightEvent
|
||||||
@Cancelable
|
@Cancelable
|
||||||
public class DrawBlockHighlightEvent extends Event
|
public class DrawBlockHighlightEvent extends Event
|
||||||
{
|
{
|
||||||
|
@ -48,4 +55,41 @@ public class DrawBlockHighlightEvent extends Event
|
||||||
public RayTraceResult getTarget() { return target; }
|
public RayTraceResult getTarget() { return target; }
|
||||||
public int getSubID() { return subID; }
|
public int getSubID() { return subID; }
|
||||||
public float getPartialTicks() { return partialTicks; }
|
public float getPartialTicks() { return partialTicks; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A variant of the DrawBlockHighlightEvent only called when a block is highlighted.
|
||||||
|
*/
|
||||||
|
@Cancelable
|
||||||
|
public static class HighlightBlock extends DrawBlockHighlightEvent
|
||||||
|
{
|
||||||
|
public HighlightBlock(WorldRenderer context, ActiveRenderInfo info, RayTraceResult target, int subID, float partialTicks)
|
||||||
|
{
|
||||||
|
super(context, info, target, subID, partialTicks);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockRayTraceResult getTarget()
|
||||||
|
{
|
||||||
|
return (BlockRayTraceResult) super.target;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A variant of the DrawBlockHighlightEvent only called when an entity is highlighted.
|
||||||
|
* Canceling this event has no effect.
|
||||||
|
*/
|
||||||
|
@Cancelable
|
||||||
|
public static class HighlightEntity extends DrawBlockHighlightEvent
|
||||||
|
{
|
||||||
|
public HighlightEntity(WorldRenderer context, ActiveRenderInfo info, RayTraceResult target, int subID, float partialTicks)
|
||||||
|
{
|
||||||
|
super(context, info, target, subID, partialTicks);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EntityRayTraceResult getTarget()
|
||||||
|
{
|
||||||
|
return (EntityRayTraceResult) super.target;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue