> For the complete documentation index, see [llms.txt](https://speedtutoruk.gitbook.io/generator-system-doc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://speedtutoruk.gitbook.io/generator-system-doc/support/where-are-the-inputs.md).

# Where are the Inputs?

### Where is the input reference?

{% hint style="info" %}
There are TWO input reference in this package and it is located below:

* **GeneratorItem** script has an input for interacting with objects with the raycast
* **GeneratorInventory** script has an input for opening and closing the inventory
  {% endhint %}

### Changing the Input:

#### GeneratorInventory:&#x20;

```csharp
void Update()
{
    if (Input.GetKeyDown(openInventoryKey) && hasJerrycan)
    {
         isInventoryOpen = !isInventoryOpen;
         genUIManager.ShowInventory(isInventoryOpen);
    }
}
```

#### GeneratorItem:

```csharp
private void Update()
{
    RumbleGenerator();
    GeneratorFuelBurnLogic();

    if(isLooking) 
    {
         if (Input.GetKeyDown(interactKey))
         {
             keyHoldTime = Time.time;
             StartCoroutine(CheckForLongPress());
         }

         if (Input.GetKeyUp(interactKey))
         {
             if (isFilling)
             {
                 StopWaterPour();  // Stop the sound when you stop pouring fuel
             }

             if (!isFilling)
             {
                 // If the key was released before the delay, perform the normal interaction
                 ObjectInteraction();
              }
              isFilling = false; // reset the flag when the key is released
            }
       }
}

IEnumerator CheckForLongPress()
{
    // Wait for the delay
    yield return new WaitForSeconds(keyHoldDelay);

    //If the key is still being held down after the delay, start filling the generator
    while (Input.GetKey(interactKey))
    {
        isFilling = true;
        GeneratorFillingLogic();
         yield return null;  // This makes the coroutine wait for the next frame before continuing
     }
}
```
