# Customization Steps

### Configure Animation - Recommended

Although it is optional to configure animation for the InventoryDisplay, it is recommended that you configure animating visibility of this, so that it can be off-screen during the MiniGame, and using Tab key can bring it back on screen.  If you don't want to configure animation, then you should create buttons that can show-hide the inventoryDisplay.  You can use the Hide\_Show\_Panel script on the InventoryDisplay, but you'll probably need to add some additional logic to allow the panel to close when a button is clicked.  In addition, you'd need to remove the Animation logic that's already included  in the **`InventoryDisplay.cs`** script.  It is probably easiest to implement the Animation following the steps on the [Configure Animation ](https://kdoore.gitbook.io/cs2335/inventory-system/inventory-scriptableobject/customization-steps/ui-animation)page.

## Required Customizations

### Create Custom Item: Concrete Child Class

The video below gives an overview of the MVC Pattern that the Inventory System is based on.  It shows the relationship between the abstract base class: item and concrete child classes that are used to create types of items that can be stored in the inventory system.  It shows the separation of logic into 3 components of MVC pattern:  Model ( Data ) - View ( UI ) - Controller ( Manager ).   \
\
**See updated code in Item, Gem, Potion, Food code - 4/11/2020 -** \
[**Instructions and Link to Install Updated Code - 4/11/2020**](https://kdoore.gitbook.io/cs2335/inventory-system/inventory-scriptableobject/install-and-configure)

**You will need to add one additional line of code to the constructor for each Concrete child-class** to set the Item.instanceType variable that is used in the InventoryDisplay class. See code listed below - **this step was not included in the video linked below.**

```
//.......other Food class code above here

public Food() //constructor - updated
    {
        itemType = ItemType.Food;
        instanceType = foodType.ToString(); //UPDATE requires adding this line 
    }
    
//.......other Food class code below here
```

{% embed url="<https://youtu.be/sqSbo494AJQ>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kdoore.gitbook.io/cs2335/inventory-system/inventory-scriptableobject/customization-steps.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
