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