001    package net.minecraft.util;
002    
003    import cpw.mods.fml.relauncher.Side;
004    import cpw.mods.fml.relauncher.SideOnly;
005    import java.awt.Component;
006    import net.minecraft.client.settings.GameSettings;
007    import org.lwjgl.input.Mouse;
008    
009    @SideOnly(Side.CLIENT)
010    public class MouseHelper
011    {
012        private final Component windowComponent;
013        private final GameSettings field_85184_d;
014    
015        /** Mouse delta X this frame */
016        public int deltaX;
017    
018        /** Mouse delta Y this frame */
019        public int deltaY;
020    
021        public MouseHelper(Component par1Component, GameSettings par2GameSettings)
022        {
023            this.windowComponent = par1Component;
024            this.field_85184_d = par2GameSettings;
025        }
026    
027        /**
028         * Grabs the mouse cursor it doesn't move and isn't seen.
029         */
030        public void grabMouseCursor()
031        {
032            Mouse.setGrabbed(true);
033            this.deltaX = 0;
034            this.deltaY = 0;
035        }
036    
037        /**
038         * Ungrabs the mouse cursor so it can be moved and set it to the center of the screen
039         */
040        public void ungrabMouseCursor()
041        {
042            int var1 = this.windowComponent.getWidth();
043            int var2 = this.windowComponent.getHeight();
044    
045            if (this.windowComponent.getParent() != null)
046            {
047                var1 = this.windowComponent.getParent().getWidth();
048                var2 = this.windowComponent.getParent().getHeight();
049            }
050    
051            Mouse.setCursorPosition(var1 / 2, var2 / 2);
052            Mouse.setGrabbed(false);
053        }
054    
055        public void mouseXYChange()
056        {
057            this.deltaX = Mouse.getDX();
058            this.deltaY = Mouse.getDY();
059        }
060    }