| 
					
				 | 
			
			
				@@ -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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |