Comments added to Tile.java
This commit is contained in:
parent
e9d3e72680
commit
c7cd02abda
@ -4,44 +4,114 @@ import java.util.HashMap;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Stack;
|
import java.util.Stack;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A játékban megjelenő különböző csempetípusokat reprezentáló osztály.
|
||||||
|
* @author MelindaTekla
|
||||||
|
*
|
||||||
|
*/
|
||||||
public abstract class Tile {
|
public abstract class Tile {
|
||||||
|
/**
|
||||||
|
* A csempe szomszédos csempéit tároló <code>Map</code>.
|
||||||
|
*/
|
||||||
protected Map<Direction, Tile> adjacentTile;
|
protected Map<Direction, Tile> adjacentTile;
|
||||||
|
/**
|
||||||
|
* A csempén lévő ZPM.
|
||||||
|
*/
|
||||||
protected ZPM zpmOnTile;
|
protected ZPM zpmOnTile;
|
||||||
|
/**
|
||||||
|
* A csempén lévő dobozok.
|
||||||
|
*/
|
||||||
protected Stack<Box> boxStack;
|
protected Stack<Box> boxStack;
|
||||||
|
/**
|
||||||
|
* A csempe y-koordinátája.
|
||||||
|
*/
|
||||||
protected int y = -666;
|
protected int y = -666;
|
||||||
|
/**
|
||||||
|
* A csempe x-koordinátája.
|
||||||
|
*/
|
||||||
protected int x = -666;
|
protected int x = -666;
|
||||||
|
/**
|
||||||
|
* A csempén lévő személy.
|
||||||
|
*/
|
||||||
protected PlayerBase playerBaseOnTile = null;
|
protected PlayerBase playerBaseOnTile = null;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Az osztály konstruktora.
|
||||||
|
*/
|
||||||
public Tile() {
|
public Tile() {
|
||||||
adjacentTile = new HashMap<>();
|
adjacentTile = new HashMap<>();
|
||||||
boxStack = new Stack<>();
|
boxStack = new Stack<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A csempe x-koordinátájával tér vissza.
|
||||||
|
*
|
||||||
|
* @return x-koordináta
|
||||||
|
*/
|
||||||
public int getX() { return this.x; }
|
public int getX() { return this.x; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A csempe y-koordinátájával tér vissza.
|
||||||
|
*
|
||||||
|
* @return y-koordináta
|
||||||
|
*/
|
||||||
public int getY() { return this.y; }
|
public int getY() { return this.y; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A csempe x-koordinátáját állítja be a kapott paraméterre.
|
||||||
|
*
|
||||||
|
* @param x a kapott x-koordináta
|
||||||
|
*/
|
||||||
public void setX(int x) {
|
public void setX(int x) {
|
||||||
if (x >= 0)
|
if (x >= 0)
|
||||||
this.x = x;
|
this.x = x;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A csempe y-koordinátáját állítja be a kapott paraméterre.
|
||||||
|
*
|
||||||
|
* @param y a kapott y-koordináta
|
||||||
|
*/
|
||||||
public void setY(int y) {
|
public void setY(int y) {
|
||||||
if (y >= 0)
|
if (y >= 0)
|
||||||
this.y = y;
|
this.y = y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A csempére való léphetőséget tárolja.
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
public abstract boolean isSteppable();
|
public abstract boolean isSteppable();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A csempe kapott irányban lévő szomszédos csempéjével tér vissza.
|
||||||
|
*
|
||||||
|
* @param direction a kapott irány
|
||||||
|
* @return a szomszédos csempe
|
||||||
|
*/
|
||||||
public Tile getAdjacentTile(Direction direction) {
|
public Tile getAdjacentTile(Direction direction) {
|
||||||
return adjacentTile.get(direction);
|
return adjacentTile.get(direction);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A csempe kapott irányban lévő szomszédjára állítja be a kapott csempét.
|
||||||
|
*
|
||||||
|
* @param newTile a kapott csempe
|
||||||
|
* @param direction a kapott irány
|
||||||
|
*/
|
||||||
public void setAdajacentTile(Tile newTile, Direction direction) {
|
public void setAdajacentTile(Tile newTile, Direction direction) {
|
||||||
adjacentTile.put(direction, newTile);
|
adjacentTile.put(direction, newTile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A függvény akkor hívódik meg, ha egy csillagkapu érkezik a csempére.
|
||||||
|
* Ekkor ha a Replikátor áll a csempén, az megsemmisül, a csillagkapu pedig
|
||||||
|
* a kapott irányban halad tovább.
|
||||||
|
*
|
||||||
|
* @param stargate az érkező csillagkapu
|
||||||
|
* @param direction a kapott irány
|
||||||
|
*/
|
||||||
public void spawnStargate(Stargate stargate, Direction direction) {
|
public void spawnStargate(Stargate stargate, Direction direction) {
|
||||||
if (playerBaseOnTile != null && playerBaseOnTile.name.equals("Replicator"))
|
if (playerBaseOnTile != null && playerBaseOnTile.name.equals("Replicator"))
|
||||||
playerBaseOnTile.destroy();
|
playerBaseOnTile.destroy();
|
||||||
@ -49,55 +119,118 @@ public abstract class Tile {
|
|||||||
adjacentTile.get(direction).spawnStargate(stargate, direction);
|
adjacentTile.get(direction).spawnStargate(stargate, direction);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A függvény akkor hívódik meg, ha egy személy lép a csempére.
|
||||||
|
*
|
||||||
|
* @param playerBase a <code>PlayerBase</code> példány, amely a csempére lépett
|
||||||
|
*/
|
||||||
public void onEntry(PlayerBase playerBase) {
|
public void onEntry(PlayerBase playerBase) {
|
||||||
playerBaseOnTile = playerBase;
|
playerBaseOnTile = playerBase;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A függvény akkor hívódik meg, ha egy személy lelép a csempéről.
|
||||||
|
*
|
||||||
|
* @param playerBase a <code>PlayerBase</code> példány, amely lelépett
|
||||||
|
* a csempéről
|
||||||
|
*/
|
||||||
public abstract void onExit(PlayerBase playerBase);
|
public abstract void onExit(PlayerBase playerBase);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Beállítja a kapott ZPM-et a csempére.
|
||||||
|
*
|
||||||
|
* @param zpm a kapott ZPM
|
||||||
|
*/
|
||||||
public void setZPMOnTile(ZPM zpm) {
|
public void setZPMOnTile(ZPM zpm) {
|
||||||
zpmOnTile = zpm;
|
zpmOnTile = zpm;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Visszatér a csempén lévő ZPM-el, majd a csempén lévő ZPM értékét null-ra
|
||||||
|
* állítja.
|
||||||
|
*
|
||||||
|
* @return a csempén lévő ZPM
|
||||||
|
*/
|
||||||
public ZPM getZPMFromTile() {
|
public ZPM getZPMFromTile() {
|
||||||
ZPM zpm = zpmOnTile;
|
ZPM zpm = zpmOnTile;
|
||||||
zpmOnTile = null;
|
zpmOnTile = null;
|
||||||
return zpm;
|
return zpm;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A függvény igazzal tér vissza, ha a csempe egy szakadék.
|
||||||
|
*
|
||||||
|
* @return false
|
||||||
|
*/
|
||||||
public boolean isGap() {
|
public boolean isGap() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A függvény a kapott dobozt rárakja a csempére.
|
||||||
|
*
|
||||||
|
* @param box a kapott doboz
|
||||||
|
*/
|
||||||
public void putABox(Box box) {
|
public void putABox(Box box) {
|
||||||
if (box == null)
|
if (box == null)
|
||||||
return;
|
return;
|
||||||
boxStack.push(box);
|
boxStack.push(box);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A függvény leveszi a csempén lévő dobozrakás tetején lévő dobozt,
|
||||||
|
* azzal tér vissza.
|
||||||
|
*
|
||||||
|
* @return a levett doboz
|
||||||
|
*/
|
||||||
public Box getABox() {
|
public Box getABox() {
|
||||||
if (boxStack.isEmpty())
|
if (boxStack.isEmpty())
|
||||||
return null;
|
return null;
|
||||||
return boxStack.pop();
|
return boxStack.pop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Kiírja a csempe koordinátáit.
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return String.format("%d, %d", x, y);
|
return String.format("%d, %d", x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A függvény aszerint tér vissza, hogy van-e a csempén ZPM.
|
||||||
|
*
|
||||||
|
* @return true, ha van a csempén ZPM
|
||||||
|
* false, egyébként
|
||||||
|
*/
|
||||||
public boolean hasZPM() {
|
public boolean hasZPM() {
|
||||||
return zpmOnTile != null;
|
return zpmOnTile != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A függvény aszerint tér vissza, hogy van-e a csempén doboz.
|
||||||
|
*
|
||||||
|
* @return true, ha van a csempén doboz
|
||||||
|
* false, egyébként
|
||||||
|
*/
|
||||||
public boolean hasBox() {
|
public boolean hasBox() {
|
||||||
return !boxStack.isEmpty();
|
return !boxStack.isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A függvény aszerint tér vissza, hogy lehet-e a csempén doboz.
|
||||||
|
*
|
||||||
|
* @return true
|
||||||
|
*/
|
||||||
public boolean boxPermission() {
|
public boolean boxPermission() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A függvény aszerint tér vissza, hogy lehet-e a csempén ZPM.
|
||||||
|
*
|
||||||
|
* @return false
|
||||||
|
*/
|
||||||
public boolean canHazZPM() {
|
public boolean canHazZPM() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user