// Path: src/main/java/p455w0rdslib/handlers/ProcessHandlerClient.java
// public class ProcessHandlerClient {
// 
// 	private static List<IProcess> processes = new ArrayList<IProcess>();
// 	private static List<IProcess> newProcesses = new ArrayList<IProcess>();
// 
// 	public static void init() {
// 		MinecraftForge.EVENT_BUS.register(new ProcessHandlerClient());
// 	}
// 
// 	@SubscribeEvent
// 	public void onClientTick(TickEvent.ClientTickEvent event) {
// 		if (event.phase == TickEvent.Phase.START) {
// 
// 			Iterator<IProcess> i = processes.iterator();
// 			List<IProcess> toBeRemoved = Lists.newArrayList();
// 
// 			while (i.hasNext()) {
// 				IProcess process = i.next();
// 				if (process.isDead()) {
// 					toBeRemoved.add(process);
// 				}
// 				else {
// 					process.updateProcess();
// 				}
// 			}
// 
// 			if (!toBeRemoved.isEmpty()) {
// 				for (IProcess p : toBeRemoved) {
// 					if (processes.contains(p)) {
// 						processes.remove(p);
// 					}
// 				}
// 			}
// 
// 			if (!newProcesses.isEmpty()) {
// 				processes.addAll(newProcesses);
// 				newProcesses.clear();
// 			}
// 		}
// 	}
// 
// 	@SubscribeEvent
// 	public void onWorldClose(WorldEvent.Unload event) {
// 		processes.clear();
// 		newProcesses.clear();
// 	}
// 
// 	public static void addProcess(IProcess process) {
// 		newProcesses.add(process);
// 	}
// 
// }


import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
import net.minecraftforge.fml.client.FMLClientHandler;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
import p455w0rdslib.handlers.ProcessHandlerClient;
/*
 * This file is part of p455w0rd's Library.
 * Copyright (c) 2016, p455w0rd (aka TheRealp455w0rd), All rights reserved
 * unless
 * otherwise stated.
 *
 * p455w0rd's Library is free software: you can redistribute it and/or modify
 * it under the terms of the MIT License.
 *
 * p455w0rd's Library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * MIT License for more details.
 *
 * You should have received a copy of the MIT License
 * along with p455w0rd's Library. If not, see
 * <https://opensource.org/licenses/MIT>.
 */
package p455w0rdslib.proxy;


/**
 * @author p455w0rd
 *
 */
public class ClientProxy extends CommonProxy {

	@Override
	public void preInit(FMLPreInitializationEvent e) {
		super.preInit(e);
// Path: src/main/java/p455w0rdslib/handlers/ProcessHandlerClient.java
// public class ProcessHandlerClient {
// 
// 	private static List<IProcess> processes = new ArrayList<IProcess>();
// 	private static List<IProcess> newProcesses = new ArrayList<IProcess>();
// 
// 	public static void init() {
// 		MinecraftForge.EVENT_BUS.register(new ProcessHandlerClient());
// 	}
// 
// 	@SubscribeEvent
// 	public void onClientTick(TickEvent.ClientTickEvent event) {
// 		if (event.phase == TickEvent.Phase.START) {
// 
// 			Iterator<IProcess> i = processes.iterator();
// 			List<IProcess> toBeRemoved = Lists.newArrayList();
// 
// 			while (i.hasNext()) {
// 				IProcess process = i.next();
// 				if (process.isDead()) {
// 					toBeRemoved.add(process);
// 				}
// 				else {
// 					process.updateProcess();
// 				}
// 			}
// 
// 			if (!toBeRemoved.isEmpty()) {
// 				for (IProcess p : toBeRemoved) {
// 					if (processes.contains(p)) {
// 						processes.remove(p);
// 					}
// 				}
// 			}
// 
// 			if (!newProcesses.isEmpty()) {
// 				processes.addAll(newProcesses);
// 				newProcesses.clear();
// 			}
// 		}
// 	}
// 
// 	@SubscribeEvent
// 	public void onWorldClose(WorldEvent.Unload event) {
// 		processes.clear();
// 		newProcesses.clear();
// 	}
// 
// 	public static void addProcess(IProcess process) {
// 		newProcesses.add(process);
// 	}
// 
// }


// Path: src/main/java/p455w0rdslib/proxy/ClientProxy.java
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
import net.minecraftforge.fml.client.FMLClientHandler;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
import p455w0rdslib.handlers.ProcessHandlerClient;

/*
 * This file is part of p455w0rd's Library.
 * Copyright (c) 2016, p455w0rd (aka TheRealp455w0rd), All rights reserved
 * unless
 * otherwise stated.
 *
 * p455w0rd's Library is free software: you can redistribute it and/or modify
 * it under the terms of the MIT License.
 *
 * p455w0rd's Library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * MIT License for more details.
 *
 * You should have received a copy of the MIT License
 * along with p455w0rd's Library. If not, see
 * <https://opensource.org/licenses/MIT>.
 */
package p455w0rdslib.proxy;


/**
 * @author p455w0rd
 *
 */
public class ClientProxy extends CommonProxy {

	@Override
	public void preInit(FMLPreInitializationEvent e) {
		super.preInit(e);
		ProcessHandlerClient.init();