package com.pahimar.ee3.proxy; import com.pahimar.ee3.client.handler.DrawBlockHighlightEventHandler; import com.pahimar.ee3.client.handler.HUDTickHandler; import com.pahimar.ee3.client.handler.ItemTooltipEventHandler; import com.pahimar.ee3.client.handler.KeyInputEventHandler; import com.pahimar.ee3.client.renderer.item.*; import com.pahimar.ee3.client.renderer.tileentity.*; import com.pahimar.ee3.client.settings.Keybindings; import com.pahimar.ee3.client.util.ClientParticleHelper; import com.pahimar.ee3.client.util.ClientSoundHelper; import com.pahimar.ee3.init.ModBlocks; import com.pahimar.ee3.network.PacketHandler; import com.pahimar.ee3.network.message.MessageTransmutateEvent; import com.pahimar.ee3.reference.RenderIds; import com.pahimar.ee3.settings.ChalkSettings; import com.pahimar.ee3.tileentity.*; import com.pahimar.ee3.util.TransmutationHelper; import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.FMLCommonHandler; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import net.minecraftforge.client.MinecraftForgeClient; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.util.ForgeDirection; public class ClientProxy extends CommonProxy { public ChalkSettings chalkSettings = new ChalkSettings(); @Override public void registerEventHandlers() { super.registerEventHandlers(); FMLCommonHandler.instance().bus().register(new KeyInputEventHandler()); FMLCommonHandler.instance().bus().register(new HUDTickHandler()); MinecraftForge.EVENT_BUS.register(new ItemTooltipEventHandler()); MinecraftForge.EVENT_BUS.register(new DrawBlockHighlightEventHandler()); } @Override public void registerKeybindings() { ClientRegistry.registerKeyBinding(Keybindings.charge); ClientRegistry.registerKeyBinding(Keybindings.extra); ClientRegistry.registerKeyBinding(Keybindings.release); ClientRegistry.registerKeyBinding(Keybindings.toggle); } @Override public void playSound(String soundName, float xCoord, float yCoord, float zCoord, float volume, float pitch) { ClientSoundHelper.playSound(soundName, xCoord, yCoord, zCoord, volume, pitch); } @Override public void spawnParticle(String particleName, double xCoord, double yCoord, double zCoord, double xVelocity, double yVelocity, double zVelocity) { ClientParticleHelper.spawnParticleAtLocation(particleName, xCoord, yCoord, zCoord, xVelocity, yVelocity, zVelocity); } @Override public ClientProxy getClientProxy() { return this; } @Override public void initRenderingAndTextures() { RenderIds.calcinator = RenderingRegistry.getNextAvailableRenderId(); RenderIds.aludel = RenderingRegistry.getNextAvailableRenderId(); RenderIds.alchemicalChest = RenderingRegistry.getNextAvailableRenderId(); RenderIds.glassBell = RenderingRegistry.getNextAvailableRenderId(); RenderIds.researchStation = RenderingRegistry.getNextAvailableRenderId(); RenderIds.augmentationTable = RenderingRegistry.getNextAvailableRenderId(); RenderIds.alchemyArray = RenderingRegistry.getNextAvailableRenderId(); RenderIds.dummyArray = RenderingRegistry.getNextAvailableRenderId(); RenderIds.tabletSlab = RenderingRegistry.getNextAvailableRenderId(); MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.alchemicalChest), new ItemRendererAlchemicalChest()); MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.aludel), new ItemRendererAludel()); MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.calcinator), new ItemRendererCalcinator()); MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.glassBell), new ItemRendererGlassBell()); MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.researchStation), new ItemRendererResearchStation()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAlchemicalChest.class, new TileEntityRendererAlchemicalChest()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCalcinator.class, new TileEntityRendererCalcinator()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAludel.class, new TileEntityRendererAludel()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityGlassBell.class, new TileEntityRendererGlassBell()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityResearchStation.class, new TileEntityRendererResearchStation()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAlchemyArray.class, new TileEntityRendererAlchemyArray()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTransmutationTablet.class, new TileEntityRendererTransmutationTablet()); } @Override public void transmuteBlock(ItemStack itemStack, EntityPlayer player, World world, int x, int y, int z, ForgeDirection sideHit) { if (TransmutationHelper.targetBlockStack != null && itemStack != null) { ItemStack stack = TransmutationHelper.targetBlockStack; Block targetBlock = Block.getBlockFromItem(stack.getItem()); PacketHandler.INSTANCE.sendToServer(new MessageTransmutateEvent(x, y, z, sideHit, targetBlock, stack.getItemDamage())); } } }