// Path: src/main/java/wecui/event/WorldRenderEvent.java
// public class WorldRenderEvent extends Event<WorldRenderEvent> {
// 
//     protected WorldEditCUI controller;
//     protected float partialTick;
//     protected Vector3 pos;
//     public static final HandlerList<WorldRenderEvent> handlers = new HandlerList<WorldRenderEvent>();
// 
//     public WorldRenderEvent(WorldEditCUI controller) {
//     }
// 
//     public void setPartialTick(float partialTick) {
//         this.partialTick = partialTick;
//     }
// 
//     public void setPosition(Vector3 pos) {
//         this.pos = pos;
//     }
// 
//     public float getPartialTick() {
//         return partialTick;
//     }
// 
//     public Vector3 getPosition() {
//         return pos;
//     }
// 
//     @Override
//     protected String getEventName() {
//         return "WorldRenderEvent";
//     }
// 
//     @Override
//     protected HandlerList<WorldRenderEvent> getHandlers() {
//         return handlers;
//     }
// }
// 
// Path: src/main/java/wecui/WorldEditCUI.java
// public class WorldEditCUI {
// 
//     public static final String VERSION = "1.4.5";
//     public static final String MCVERSION = "1.4.5";
//     public static final int protocolVersion = 2;
//     protected Minecraft minecraft;
//     protected EventManager eventManager;
//     protected Obfuscation obfuscation;
//     protected BaseRegion selection;
//     protected CUIDebug debugger;
//     protected CUIConfiguration configuration;
//     //protected LocalPlugin localPlugin;
// 
//     public WorldEditCUI(Minecraft minecraft) {
//         this.minecraft = minecraft;
//     }
// 
//     public void initialize() {
//         this.eventManager = new EventManager(this);
//         this.obfuscation = new Obfuscation(this);
//         this.selection = new CuboidRegion(this);
//         this.configuration = new CUIConfiguration(this);
//         this.debugger = new CUIDebug(this);
//         //this.localPlugin = new LocalPlugin(this);
// 
//         try {
//             this.eventManager.initialize();
//             this.obfuscation.initialize();
//             this.selection.initialize();
//             this.configuration.initialize();
//             this.debugger.initialize();
//             //this.localPlugin.initialize();
//         } catch (InitializationException e) {
//             e.printStackTrace();
//             return;
//         }
// 
//         this.registerListeners();
//     }
// 
//     protected void registerListeners() {
//         CUIEvent.handlers.register(new CUIListener(this), Order.Default);
//         ChannelEvent.handlers.register(new ChannelListener(this), Order.Default);
//         WorldRenderEvent.handlers.register(new WorldRenderListener(this), Order.Default);
// 
//         WorldEditCommandListener commListener = new WorldEditCommandListener(this);
//         ChatCommandEvent.getHandlers("worldedit").register(commListener, Order.Default);
//         ChatCommandEvent.getHandlers("we").register(commListener, Order.Default);
//     }
// 
//     public CUIConfiguration getConfiguration() {
//         return configuration;
//     }
// 
//     public void setConfiguration(CUIConfiguration configuration) {
//         this.configuration = configuration;
//     }
// 
//     public CUIDebug getDebugger() {
//         return debugger;
//     }
// 
//     public void setDebugger(CUIDebug debugger) {
//         this.debugger = debugger;
//     }
// 
//     public EventManager getEventManager() {
//         return eventManager;
//     }
// 
//     public void setEventManager(EventManager eventManager) {
//         this.eventManager = eventManager;
//     }
// 
//     /*public LocalPlugin getLocalPlugin() {
//         return localPlugin;
//     }
// 
//     public void setLocalPlugin(LocalPlugin localPlugin) {
//         this.localPlugin = localPlugin;
//     }*/
// 
//     public Minecraft getMinecraft() {
//         return minecraft;
//     }
// 
//     public void setMinecraft(Minecraft minecraft) {
//         this.minecraft = minecraft;
//     }
// 
//     public Obfuscation getObfuscation() {
//         return obfuscation;
//     }
// 
//     public void setObfuscation(Obfuscation obfuscation) {
//         this.obfuscation = obfuscation;
//     }
// 
//     public BaseRegion getSelection() {
//         return selection;
//     }
// 
//     public void setSelection(BaseRegion selection) {
//         this.selection = selection;
//     }
// 
//     public static String getVersion() {
//         return VERSION + " for Minecraft version " + MCVERSION;
//     }
// }
// 
// Path: src/main/java/wecui/obfuscation/RenderObfuscation.java
// public class RenderObfuscation {
// 
//     protected Tessellator tess;
// 
//     protected RenderObfuscation() {
//         tess = Tessellator.a;
//     }
// 
//     public void startDrawing(int type) {
//         tess.b(type);
//     }
// 
//     public void addVertex(double x, double y, double z) {
//         tess.a(x, y, z);
//     }
// 
//     public void finishDrawing() {
//         tess.a();
//     }
// 
//     /**
//      * TODO: Find if this is even necessary
//      */
//     public static void disableLighting() {
//         RenderHelper.a();
//     }
// 
//     public static void enableLighting() {
//         RenderHelper.b();
//     }
// 
//     public static RenderObfuscation getInstance() {
//         return RenderObfuscationHolder.INSTANCE;
//     }
// 
//     protected static class RenderObfuscationHolder {
// 
//         protected static final RenderObfuscation INSTANCE = new RenderObfuscation();
//     }
// }


import deobf.Entity;
import deobf.Render;
import wecui.event.WorldRenderEvent;
import wecui.WorldEditCUI;
import wecui.obfuscation.RenderObfuscation;
package wecui.render;


/**
 * Custom entity renderer, attached in the ModLoader class
 * 
 * @author lahwran
 * @author yetanotherx
 * 
 * @obfuscated 1.4.5
 */
public class RenderHooks extends Render {

    protected WorldEditCUI controller;
    protected WorldRenderEvent event;

    public RenderHooks(WorldEditCUI controller) {
        this.controller = controller;
        this.event = new WorldRenderEvent(controller);
    }

    /**
     * Actually renders the entity.
     * @param entity
     * @param x
     * @param y
     * @param z
     * @param yaw
     * @param renderTick 
     */
    public void renderCUI(Entity entity, double x, double y, double z, float yaw, float renderTick) {
// Path: src/main/java/wecui/event/WorldRenderEvent.java
// public class WorldRenderEvent extends Event<WorldRenderEvent> {
// 
//     protected WorldEditCUI controller;
//     protected float partialTick;
//     protected Vector3 pos;
//     public static final HandlerList<WorldRenderEvent> handlers = new HandlerList<WorldRenderEvent>();
// 
//     public WorldRenderEvent(WorldEditCUI controller) {
//     }
// 
//     public void setPartialTick(float partialTick) {
//         this.partialTick = partialTick;
//     }
// 
//     public void setPosition(Vector3 pos) {
//         this.pos = pos;
//     }
// 
//     public float getPartialTick() {
//         return partialTick;
//     }
// 
//     public Vector3 getPosition() {
//         return pos;
//     }
// 
//     @Override
//     protected String getEventName() {
//         return "WorldRenderEvent";
//     }
// 
//     @Override
//     protected HandlerList<WorldRenderEvent> getHandlers() {
//         return handlers;
//     }
// }
// 
// Path: src/main/java/wecui/WorldEditCUI.java
// public class WorldEditCUI {
// 
//     public static final String VERSION = "1.4.5";
//     public static final String MCVERSION = "1.4.5";
//     public static final int protocolVersion = 2;
//     protected Minecraft minecraft;
//     protected EventManager eventManager;
//     protected Obfuscation obfuscation;
//     protected BaseRegion selection;
//     protected CUIDebug debugger;
//     protected CUIConfiguration configuration;
//     //protected LocalPlugin localPlugin;
// 
//     public WorldEditCUI(Minecraft minecraft) {
//         this.minecraft = minecraft;
//     }
// 
//     public void initialize() {
//         this.eventManager = new EventManager(this);
//         this.obfuscation = new Obfuscation(this);
//         this.selection = new CuboidRegion(this);
//         this.configuration = new CUIConfiguration(this);
//         this.debugger = new CUIDebug(this);
//         //this.localPlugin = new LocalPlugin(this);
// 
//         try {
//             this.eventManager.initialize();
//             this.obfuscation.initialize();
//             this.selection.initialize();
//             this.configuration.initialize();
//             this.debugger.initialize();
//             //this.localPlugin.initialize();
//         } catch (InitializationException e) {
//             e.printStackTrace();
//             return;
//         }
// 
//         this.registerListeners();
//     }
// 
//     protected void registerListeners() {
//         CUIEvent.handlers.register(new CUIListener(this), Order.Default);
//         ChannelEvent.handlers.register(new ChannelListener(this), Order.Default);
//         WorldRenderEvent.handlers.register(new WorldRenderListener(this), Order.Default);
// 
//         WorldEditCommandListener commListener = new WorldEditCommandListener(this);
//         ChatCommandEvent.getHandlers("worldedit").register(commListener, Order.Default);
//         ChatCommandEvent.getHandlers("we").register(commListener, Order.Default);
//     }
// 
//     public CUIConfiguration getConfiguration() {
//         return configuration;
//     }
// 
//     public void setConfiguration(CUIConfiguration configuration) {
//         this.configuration = configuration;
//     }
// 
//     public CUIDebug getDebugger() {
//         return debugger;
//     }
// 
//     public void setDebugger(CUIDebug debugger) {
//         this.debugger = debugger;
//     }
// 
//     public EventManager getEventManager() {
//         return eventManager;
//     }
// 
//     public void setEventManager(EventManager eventManager) {
//         this.eventManager = eventManager;
//     }
// 
//     /*public LocalPlugin getLocalPlugin() {
//         return localPlugin;
//     }
// 
//     public void setLocalPlugin(LocalPlugin localPlugin) {
//         this.localPlugin = localPlugin;
//     }*/
// 
//     public Minecraft getMinecraft() {
//         return minecraft;
//     }
// 
//     public void setMinecraft(Minecraft minecraft) {
//         this.minecraft = minecraft;
//     }
// 
//     public Obfuscation getObfuscation() {
//         return obfuscation;
//     }
// 
//     public void setObfuscation(Obfuscation obfuscation) {
//         this.obfuscation = obfuscation;
//     }
// 
//     public BaseRegion getSelection() {
//         return selection;
//     }
// 
//     public void setSelection(BaseRegion selection) {
//         this.selection = selection;
//     }
// 
//     public static String getVersion() {
//         return VERSION + " for Minecraft version " + MCVERSION;
//     }
// }
// 
// Path: src/main/java/wecui/obfuscation/RenderObfuscation.java
// public class RenderObfuscation {
// 
//     protected Tessellator tess;
// 
//     protected RenderObfuscation() {
//         tess = Tessellator.a;
//     }
// 
//     public void startDrawing(int type) {
//         tess.b(type);
//     }
// 
//     public void addVertex(double x, double y, double z) {
//         tess.a(x, y, z);
//     }
// 
//     public void finishDrawing() {
//         tess.a();
//     }
// 
//     /**
//      * TODO: Find if this is even necessary
//      */
//     public static void disableLighting() {
//         RenderHelper.a();
//     }
// 
//     public static void enableLighting() {
//         RenderHelper.b();
//     }
// 
//     public static RenderObfuscation getInstance() {
//         return RenderObfuscationHolder.INSTANCE;
//     }
// 
//     protected static class RenderObfuscationHolder {
// 
//         protected static final RenderObfuscation INSTANCE = new RenderObfuscation();
//     }
// }


// Path: src/main/java/wecui/render/RenderHooks.java
import deobf.Entity;
import deobf.Render;
import wecui.event.WorldRenderEvent;
import wecui.WorldEditCUI;
import wecui.obfuscation.RenderObfuscation;

package wecui.render;


/**
 * Custom entity renderer, attached in the ModLoader class
 * 
 * @author lahwran
 * @author yetanotherx
 * 
 * @obfuscated 1.4.5
 */
public class RenderHooks extends Render {

    protected WorldEditCUI controller;
    protected WorldRenderEvent event;

    public RenderHooks(WorldEditCUI controller) {
        this.controller = controller;
        this.event = new WorldRenderEvent(controller);
    }

    /**
     * Actually renders the entity.
     * @param entity
     * @param x
     * @param y
     * @param z
     * @param yaw
     * @param renderTick 
     */
    public void renderCUI(Entity entity, double x, double y, double z, float yaw, float renderTick) {
        RenderObfuscation.disableLighting();