Comments added to Stargate.java
This commit is contained in:
parent
d118036fc0
commit
57c636d6a0
@ -4,25 +4,75 @@ import java.awt.*;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* A játékban megjelenő csillagkapukat reprezentáló osztály.
|
||||
*/
|
||||
public class Stargate {
|
||||
/**
|
||||
* Egy darab sárga csillagkapu létrehozása és tárolása.
|
||||
*/
|
||||
public static final Stargate yellowStargate = new Stargate("Yellow Stargate");
|
||||
|
||||
/**
|
||||
* Egy darab kék csillagkapu létrehozása és tárolása.
|
||||
*/
|
||||
public static final Stargate blueStargate = new Stargate("Blue Stargate");
|
||||
|
||||
/**
|
||||
* Egy darab piros csillagkapu létrehozása és tárolása.
|
||||
*/
|
||||
public static final Stargate redStargate = new Stargate("Red Stargate");
|
||||
|
||||
/**
|
||||
* Egy darab zöld csillagkapu létrehozása és tárolása.
|
||||
*/
|
||||
public static final Stargate greenStargate = new Stargate("Green Stargate");
|
||||
|
||||
/**
|
||||
* A csillagkapu párjának, a másik csillagkapunak a tárolása.
|
||||
*/
|
||||
public Stargate other;
|
||||
|
||||
/**
|
||||
* A csillagkapu létrehozottságának a tárolása.
|
||||
*/
|
||||
private boolean isSpawned;
|
||||
|
||||
/**
|
||||
* A csillagkapu aktuális helyének a tárolása.
|
||||
*/
|
||||
private Wall currentWall;
|
||||
|
||||
/**
|
||||
* A csillagkapu kilépési irányának a tárolása.
|
||||
*/
|
||||
private Direction exitDirection;
|
||||
|
||||
/**
|
||||
* A csillagkapu nevének a tárolása.
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* A csillagkapukat és színüket tároló <code>Map</code>.
|
||||
*/
|
||||
private static Map<Color, Stargate> stargates = new HashMap<>();
|
||||
|
||||
|
||||
/**
|
||||
* Az osztály konstruktora.
|
||||
*
|
||||
* @param name a csillagkapu neve
|
||||
*/
|
||||
private Stargate(String name) {
|
||||
isSpawned = false;
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
/**
|
||||
* A csillagkapuk inicializálása. Az egyes párok meghatározása és a
|
||||
* <code>Map</code>-ben való eltárolása.
|
||||
*/
|
||||
public static void init() {
|
||||
yellowStargate.other = blueStargate;
|
||||
blueStargate.other = yellowStargate;
|
||||
@ -35,14 +85,32 @@ public class Stargate {
|
||||
stargates.put(Color.GREEN, greenStargate);
|
||||
}
|
||||
|
||||
/**
|
||||
* A kapott szín alapján visszatér a kér csillagkapuval.
|
||||
*
|
||||
* @param color csillagkapu színe
|
||||
* @return elvárt csillagkapu
|
||||
*/
|
||||
public static Stargate get(Color color) {
|
||||
return stargates.get(color);
|
||||
}
|
||||
|
||||
/**
|
||||
* A csillagkapu aktuális helyével tér vissza.
|
||||
*
|
||||
* @return aktuális fal
|
||||
*/
|
||||
public Wall getCurrentWall() {
|
||||
return currentWall;
|
||||
}
|
||||
|
||||
/**
|
||||
* A csillagkapu aktuális helyének beállítása megadott fal és megadott irány
|
||||
* alapján.
|
||||
*
|
||||
* @param wall megadott fal
|
||||
* @param direction megadott irány
|
||||
*/
|
||||
public void setCurrentWall(Wall wall, Direction direction) {
|
||||
currentWall = wall;
|
||||
if(direction != null)
|
||||
@ -50,20 +118,46 @@ public class Stargate {
|
||||
isSpawned = wall != null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Egy csillagkapuról lekérdezi, hogy létre van-e hozva.
|
||||
*
|
||||
* @return true, ha létre van hozva
|
||||
* false, egyébként
|
||||
*/
|
||||
public boolean isSpawned() {
|
||||
return isSpawned;
|
||||
}
|
||||
|
||||
/**
|
||||
* Egy csillagkapuról lekérdezi, hogy nyitva van-e. Ezt annak függvényében
|
||||
* dönti el, hogy a csillagkapu kilépési irányában lévő csempére rá lehet-e
|
||||
* lépni.
|
||||
*
|
||||
* @return true, ha rá lehet lépni
|
||||
* false, egyébként
|
||||
*/
|
||||
public boolean isOpen() {
|
||||
if(isSpawned & other.isSpawned)
|
||||
return other.getCurrentWall().getAdjacentTile(other.getExitDirection()).isSteppable();
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Visszatér a csillagkapu kilépési irányával.
|
||||
*
|
||||
* @return kilépési irány
|
||||
*/
|
||||
private Direction getExitDirection() {
|
||||
return exitDirection;
|
||||
}
|
||||
|
||||
/**
|
||||
* A játékban való teleportálást implementáló függvény.
|
||||
* Ha a csillagkapu átjárható, akkor a belépő személy átkerül a kilépési
|
||||
* pontjára, egyébként marad a helyén.
|
||||
*
|
||||
* @param player a belépő személy
|
||||
*/
|
||||
public void teleport(PlayerBase player) {
|
||||
if(isOpen())
|
||||
{
|
||||
@ -75,6 +169,11 @@ public class Stargate {
|
||||
player.setCurrentTile(this.getCurrentWall());
|
||||
}
|
||||
|
||||
/**
|
||||
* Ha a csillagkapu létre van hozva, akkor a nevével és az aktuális
|
||||
* tartózkodási helyével tér vissza, ha nincs létre hozva, akkor
|
||||
* pedig a nevével és a "not spawned" szöveggel.
|
||||
*/
|
||||
@Override
|
||||
public String toString() {
|
||||
if(isSpawned)
|
||||
@ -82,6 +181,11 @@ public class Stargate {
|
||||
else return String.format("%s: not spawned", name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Visszatér a csillagkapu nevével.
|
||||
*
|
||||
* @return a csillagkapu neve
|
||||
*/
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user