// Path: core/src/com/kowaisugoi/game/audio/SoundId.java
// public enum SoundId {
//     DOOR_CREAK, DOOR_LOCKED, SNOW_CRUNCH, FLOOR_STEP, CLICK, UNCLE_GASP,
//     ENGINE_START, SCARE
// }
// 
// Path: core/src/com/kowaisugoi/game/interactables/objects/ItemId.java
// public enum ItemId {
//     KEY_HOUSE,
//     GLASS,
//     GLASS_SNOW,
//     GLASS_WATER,
//     SHOVEL,
//     HAMMER,
//     STICK,
//     STICK_RAGS,
//     STICK_RAGS_ALCOHOL,
//     TORCH,
//     PRYBAR,
//     CAR_KEYS
// }


import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import com.badlogic.gdx.math.Rectangle;
import com.kowaisugoi.game.audio.SoundId;
import com.kowaisugoi.game.interactables.objects.ItemId;
package com.kowaisugoi.game.interactables;


public interface Interactable {
    // TODO: In a perfect world, the interaction box should probably be private.
    public Rectangle getInteractionBox();

    public void draw(SpriteBatch batch);

    public void draw(ShapeRenderer renderer);

    public boolean click(float curX, float curY);

    public void beautifyCursor(float curX, float curY);

    public void update(float delta);

    public void registerListener(InteractionListener listener);

    public void setSoundEffect(SoundId soundId);

    public boolean isItemInteractable();

// Path: core/src/com/kowaisugoi/game/audio/SoundId.java
// public enum SoundId {
//     DOOR_CREAK, DOOR_LOCKED, SNOW_CRUNCH, FLOOR_STEP, CLICK, UNCLE_GASP,
//     ENGINE_START, SCARE
// }
// 
// Path: core/src/com/kowaisugoi/game/interactables/objects/ItemId.java
// public enum ItemId {
//     KEY_HOUSE,
//     GLASS,
//     GLASS_SNOW,
//     GLASS_WATER,
//     SHOVEL,
//     HAMMER,
//     STICK,
//     STICK_RAGS,
//     STICK_RAGS_ALCOHOL,
//     TORCH,
//     PRYBAR,
//     CAR_KEYS
// }


// Path: core/src/com/kowaisugoi/game/interactables/Interactable.java
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import com.badlogic.gdx.math.Rectangle;
import com.kowaisugoi.game.audio.SoundId;
import com.kowaisugoi.game.interactables.objects.ItemId;

package com.kowaisugoi.game.interactables;


public interface Interactable {
    // TODO: In a perfect world, the interaction box should probably be private.
    public Rectangle getInteractionBox();

    public void draw(SpriteBatch batch);

    public void draw(ShapeRenderer renderer);

    public boolean click(float curX, float curY);

    public void beautifyCursor(float curX, float curY);

    public void update(float delta);

    public void registerListener(InteractionListener listener);

    public void setSoundEffect(SoundId soundId);

    public boolean isItemInteractable();

    public boolean itemInteract(ItemId id);