package hmggirlfront;


import java.io.File;

import org.lwjgl.input.Keyboard;

import gvclib.render.RenderB_Base;
import hmggirlfront.block.tile.TileEntityBlock_Camonet;
import hmggirlfront.block.tile.TileEntityHelpBuildingBase;
import hmggirlfront.block.tile.TileEntityM_Supplies;
import hmggirlfront.block.tile.TileEntity_BaseFlag;
import hmggirlfront.block.tile.TileEntity_Base_Fieldhospital;
import hmggirlfront.block.tile.TileEntity_Base_Headquarters;
import hmggirlfront.block.tile.TileEntity_Base_Materials;
import hmggirlfront.block.tile.TileEntity_Base_Munitionsdepot;
import hmggirlfront.block.tile.TileEntity_Base_Oil_complex;
import hmggirlfront.block.tile.TileEntity_DecoFacingBlock;
import hmggirlfront.block.tile.TileEntity_ExpBlock;
import hmggirlfront.block.tile.TileEntity_GKGunRack;
import hmggirlfront.block.tile.TileEntity_Goods;
import hmggirlfront.block.tile.TileEntity_Point;
import hmggirlfront.block.tile.TileEntity_Spawn;
import hmggirlfront.block.tile.TileEntity_Spawn_Boss;
import hmggirlfront.entity.EntityDoll;
import hmggirlfront.entity.EntityDoll_Dummy;
import hmggirlfront.entity.EntityDoll_HL;
import hmggirlfront.entity.EntityKalina;
import hmggirlfront.entity.bullet.EntityBullet_Blade;
import hmggirlfront.entity.drone.EntityDrone;
import hmggirlfront.entity.mav.EntityMAV;
import hmggirlfront.entity.mob.EntityELID_SKELETEN;
import hmggirlfront.entity.mob.EntityELID_ZOMBIE;
import hmggirlfront.entity.mob.EntityIBC01;
import hmggirlfront.entity.mob.EntityIBC01Turret;
import hmggirlfront.entity.mob.EntityIBC02;
import hmggirlfront.entity.mob.EntityIBC03;
import hmggirlfront.entity.mob.EntityIBC04;
import hmggirlfront.entity.mob.EntityIBC05;
import hmggirlfront.entity.mob.EntityIBC06;
import hmggirlfront.entity.mob.EntityIBC07;
import hmggirlfront.entity.mob.EntityIBC08;
import hmggirlfront.entity.mob.EntityIBC09;
import hmggirlfront.entity.mob.EntityIBC10;
import hmggirlfront.entity.mob.EntityIBC10Turret;
import hmggirlfront.entity.mob.EntityIBC10u;
import hmggirlfront.entity.mob.EntityIBC11;
import hmggirlfront.entity.mob.EntityIBC12;
import hmggirlfront.entity.mob.EntityIBC13;
import hmggirlfront.entity.mob.EntityIBC14;
import hmggirlfront.entity.mob.EntityIBCBoss01;
import hmggirlfront.entity.mob.EntityIBCBoss01_Bit;
import hmggirlfront.entity.mob.EntityIBCBoss02;
import hmggirlfront.entity.mob.EntityIBCBoss03;
import hmggirlfront.entity.mob.EntityIBCBoss04;
import hmggirlfront.entity.mob.EntityIBCBoss05;
import hmggirlfront.entity.mob.EntityIBCBoss06;
import hmggirlfront.entity.mob.EntityIBCBoss07;
import hmggirlfront.entity.mob.EntityIBCBoss08;
import hmggirlfront.entity.mob.EntityIBCGENE;
import hmggirlfront.entity.mob.EntityIBCJUPITER;
import hmggirlfront.entity.mob.EntityIBCML;
import hmggirlfront.entity.mob.EntitySCM_AEGIS;
import hmggirlfront.entity.mob.EntitySCM_CERYNITIS;
import hmggirlfront.entity.mob.EntitySCM_CYCLOPS;
import hmggirlfront.entity.mob.EntitySCM_HYDRA;
import hmggirlfront.entity.mob.paradeus.EntityPDS_NYTO_EOT1;
import hmggirlfront.entity.mob.paradeus.EntityPDS_NYTO_N;
import hmggirlfront.entity.mob.paradeus.EntityPDS_NYTO_O;
import hmggirlfront.entity.mob.paradeus.EntityPDS_NYTO_P;
import hmggirlfront.entity.npc.EntityNPC_Doll;
import hmggirlfront.entity.npc.EntityTraining_Drone;
import hmggirlfront.entity.vehicle.EntityVe_APC;
import hmggirlfront.entity.vehicle.EntityVe_BIKE;
import hmggirlfront.entity.vehicle.EntityVe_CB90;
import hmggirlfront.entity.vehicle.EntityVe_HMMWV;
import hmggirlfront.entity.vehicle.EntityVe_Heli;
import hmggirlfront.entity.vehicle.EntityVe_IFV;
import hmggirlfront.entity.vehicle.EntityVe_RHIB;
import hmggirlfront.entity.vehicle.EntityVe_TRUCK;
import hmggirlfront.render.RenderDoll;
import hmggirlfront.render.RenderDoll_Dummy;
import hmggirlfront.render.RenderDoll_HL;
import hmggirlfront.render.RenderKalina;
import hmggirlfront.render.drone.RenderDrone;
import hmggirlfront.render.mav.RenderMAV;
import hmggirlfront.render.mob.RenderELID_SKELETEN;
import hmggirlfront.render.mob.RenderELID_ZOMBIE;
import hmggirlfront.render.mob.RenderIBC01;
import hmggirlfront.render.mob.RenderIBC01Turret;
import hmggirlfront.render.mob.RenderIBC02;
import hmggirlfront.render.mob.RenderIBC03;
import hmggirlfront.render.mob.RenderIBC04;
import hmggirlfront.render.mob.RenderIBC05;
import hmggirlfront.render.mob.RenderIBC06;
import hmggirlfront.render.mob.RenderIBC07;
import hmggirlfront.render.mob.RenderIBC08;
import hmggirlfront.render.mob.RenderIBC09;
import hmggirlfront.render.mob.RenderIBC10;
import hmggirlfront.render.mob.RenderIBC10Turret;
import hmggirlfront.render.mob.RenderIBC10u;
import hmggirlfront.render.mob.RenderIBC11;
import hmggirlfront.render.mob.RenderIBC12;
import hmggirlfront.render.mob.RenderIBC13;
import hmggirlfront.render.mob.RenderIBC14;
import hmggirlfront.render.mob.RenderIBCBoss01;
import hmggirlfront.render.mob.RenderIBCBoss01_Bit;
import hmggirlfront.render.mob.RenderIBCBoss02;
import hmggirlfront.render.mob.RenderIBCBoss03;
import hmggirlfront.render.mob.RenderIBCBoss04;
import hmggirlfront.render.mob.RenderIBCBoss05;
import hmggirlfront.render.mob.RenderIBCBoss06;
import hmggirlfront.render.mob.RenderIBCBoss07;
import hmggirlfront.render.mob.RenderIBCBoss08;
import hmggirlfront.render.mob.RenderIBCGENE;
import hmggirlfront.render.mob.RenderIBCJUPITER;
import hmggirlfront.render.mob.RenderIBCML;
import hmggirlfront.render.mob.RenderSCM_AEGIS;
import hmggirlfront.render.mob.RenderSCM_CERYNITIS;
import hmggirlfront.render.mob.RenderSCM_CYCLOPS;
import hmggirlfront.render.mob.RenderSCM_HYDRA;
import hmggirlfront.render.mob.paradeus.RenderPDS_NYTO_EOT1;
import hmggirlfront.render.mob.paradeus.RenderPDS_NYTO_N;
import hmggirlfront.render.mob.paradeus.RenderPDS_NYTO_O;
import hmggirlfront.render.mob.paradeus.RenderPDS_NYTO_P;
import hmggirlfront.render.npc.RenderNPC_Doll;
import hmggirlfront.render.npc.RenderTraining_Drone;
import hmggirlfront.render.tile.TileRenderHelpBuildingBase;
import hmggirlfront.render.tile.TileRender_Base_Base;
import hmggirlfront.render.tile.TileRender_Camonet;
import hmggirlfront.render.tile.TileRender_DecoFacingBlock;
import hmggirlfront.render.tile.TileRender_ExpBlock;
import hmggirlfront.render.tile.TileRender_GKGunRack;
import hmggirlfront.render.tile.TileRender_Goods;
import hmggirlfront.render.tile.TileRender_M_Supplies;
import hmggirlfront.render.tile.TileRender_Point;
import hmggirlfront.render.tile.TileRender_Spawn;
import hmggirlfront.render.tile.TileRender_Spawn_Boss;
import hmggirlfront.render.vehicle.RenderVe_APC;
import hmggirlfront.render.vehicle.RenderVe_BIKE;
import hmggirlfront.render.vehicle.RenderVe_CB90;
import hmggirlfront.render.vehicle.RenderVe_HMMWV;
import hmggirlfront.render.vehicle.RenderVe_Heli;
import hmggirlfront.render.vehicle.RenderVe_IFV;
import hmggirlfront.render.vehicle.RenderVe_RHIB;
import hmggirlfront.render.vehicle.RenderVe_TRUCK;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.RenderItem;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
import net.minecraftforge.fml.client.FMLClientHandler;
import net.minecraftforge.fml.client.registry.ClientRegistry;
import net.minecraftforge.fml.client.registry.RenderingRegistry;
public class ClientProxyGF extends CommonSideProxyGF {
    
	@Override
    public boolean getClient() {
        return true;
    }
	
    @Override
	public World getCilentWorld(){
		return FMLClientHandler.instance().getClient().world;
		}
    
    @Override
    public EntityPlayer getEntityPlayerInstance() {
        return Minecraft.getMinecraft().player;
    }
    
    @Override
    public void registerClientInfo() {
        //ClientRegistry.registerKeyBinding(Speedreload);
    }
    @Override
	public File ProxyFile(){
		return Minecraft.getMinecraft().mcDataDir;
	}
    @Override
	public void reisterRenderers(){
    	Minecraft mc = FMLClientHandler.instance().getClient();
    	//RenderManager rendermanager = new RenderManager(mc.renderEngine, mc.getRenderItem());
    	RenderManager rendermanager = mc.getRenderManager();
    	RenderItem renderitem = mc.getRenderItem();
    	
    	RenderingRegistry.registerEntityRenderingHandler(EntityDoll.class, new RenderDoll(rendermanager));
    	
    	RenderingRegistry.registerEntityRenderingHandler(EntityDoll_Dummy.class, new RenderDoll_Dummy(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityDoll_HL.class, new RenderDoll_HL(rendermanager));
    	
    	RenderingRegistry.registerEntityRenderingHandler(EntityIBC01.class, new RenderIBC01(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityIBC02.class, new RenderIBC02(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityIBC03.class, new RenderIBC03(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityIBC04.class, new RenderIBC04(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityIBC05.class, new RenderIBC05(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityIBC06.class, new RenderIBC06(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityIBC07.class, new RenderIBC07(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityIBC08.class, new RenderIBC08(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityIBC09.class, new RenderIBC09(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityIBC10.class, new RenderIBC10(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityIBC11.class, new RenderIBC11(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityIBC12.class, new RenderIBC12(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityIBC13.class, new RenderIBC13(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityIBC14.class, new RenderIBC14(rendermanager));
    	
    	RenderingRegistry.registerEntityRenderingHandler(EntityIBC10u.class, new RenderIBC10u(rendermanager));
    	
    	RenderingRegistry.registerEntityRenderingHandler(EntityIBC01Turret.class, new RenderIBC01Turret(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityIBC10Turret.class, new RenderIBC10Turret(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityIBCML.class, new RenderIBCML(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityIBCJUPITER.class, new RenderIBCJUPITER(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityIBCGENE.class, new RenderIBCGENE(rendermanager));
    	
    	RenderingRegistry.registerEntityRenderingHandler(EntityIBCBoss01.class, new RenderIBCBoss01(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityIBCBoss01_Bit.class, new RenderIBCBoss01_Bit(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityIBCBoss02.class, new RenderIBCBoss02(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityIBCBoss03.class, new RenderIBCBoss03(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityIBCBoss04.class, new RenderIBCBoss04(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityIBCBoss05.class, new RenderIBCBoss05(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityIBCBoss06.class, new RenderIBCBoss06(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityIBCBoss07.class, new RenderIBCBoss07(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityIBCBoss08.class, new RenderIBCBoss08(rendermanager));
    	
    	
    	RenderingRegistry.registerEntityRenderingHandler(EntitySCM_CYCLOPS.class, new RenderSCM_CYCLOPS(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntitySCM_AEGIS.class, new RenderSCM_AEGIS(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntitySCM_CERYNITIS.class, new RenderSCM_CERYNITIS(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntitySCM_HYDRA.class, new RenderSCM_HYDRA(rendermanager));
    	
    	
    	RenderingRegistry.registerEntityRenderingHandler(EntityELID_ZOMBIE.class, new RenderELID_ZOMBIE(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityELID_SKELETEN.class, new RenderELID_SKELETEN(rendermanager));
    	
    	
    	RenderingRegistry.registerEntityRenderingHandler(EntityPDS_NYTO_O.class, new RenderPDS_NYTO_O(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityPDS_NYTO_P.class, new RenderPDS_NYTO_P(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityPDS_NYTO_N.class, new RenderPDS_NYTO_N(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityPDS_NYTO_EOT1.class, new RenderPDS_NYTO_EOT1(rendermanager));
    	
    	
    	
    	RenderingRegistry.registerEntityRenderingHandler(EntityTraining_Drone.class, new RenderTraining_Drone(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityKalina.class, new RenderKalina(rendermanager));
    	
    	RenderingRegistry.registerEntityRenderingHandler(EntityNPC_Doll.class, new RenderNPC_Doll(rendermanager));
    	
    	
    	RenderingRegistry.registerEntityRenderingHandler(EntityDrone.class, new RenderDrone(rendermanager));
    	
    	RenderingRegistry.registerEntityRenderingHandler(EntityMAV.class, new RenderMAV(rendermanager));
    	//RenderingRegistry.registerEntityRenderingHandler(EntityMAV_PlayerDummy.class, new RenderMAV_PlayerDummy(rendermanager));
    	
    	
    	RenderingRegistry.registerEntityRenderingHandler(EntityVe_Heli.class, new RenderVe_Heli(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityVe_APC.class, new RenderVe_APC(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityVe_BIKE.class, new RenderVe_BIKE(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityVe_IFV.class, new RenderVe_IFV(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityVe_TRUCK.class, new RenderVe_TRUCK(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityVe_HMMWV.class, new RenderVe_HMMWV(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityVe_RHIB.class, new RenderVe_RHIB(rendermanager));
    	RenderingRegistry.registerEntityRenderingHandler(EntityVe_CB90.class, new RenderVe_CB90(rendermanager));
    	
    	RenderingRegistry.registerEntityRenderingHandler(EntityBullet_Blade.class, new RenderB_Base(rendermanager));
    	
    }
    
    @Override
    public void registerTileEntity() {
    	ClientRegistry.registerTileEntity(TileEntityM_Supplies.class, "TileEntityM_Supplies", new TileRender_M_Supplies());
    	
    	ClientRegistry.registerTileEntity(TileEntity_Base_Materials.class, "TileEntity_Base_Materials", new TileRender_Base_Base());
    	ClientRegistry.registerTileEntity(TileEntity_Base_Fieldhospital.class, "TileEntity_Base_Fieldhospital", new TileRender_Base_Base());
    	ClientRegistry.registerTileEntity(TileEntity_Base_Munitionsdepot.class, "TileEntity_Base_Munitionsdepot", new TileRender_Base_Base());
    	ClientRegistry.registerTileEntity(TileEntity_Base_Headquarters.class, "TileEntity_Base_Headquarters", new TileRender_Base_Base());
    	ClientRegistry.registerTileEntity(TileEntity_Base_Oil_complex.class, "TileEntity_Base_Oil_complex", new TileRender_Base_Base());
    	
    	ClientRegistry.registerTileEntity(TileEntity_BaseFlag.class, "TileEntity_BaseFlag", new TileRender_Base_Base());
    	
    	ClientRegistry.registerTileEntity(TileEntity_Spawn_Boss.class, "TileEntity_Spawn_Boss", new TileRender_Spawn_Boss());
    	
    	ClientRegistry.registerTileEntity(TileEntity_Spawn.class, "TileEntity_Spawn", new TileRender_Spawn());
    	
    	ClientRegistry.registerTileEntity(TileEntity_Goods.class, "TileEntity_Goods", new TileRender_Goods());
    	
    	ClientRegistry.registerTileEntity(TileEntityBlock_Camonet.class, "TileEntityBlock_Camonet", new TileRender_Camonet());
    	
    	ClientRegistry.registerTileEntity(TileEntity_ExpBlock.class, "TileEntity_ExpBlock", new TileRender_ExpBlock());
    	ClientRegistry.registerTileEntity(TileEntity_DecoFacingBlock.class, "TileEntity_DecoFacingBlock", new TileRender_DecoFacingBlock());
    	
    	ClientRegistry.registerTileEntity(TileEntity_GKGunRack.class, "TileEntity_GKGunRack", new TileRender_GKGunRack());
    	
    	
    	ClientRegistry.registerTileEntity(TileEntity_Point.class, "TileEntity_Point", new TileRender_Point());
    	
    	ClientRegistry.registerTileEntity(TileEntityHelpBuildingBase.class, "TileEntityHelpBuildingBase", new TileRenderHelpBuildingBase());
    }
    
    @Override
    public void InitRendering()
    {
    	//ClientRegistry.bindTileEntitySpecialRenderer(GVCTileEntityItemG36.class, new GVCRenderItemG36());
    }
    @Override
    public boolean jumped(){
		//return Minecraft.getMinecraft().gameSettings.keyBindJump.isKeyDown();
		return Keyboard.isCreated() && Keyboard.isKeyDown(Keyboard.KEY_SPACE);
		//return false;
	}
    @Override
    public boolean keyx(){
		//return Minecraft.getMinecraft().gameSettings.keyBindJump.isKeyDown();
		return Keyboard.isCreated() && Keyboard.isKeyDown(Keyboard.KEY_X);
		//return false;
	}
    @Override
    public boolean keyg(){
		//return Minecraft.getMinecraft().gameSettings.keyBindJump.isKeyDown();
		return Keyboard.isCreated() && Keyboard.isKeyDown(Keyboard.KEY_G);
		//return false;
	}
    
    @Override
    public boolean leftclick(){
		return Minecraft.getMinecraft().gameSettings.keyBindAttack.isKeyDown();
		//return Minecraft.getMinecraft().c;
	}
    
    @Override
    public boolean rightclick(){
		return Minecraft.getMinecraft().gameSettings.keyBindUseItem.isKeyDown();
    	//return Keyboard.isCreated() && Keyboard.isKeyDown(Minecraft.getMinecraft().gameSettings.keyBindRight.getKeyCode());
	}
    
    /*@Override
    public boolean canattack(){
		return !(Minecraft.getMinecraft().thePlayer.inventory.armorItemInSlot(3) != null &&
				(Minecraft.getMinecraft().thePlayer.inventory.armorItemInSlot(3).getItem() == Items.GOLDEN_HELMET));
		//return false;
	}*/
    
    @Override
    public boolean left(){
    	//return Keyboard.isCreated() && Keyboard.isKeyDown(Keyboard.KEY_LEFT);
    	return Keyboard.isCreated() && Keyboard.isKeyDown(Keyboard.getKeyIndex(mod_GirlFront.cfg_key_left));
	}
    @Override
    public boolean right(){
    	return Keyboard.isCreated() && Keyboard.isKeyDown(Keyboard.getKeyIndex(mod_GirlFront.cfg_key_right));
		//return false;
	}
    @Override
    public boolean up(){
    	return Keyboard.isCreated() && Keyboard.isKeyDown(Keyboard.getKeyIndex(mod_GirlFront.cfg_key_up));
		//return false;
	}
    @Override
    public boolean down(){
    	return Keyboard.isCreated() && Keyboard.isKeyDown(Keyboard.getKeyIndex(mod_GirlFront.cfg_key_down));
		//return false;
	}
 
}