class InputHandler {
    constructor() {
        this.keys = {
            a: false,
            A: false,
            d: false,
            D: false,
            w: false,
            W: false,
            s: false,
            S: false,
            Shift: false,
            ArrowLeft: false,
            ArrowRight: false,
            ArrowUp: false,
            ArrowDown: false
        };
        
        this.init();
    }
    
    init() {
        window.addEventListener('keydown', (e) => {
            if (this.keys.hasOwnProperty(e.key)) {
                e.preventDefault();
                this.keys[e.key] = true;
            }
        });
        
        window.addEventListener('keyup', (e) => {
            if (this.keys.hasOwnProperty(e.key)) {
                e.preventDefault();
                this.keys[e.key] = false;
            }
        });
    }
    
    isMovingLeft() {
        return this.keys.a || this.keys.A || this.keys.ArrowLeft;
    }
    
    isMovingRight() {
        return this.keys.d || this.keys.D || this.keys.ArrowRight;
    }
    
    isJumping() {
        return this.keys.w || this.keys.W || this.keys.ArrowUp;
    }
    
    isShiftPressed() {
        return this.keys.Shift;
    }
    
    isCrouching() {
        return this.keys.s || this.keys.S || this.keys.ArrowDown;
    }
}

const input = new InputHandler();
