package cicaprojekt; /** * A játékban megjelenő falakat reprezentáló osztály. */ public class Wall extends Tile { /** * A fajlon lévő csillagkapu. */ private Stargate sg = null; /** * Az osztály konstruktora. */ public Wall() { super(); } /** * 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 public void spawnStargate(Stargate stargate, Direction direction) { if(stargate.isSpawned()) stargate.getCurrentWall().clearStargate(); if (sg == null) { sg = stargate; sg.setCurrentWall(this, direction); Game.instance.updateDisplay(); } } /** * A függvény azzal tér vissza, hogy rá 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; } /** * 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 */ public void clearStargate() { if(sg != null) { sg.setCurrentWall(null, null); sg = null; } } /** * A függvény azzal tér vissza, hogy lehet-e az adott Tile típuson * doboz. * * @return false */ @Override public boolean boxPermission() { return false; } /** * A függvény akkor hívódik meg, ha egy személy rá akar lépni a falra. * Ha a falon van csillagkapu, akkor az átteleportálja a személyt. * * @param playerBase az a PlayerBase példány, amely * rálépett a falra */ @Override public void onEntry(PlayerBase playerBase) { super.onEntry(playerBase); if (sg != null) sg.teleport(playerBase); } /** * A függvény akkor hívódik meg, ha egy személy le akar lépni a falról. * * @param playerBase az a PlayerBase példány, amely * lelépett a falról */ @Override public void onExit(PlayerBase playerBase) { } /** * A függvény a falon lévő csillagkapuval tér vissza. * * @return a csillagkapu */ public Stargate getStargate() { return sg; } }