package com.brackeen.javagamebook.scripting;

import java.util.EventListener;
import com.brackeen.javagamebook.game.GameObject;

/**
    Interfejs do odbierania powiadomień o zdarzeniach GameObject.
    Patrz GameObject.addListener().
*/
public interface GameObjectEventListener extends EventListener {

    /**
        Powiadamia GameObject czy był widoczny podczas ostatniej aktualizacji.
    */
    public void notifyVisible(GameObject object, boolean visible);


    /**
        Powiadamia GameObject gdy jest przesunięty, lub koliduje
        z innym obiektem.
    */
    public void notifyObjectCollision(GameObject object,
        GameObject otherObject);


    /**
        Powiadamia GameObject o dotknięciu podanego obiektu.
        Metoda ta nie jest wywoływana jeżeli te dwa obiekty
        dotykały się w poprzedniej ramce.
    */
    public void notifyObjectTouch(GameObject object,
        GameObject otherObject);


    /**
        Powiadamia GameObject o zakńczeniu dotykania z podanym obiektem.
    */
    public void notifyObjectRelease(GameObject object,
        GameObject otherObject);


    /**
        Powiadamia GameObject że w czasie ruchu koliduje z podłogą.
    */
    public void notifyFloorCollision(GameObject object);


    /**
        Powiadamia GameObject że w czasie ruchu koliduje z sufitem.
    */
    public void notifyCeilingCollision(GameObject object);


    /**
        Powiadamia GameObject że w czasie ruchu koliduje ze ścianą.
    */
    public void notifyWallCollision(GameObject object);



}