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.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A játékban megjelenő csillagkapukat reprezentáló osztály.
|
||||||
|
*/
|
||||||
public class Stargate {
|
public class Stargate {
|
||||||
|
/**
|
||||||
|
* Egy darab sárga csillagkapu létrehozása és tárolása.
|
||||||
|
*/
|
||||||
public static final Stargate yellowStargate = new Stargate("Yellow Stargate");
|
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");
|
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");
|
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");
|
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;
|
public Stargate other;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A csillagkapu létrehozottságának a tárolása.
|
||||||
|
*/
|
||||||
private boolean isSpawned;
|
private boolean isSpawned;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A csillagkapu aktuális helyének a tárolása.
|
||||||
|
*/
|
||||||
private Wall currentWall;
|
private Wall currentWall;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A csillagkapu kilépési irányának a tárolása.
|
||||||
|
*/
|
||||||
private Direction exitDirection;
|
private Direction exitDirection;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A csillagkapu nevének a tárolása.
|
||||||
|
*/
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A csillagkapukat és színüket tároló <code>Map</code>.
|
||||||
|
*/
|
||||||
private static Map<Color, Stargate> stargates = new HashMap<>();
|
private static Map<Color, Stargate> stargates = new HashMap<>();
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Az osztály konstruktora.
|
||||||
|
*
|
||||||
|
* @param name a csillagkapu neve
|
||||||
|
*/
|
||||||
private Stargate(String name) {
|
private Stargate(String name) {
|
||||||
isSpawned = false;
|
isSpawned = false;
|
||||||
this.name = name;
|
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() {
|
public static void init() {
|
||||||
yellowStargate.other = blueStargate;
|
yellowStargate.other = blueStargate;
|
||||||
blueStargate.other = yellowStargate;
|
blueStargate.other = yellowStargate;
|
||||||
@ -35,14 +85,32 @@ public class Stargate {
|
|||||||
stargates.put(Color.GREEN, greenStargate);
|
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) {
|
public static Stargate get(Color color) {
|
||||||
return stargates.get(color);
|
return stargates.get(color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A csillagkapu aktuális helyével tér vissza.
|
||||||
|
*
|
||||||
|
* @return aktuális fal
|
||||||
|
*/
|
||||||
public Wall getCurrentWall() {
|
public Wall getCurrentWall() {
|
||||||
return currentWall;
|
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) {
|
public void setCurrentWall(Wall wall, Direction direction) {
|
||||||
currentWall = wall;
|
currentWall = wall;
|
||||||
if(direction != null)
|
if(direction != null)
|
||||||
@ -50,20 +118,46 @@ public class Stargate {
|
|||||||
isSpawned = wall != null;
|
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() {
|
public boolean isSpawned() {
|
||||||
return 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() {
|
public boolean isOpen() {
|
||||||
if(isSpawned & other.isSpawned)
|
if(isSpawned & other.isSpawned)
|
||||||
return other.getCurrentWall().getAdjacentTile(other.getExitDirection()).isSteppable();
|
return other.getCurrentWall().getAdjacentTile(other.getExitDirection()).isSteppable();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Visszatér a csillagkapu kilépési irányával.
|
||||||
|
*
|
||||||
|
* @return kilépési irány
|
||||||
|
*/
|
||||||
private Direction getExitDirection() {
|
private Direction getExitDirection() {
|
||||||
return exitDirection;
|
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) {
|
public void teleport(PlayerBase player) {
|
||||||
if(isOpen())
|
if(isOpen())
|
||||||
{
|
{
|
||||||
@ -75,6 +169,11 @@ public class Stargate {
|
|||||||
player.setCurrentTile(this.getCurrentWall());
|
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
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
if(isSpawned)
|
if(isSpawned)
|
||||||
@ -82,6 +181,11 @@ public class Stargate {
|
|||||||
else return String.format("%s: not spawned", name);
|
else return String.format("%s: not spawned", name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Visszatér a csillagkapu nevével.
|
||||||
|
*
|
||||||
|
* @return a csillagkapu neve
|
||||||
|
*/
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user