|
@@ -1,5 +1,6 @@
|
|
|
package me.km;
|
|
|
|
|
|
+import com.mojang.blaze3d.platform.GlStateManager;
|
|
|
import java.awt.Color;
|
|
|
import java.util.List;
|
|
|
import me.km.blocks.ModBlocks;
|
|
@@ -11,6 +12,7 @@ import me.km.items.ModelCylinder;
|
|
|
import me.km.items.ModelHat;
|
|
|
import me.km.networking.ItemStackDisplayGui;
|
|
|
import me.km.networking.KeyManager;
|
|
|
+import me.km.networking.ModPacketHandler;
|
|
|
import me.km.networking.PlayerDisplayGui;
|
|
|
import me.km.networking.PlayerHeadGui;
|
|
|
import me.km.networking.StatusDisplayGui;
|
|
@@ -22,6 +24,8 @@ import net.minecraft.client.gui.screen.Screen;
|
|
|
import net.minecraft.client.renderer.color.BlockColors;
|
|
|
import net.minecraft.client.renderer.color.IBlockColor;
|
|
|
import net.minecraft.client.renderer.color.ItemColors;
|
|
|
+import net.minecraft.client.renderer.entity.LivingRenderer;
|
|
|
+import net.minecraft.entity.LivingEntity;
|
|
|
import net.minecraft.item.Item;
|
|
|
import net.minecraft.item.ArmorItem;
|
|
|
import net.minecraft.item.BlockItem;
|
|
@@ -37,21 +41,25 @@ import net.minecraftforge.api.distmarker.Dist;
|
|
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
|
|
import net.minecraftforge.client.event.GuiScreenEvent;
|
|
|
import net.minecraftforge.client.event.RenderGameOverlayEvent;
|
|
|
+import net.minecraftforge.client.event.RenderLivingEvent;
|
|
|
import net.minecraftforge.common.MinecraftForge;
|
|
|
import net.minecraftforge.event.entity.player.ItemTooltipEvent;
|
|
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
|
|
import net.minecraftforge.event.TickEvent;
|
|
|
+import net.minecraftforge.event.entity.player.PlayerInteractEvent;
|
|
|
|
|
|
@OnlyIn(Dist.CLIENT)
|
|
|
public class Client
|
|
|
{
|
|
|
public final static ModelCylinder CYLINDER = new ModelCylinder(1.0f);
|
|
|
public final static ModelHat STRAW_HAT = new ModelHat(1.0f);
|
|
|
+ public static KeyManager keyManager = null;
|
|
|
|
|
|
public static void init()
|
|
|
{
|
|
|
MinecraftForge.EVENT_BUS.register(new Client());
|
|
|
- MinecraftForge.EVENT_BUS.register(new KeyManager());
|
|
|
+ keyManager = new KeyManager();
|
|
|
+ MinecraftForge.EVENT_BUS.register(keyManager);
|
|
|
registerColors();
|
|
|
ClientReflectionUtils.updatePlayerRenderer();
|
|
|
ClientReflectionUtils.updateFluidRenderer();
|
|
@@ -104,6 +112,43 @@ public class Client
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @SubscribeEvent
|
|
|
+ public void onClientTick(RenderLivingEvent.Specials.Pre e)
|
|
|
+ {
|
|
|
+ e.setCanceled(true);
|
|
|
+
|
|
|
+ LivingRenderer lr = e.getRenderer();
|
|
|
+ LivingEntity liv = e.getEntity();
|
|
|
+ if(ClientReflectionUtils.canRenderName(lr, liv))
|
|
|
+ {
|
|
|
+ double distance = liv.getDistanceSq(lr.getRenderManager().info.getProjectedView());
|
|
|
+ float f = liv.shouldRenderSneaking() ? 32.0F : 64.0F;
|
|
|
+ if (!(distance >= (double)(f * f)))
|
|
|
+ {
|
|
|
+ ITextComponent text = liv.getCustomName();
|
|
|
+ if(text == null)
|
|
|
+ {
|
|
|
+ text = liv.getDisplayName();
|
|
|
+ }
|
|
|
+ String s = text.getFormattedText();
|
|
|
+ String[] parts = s.split("\n");
|
|
|
+ GlStateManager.alphaFunc(516, 0.1F);
|
|
|
+ double y = e.getY();
|
|
|
+ for(String p : parts)
|
|
|
+ {
|
|
|
+ ClientReflectionUtils.renderEntityName(lr, liv, e.getX(), y, e.getZ(), p, distance);
|
|
|
+ y += 9.0 * 1.15 * 0.025;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @SubscribeEvent
|
|
|
+ public void onEmptyLeftClick(PlayerInteractEvent.LeftClickEmpty e)
|
|
|
+ {
|
|
|
+ ModPacketHandler.sendLeftClickEmpty();
|
|
|
+ }
|
|
|
+
|
|
|
@SubscribeEvent
|
|
|
public void onRenderGui(RenderGameOverlayEvent.Pre e)
|
|
|
{
|
|
@@ -121,7 +166,7 @@ public class Client
|
|
|
PlayerDisplayGui.INSTANCE.paint();
|
|
|
StatusDisplayGui.INSTANCE.paint();
|
|
|
PlayerHeadGui.INSTANCE.paint();
|
|
|
- ItemStackDisplayGui.INSTANCE.paint();
|
|
|
+ ItemStackDisplayGui.INSTANCE.paint(keyManager);
|
|
|
}
|
|
|
}
|
|
|
|