cicaprojekt/cicaprojekt/Wall.java

110 lines
3.0 KiB
Java
Raw Permalink Normal View History

package cicaprojekt;
2016-05-16 15:57:54 +00:00
/**
* A játékban megjelenő falakat reprezentáló osztály.
*/
public class Wall extends Tile {
2016-05-16 15:57:54 +00:00
/**
* A fajlon lévő csillagkapu.
*/
private Stargate sg = null;
2016-05-16 15:57:54 +00:00
/**
* Az osztály konstruktora.
*/
2016-04-24 21:01:34 +00:00
public Wall() {
super();
}
2016-05-16 15:57:54 +00:00
/**
* A függvény akkor hívódik meg, ha egy csillagkapu érkezik a falra.
* Ha nincs a falon korábbi csillagkapu, akkor az érkező kapu a falon marad,
* beállítódik a hozzátartozó irány, majd frissítődik a megjelenítés.
*
* @param stargate az érkező csillagkapu
* @param direction az irány, ahonnan jön
*/
@Override
2016-04-24 21:01:34 +00:00
public void spawnStargate(Stargate stargate, Direction direction) {
if(stargate.isSpawned())
stargate.getCurrentWall().clearStargate();
if (sg == null) {
2016-04-24 21:01:34 +00:00
sg = stargate;
sg.setCurrentWall(this, direction);
Game.instance.updateDisplay();
}
2016-04-24 21:01:34 +00:00
}
2016-05-16 15:57:54 +00:00
/**
* A függvény azzal tér vissza, hogy lehet-e lépni a falra.
* Ha van rajta csillagkapu, akkor a csillagkapu nyitvalévőségétől függ,
* ha nincs rajta, akkor nem lehet rálépni.
*
* @return true, ha van rajta nyitott csillagkapu
* false, egyébként
*/
@Override
public boolean isSteppable() {
if(sg != null)
return sg.isOpen();
return false;
}
2016-05-16 15:57:54 +00:00
/**
* A falon lévő csillagkapu eltüntetésére szolgáló függvény.
* Ha volt ott csillagkapu, akkor a rámutató referencia értékét
* null-ra állítja
*/
2016-04-24 21:01:34 +00:00
public void clearStargate() {
if(sg != null) {
sg.setCurrentWall(null, null);
sg = null;
}
2016-04-24 21:01:34 +00:00
}
2016-05-16 15:57:54 +00:00
/**
* A függvény azzal tér vissza, hogy lehet-e az adott <code>Tile</code> típuson
* doboz.
*
* @return false
*/
@Override
public boolean boxPermission()
{
return false;
}
2016-05-16 15:57:54 +00:00
/**
* A függvény akkor hívódik meg, ha egy személy akar lépni a falra.
* Ha a falon van csillagkapu, akkor az átteleportálja a személyt.
*
* @param playerBase az a <code>PlayerBase</code> példány, amely
* rálépett a falra
*/
2016-05-14 11:47:14 +00:00
@Override
2016-04-24 21:01:34 +00:00
public void onEntry(PlayerBase playerBase) {
super.onEntry(playerBase);
2016-05-14 11:25:04 +00:00
if (sg != null)
2016-04-25 21:38:22 +00:00
sg.teleport(playerBase);
2016-04-24 21:01:34 +00:00
}
2016-05-16 15:57:54 +00:00
/**
* A függvény akkor hívódik meg, ha egy személy le akar lépni a falról.
*
* @param playerBase az a <code>PlayerBase</code> példány, amely
* lelépett a falról
*/
2016-05-14 11:47:14 +00:00
@Override
public void onExit(PlayerBase playerBase) {
2016-04-24 21:01:34 +00:00
}
2016-05-16 15:57:54 +00:00
/**
* A függvény a falon lévő csillagkapuval tér vissza.
*
* @return a csillagkapu
*/
public Stargate getStargate() {
return sg;
}
}