<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Cradicle Explorer</title>
    <link href="/css/bootstrap/bootstrap.min.css" rel="stylesheet">
    <style>
      .form-control-dark::placeholder {
          color: #aaa;
          opacity: 1;
      }
    </style>
    <link rel="stylesheet" href="/assets/fontawesome/css/all.min.css">
    <link rel="icon" type="image/png" href="/favicon.png">


                <link href="/css/dashboard.css" rel="stylesheet">
                </head>
                <body>
                <header class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0 shadow">
                  <a class="navbar-brand col-md-3 col-lg-2 me-0 px-3 fs-6" href="/">Cradicle Explorer</a>
                  <button class="navbar-toggler position-absolute d-md-none collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#sidebarMenu" aria-controls="sidebarMenu" aria-expanded="false" aria-label="Toggle navigation">
                    <span class="navbar-toggler-icon"></span>
                  </button>
                  <form method="get" action="/cgi-bin/main" style="width:100%;"><input class="form-control form-control-dark w-100 rounded-0 border-0" type="text" name="q" placeholder="Search repos" aria-label="Search"></form>
                  <div class="navbar-nav flex-row">
                    <div class="nav-item text-nowrap">
                      <a class="nav-link px-3 active" href="/cgi-bin/repo?id=z2quDPNBvrEYsZrUPTg7Hn81amjDm">gamepad.js</a>
                    </div>
                  </div>
                </header>
                <div class="container-fluid">
                  <div class="row">
                    <nav id="sidebarMenu" class="col-md-3 col-lg-2 d-md-block bg-dark sidebar collapse">
                      <div class="position-sticky pt-3 sidebar-sticky">
                        <ul class="nav flex-column">
                          <li class="nav-item">
                            <a class="nav-link active" href="/cgi-bin/repo?id=z2quDPNBvrEYsZrUPTg7Hn81amjDm">
                              <i class="align-text-bottom fa-solid fa-info"></i>
                              Info
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=z2quDPNBvrEYsZrUPTg7Hn81amjDm&issue=list">
                              <i class="align-text-bottom fa-solid fa-layer-group"></i>
                              Issues
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=z2quDPNBvrEYsZrUPTg7Hn81amjDm&patch=list">
                              <i class="align-text-bottom fa-solid fa-vest-patches"></i>
                              Patches
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=z2quDPNBvrEYsZrUPTg7Hn81amjDm&wallet=list">
                              <i class="align-text-bottom fa-solid fa-wallet"></i>
                              Wallets
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=z2quDPNBvrEYsZrUPTg7Hn81amjDm&source=.">
                              <i class="align-text-bottom fa-solid fa-code"></i>
                              Source
                            </a>
                          </li>
                        <h6 class="sidebar-heading d-flex justify-content-between align-items-center px-3 mt-4 mb-1 text-muted text-uppercase">
                          <span></span>
                        </h6>
                        <ul class="nav flex-column mb-2">
                        
                        </ul>
                      </div>
                    </nav>
                <main class="col-md-9 ms-sm-auto col-lg-10">
                  <div class="container px-1 py-3">
        

    <div class="list-group">
    <div class="list-group-item">
    <div style="font-size:1.3rem;">gamepad.js</div>
    <div class="repo-item">🎮 Simple customizable event binding for the HTML Gamepad API.</div>
    <div>rad:z2quDPNBvrEYsZrUPTg7Hn81amjDm</div>
    </div>
    <div class="list-group-item">
    <div>Visibility</div>
    <div class="repo-item">public</div>
    </div>
    <div class="list-group-item">
    <div>Delegates</div><div class="repo-item">did:key:z6MkqUr4ihUf9gC1J8RkbPKYX7HF2jvMJGy66zEXbn2mjrQ8</div><div class="repo-item">did:key:z6MkgPm5wSGVa9g3ueGvAXj3ZLtkXusm7ffvu23oQHQyFMSF</div>
    </div>
    <div class="list-group-item">
    <div>Default branch</div>
    <div><span class="repo-item">master &#8594 d3f8f96e790732f0ccb95eec70c89b14e0138dc0</span> (Wed Jul 19 00:14:10 2017)</div>
    </div>
    <div class="list-group-item">
    <div>Threshold</div>
    <div class="repo-item">1</div>
    </div>
    </div>
    
        <div class="list-group mt-3">
        <div class="list-group-item">
        <div class="mb-2" style="font-weight:bold;"><i class="fa-solid fa-book"></i> README.md</div>
        <pre style="margin:0; font-size:0.85rem; overflow-x:auto; color:#fafafa;"># gamepad.js

&gt; Simple customizable event binding for the HTML Gamepad API.

## Setup

### Controller Connected

```javascript
const gamepad = new Gamepad();

gamepad.on(&#x27;connect&#x27;, e =&gt; {
    console.log(`controller ${e.index} connected!`);
});
```

### Controller Disconnected

```javascript
const gamepad = new Gamepad();

gamepad.on(&#x27;disconnect&#x27;, e =&gt; {
    console.log(`controller ${e.index} disconnected!`);
});
```

### Press

```javascript
const gamepad = new Gamepad();

gamepad.on(&#x27;press&#x27;, &#x27;button_1&#x27;, () =&gt; {
    console.log(&#x27;button 1 was pressed!&#x27;);
});
```

### Hold

```javascript
const gamepad = new Gamepad();

gamepad.on(&#x27;hold&#x27;, &#x27;button_1&#x27;, () =&gt; {
    console.log(&#x27;button 1 is being held!&#x27;);
});
```

### Release

```javascript
const gamepad = new Gamepad();

gamepad.on(&#x27;release&#x27;, &#x27;button_1&#x27;, () =&gt; {
    console.log(&#x27;button 1 was released!&#x27;);
});
```

### Removing Event Listeners

```javascript
gamepad.off(&#x27;release&#x27;, &#x27;button_1&#x27;);
```

```javascript
gamepad.off([&#x27;release&#x27;], [&#x27;button_1&#x27;]);
```

## Callback Parameters

### Button

&gt; Returns the name of the button pressed.

```javascript
const gamepad = new Gamepad();

gamepad.on(&#x27;press&#x27;, &#x27;button_1&#x27;, e =&gt; {
    console.log(`${e.button} was pressed!`);
});
```

### Player

&gt; Returns the index of the controller the button was pressed on.

```javascript
const gamepad = new Gamepad();

gamepad.on(&#x27;press&#x27;, &#x27;button_1&#x27;, e =&gt; {
    console.log(`player ${e.player} pressed ${e.button}!`);
});
```

### Value

&gt; Returns the value of the button being held.

```javascript
const gamepad = new Gamepad();

gamepad.on(&#x27;hold&#x27;, &#x27;shoulder_bottom_right&#x27;, e =&gt; {
    console.log(`shoulder_bottom_right has a value of ${e.value}!`);
});
```

## Custom Mapping

&gt; Sets custom key mapping.

```javascript
const gamepad = new Gamepad();

gamepad.setCustomMapping(&#x27;keyboard&#x27;, {
    &#x27;button_1&#x27;: 32,
    &#x27;start&#x27;: 27,
    &#x27;d_pad_up&#x27;: [38, 87],
    &#x27;d_pad_down&#x27;: [40, 83],
    &#x27;d_pad_left&#x27;: [37, 65],
    &#x27;d_pad_right&#x27;: [39, 68]
});
```

## Handling Events

### Pause

```javascript
const gamepad = new Gamepad();

gamepad.pause();
```

### Resume

```javascript
const gamepad = new Gamepad();

gamepad.resume();
```

### Destroy

```javascript
const gamepad = new Gamepad();

gamepad.destroy();
```

## Buttons

### Gamepad

- **button_1** - A (XBOX) / X (PS3/PS4)
- **button_2** - B (XBOX) / Circle (PS3/PS4)
- **button_3** - X (XBOX) / Square (PS3/PS4)
- **button_4** - Y (XBOX) / Triangle (PS3/PS4)
- **shoulder_top_left** - LB (XBOX) / L1 (PS3/PS4)
- **shoulder_top_right** - RB (XBOX) / R1 (PS3/PS4)
- **shoulder_bottom_left** - LT (XBOX) / L2 (PS3/PS4)
- **shoulder_bottom_right** - RT (XBOX) / R2 (PS3/PS4)
- **select** - Back (XBOX) / Select (PS3/PS4)
- **start** - Start (XBOX/PS3/PS4)
- **stick_button_left** - Left Analog Stick (XBOX/PS3/PS4)
- **stick_button_right** - Right Analog Stick (XBOX/PS3/PS4)
- **d_pad_up** - Up on the D-Pad (XBOX/PS3/PS4)
- **d_pad_down** - Down on the D-Pad (XBOX/PS3/PS4)
- **d_pad_left** - Left on the D-Pad (XBOX/PS3/PS4)
- **d_pad_right** - Right on the D-Pad (XBOX/PS3/PS4)
- **vendor** - XBOX Button (XBOX) / Playstation Button (PS3/PS4)

### Gamepad Analog Sticks

- **stick_axis_left**
- **stick_axis_right**

### Keyboard

- **button_1** - SPACE
- **start** - ESC
- **d_pad_up** - Up Arrow, W
- **d_pad_down** - Down Arrow, S
- **d_pad_left** - Left Arrow, A
- **d_pad_right** - Right Arrow, D

## Support

This plugin supports the Playstation 3, Playstation 4, XBOX 360 and XBOX One wired and wireless controllers. Support is limited to browsers with the requestAnimationFrame method and latest Gamepad API.
</pre>
        </div>
        </div>

</div>
</main>
</div>
</div>


</body>
</html>

