package fyresmodjam; import java.awt.Color; import org.lwjgl.input.Keyboard; import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import fyresmodjam.blessings.BlessingUtils; import fyresmodjam.entities.EntityMysteryPotion; import fyresmodjam.entities.renderers.RenderMysteryPotion; import fyresmodjam.handlers.ClientTickHandler; import fyresmodjam.handlers.FyresKeyHandler; import fyresmodjam.handlers.NewPacketHandler; import fyresmodjam.misc.ConfigData; import fyresmodjam.misc.EntityStatHelper; import fyresmodjam.tileentities.TileEntityCrystal; import fyresmodjam.tileentities.TileEntityCrystalStand; import fyresmodjam.tileentities.TileEntityPillar; import fyresmodjam.tileentities.TileEntityTrap; import fyresmodjam.tileentities.renderers.TileEntityCrystalRenderer; import fyresmodjam.tileentities.renderers.TileEntityCrystalStandRenderer; import fyresmodjam.tileentities.renderers.TileEntityPillarRenderer; import fyresmodjam.tileentities.renderers.TileEntityTrapRenderer; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.entity.EntityClientPlayerMP; import net.minecraft.client.gui.FontRenderer; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.MovingObjectPosition.MovingObjectType; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.config.Configuration; public class ClientProxy extends CommonProxy { @SubscribeEvent public void guiRenderEvent(RenderGameOverlayEvent.Post event) { if (event.type == RenderGameOverlayEvent.ElementType.HOTBAR) { MovingObjectPosition mouse = Minecraft .getMinecraft().objectMouseOver; World world = Minecraft.getMinecraft().theWorld; EntityClientPlayerMP thePlayer = Minecraft .getMinecraft().thePlayer; FontRenderer fontRenderer = Minecraft .getMinecraft().fontRenderer; int halfedWidth = event.resolution.getScaledWidth() / 2; if (mouse != null && world != null && mouse.typeOfHit == MovingObjectType.BLOCK) { TileEntity te = world.getTileEntity( mouse.blockX, mouse.blockY, mouse.blockZ); Block id = world.getBlock(mouse.blockX, mouse.blockY, mouse.blockZ); if (id == ModjamMod.blockPillar || (id == ModjamMod.blockTrap && te != null && te instanceof TileEntityTrap && ((TileEntityTrap) te).placedBy != null)) { TileEntityTrap tileEntityTrap = null; if(te instanceof TileEntityTrap) tileEntityTrap = (TileEntityTrap) te; if (tileEntityTrap != null && tileEntityTrap.placedBy != null) { String key = Keyboard .getKeyName(FyresKeyHandler.examine .getKeyCode()); String string = "Press " + key + " to Examine"; if (thePlayer != null && tileEntityTrap.placedBy .equals(thePlayer .getCommandSenderName())) { if (thePlayer.isSneaking()) string = "Use to disarm (Stand to toggle setting)"; else string = "Use to toggle setting (Sneak to disarm)"; } fontRenderer.drawStringWithShadow( string, halfedWidth - (fontRenderer .getStringWidth(string) / 2), event.resolution.getScaledHeight() / 2 + 16, Color.WHITE.getRGB()); } } } if (thePlayer != null) { EntityPlayer player = thePlayer; if (BlessingUtils.hasBlessing(player)) { if (BlessingUtils.hasBlessing( player, "BlessingBerserker")) { if (!EntityStatHelper .hasStat(player, "BlessingCounter")) { EntityStatHelper.giveStat( player, "BlessingCounter", 0); } String string = EntityStatHelper .getStat(player, "BlessingCounter"); fontRenderer.drawStringWithShadow( string, halfedWidth - (fontRenderer .getStringWidth(string) / 2), event.resolution.getScaledHeight() - 48 + (player.capabilities.isCreativeMode ? 16 : 0), Color.RED.getRGB()); } } } } } @Override public void register() { ClientTickHandler clientHandler = new ClientTickHandler(); FMLCommonHandler.instance().bus().register(clientHandler); FMLCommonHandler.instance().bus() .register(new FyresKeyHandler()); ClientRegistry.bindTileEntitySpecialRenderer( TileEntityPillar.class, new TileEntityPillarRenderer()); ClientRegistry.bindTileEntitySpecialRenderer( TileEntityTrap.class, new TileEntityTrapRenderer()); ClientRegistry.bindTileEntitySpecialRenderer( TileEntityCrystal.class, new TileEntityCrystalRenderer()); ClientRegistry.bindTileEntitySpecialRenderer( TileEntityCrystalStand.class, new TileEntityCrystalStandRenderer()); RenderingRegistry.registerEntityRenderingHandler( EntityMysteryPotion.class, new RenderMysteryPotion( ModjamMod.mysteryPotion)); MinecraftForge.EVENT_BUS.register(this); } @Override public void sendPlayerMessage(String message) { NewPacketHandler.SEND_MESSAGE.data = new Object[] { message }; NewPacketHandler.SEND_MESSAGE.executeClient( Minecraft.getMinecraft().thePlayer); } public void loadFromConfig(Configuration config) { ConfigData.loadFromConfig(config); ConfigData.examineKey = config .get("Keybindings", "examine_key", ConfigData.examineKey) .getInt(ConfigData.examineKey); ConfigData.blessingKey = config .get("Keybindings", "blessing_key", ConfigData.blessingKey) .getInt(ConfigData.blessingKey); FyresKeyHandler.examine.setKeyCode(ConfigData.examineKey); FyresKeyHandler.activateBlessing .setKeyCode(ConfigData.blessingKey); } }