diff --git a/cicaprojekt/Stargate.java b/cicaprojekt/Stargate.java
index f18cb0d..fc1f3fc 100644
--- a/cicaprojekt/Stargate.java
+++ b/cicaprojekt/Stargate.java
@@ -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ó Map
.
+ */
private static Map 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
+ * Map
-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;
}