From 57c636d6a09d6a5cfb28afa2ef471627ff59db64 Mon Sep 17 00:00:00 2001 From: Siket Melinda Tekla Date: Mon, 16 May 2016 20:49:08 +0200 Subject: [PATCH] Comments added to Stargate.java --- cicaprojekt/Stargate.java | 104 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) 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; }