Comments added to Scale.java

This commit is contained in:
Siket Melinda Tekla 2016-05-16 17:56:40 +02:00
parent 7a03b21683
commit 8e4ed87c9a
1 changed files with 70 additions and 0 deletions

View File

@ -2,35 +2,85 @@ package cicaprojekt;
import java.util.Stack; import java.util.Stack;
/**
* A játékban megjelenő mérlegeket reprezentáló osztály.
*/
public class Scale extends Field { public class Scale extends Field {
/**
* Az a <code>Gate</code> példány, amelyhez a mérleg van kötve.
*/
private Gate gateConnected; private Gate gateConnected;
/**
* A mérleg súlyhatára, efelett nyitja ki a hozzá tartozó kaput.
*/
private int threshold; private int threshold;
/**
* A mérlegen lévő súly.
*/
private int weight; private int weight;
/**
* Az osztály konstruktora. Létrehoz a mérlegen egy üres dobozrakást.
*
* @param gate a kapu, amelyet a mérleg nyit
* @param threshold a mérleg súlyhatára
*/
public Scale(Gate gate, int threshold) { public Scale(Gate gate, int threshold) {
gateConnected = gate; gateConnected = gate;
this.threshold = threshold; this.threshold = threshold;
boxStack = new Stack<>(); boxStack = new Stack<>();
} }
/**
* A függvény igazzal tér vissza, ha a mérlegre lehet lépni,
* hamissal, ha nem. Ezt a rajta lévő dobozok alapján dönti el.
*
* @return true, ha a dobozrakás üres
* false, egyébként
*/
@Override @Override
public boolean isSteppable() public boolean isSteppable()
{ {
return boxStack.isEmpty(); return boxStack.isEmpty();
} }
/**
* A függvény akkor hívódik meg, ha egy személy rálép a mérlegre.
* Ekkor a mérleghez tartozó kapu kinyílik.
*
* @param playerBase az a <code>PlayerBase</code> példány, amely
* rálépett a mérlegre
*/
@Override @Override
public void onEntry(PlayerBase playerBase) { public void onEntry(PlayerBase playerBase) {
super.onEntry(playerBase); super.onEntry(playerBase);
gateConnected.setOpen(true); gateConnected.setOpen(true);
} }
/**
* A függvény akkor hívódik meg, ha egy személy lelépett a mérlegről.
* Ilyenkor a mérleghez tartozó kapu bezáródik.
*
* @param playerBase az a <code>PlayerBase</code> példány, amely
* lelépett a mérlegről
*/
@Override @Override
public void onExit(PlayerBase playerBase) { public void onExit(PlayerBase playerBase) {
gateConnected.setOpen(false); gateConnected.setOpen(false);
} }
/**
* A függvény eltávolít egy dobozt a mérlegen lévő dobozrakás tetejéről.
* Ennek súlyát levonja a mérlegen lévő súlyból, majd visszatér a levett
* dobozzal. Amennyiben nem volt egydoboz sem a mérlegen, úgy null-al tér vissza.
*
* @return a levett doboz, ha volt a mérlegen legalább egy
* null, egyébként
* @see #stackChanged()
*/
@Override @Override
public Box getABox() { public Box getABox() {
if (boxStack.isEmpty()) if (boxStack.isEmpty())
@ -40,6 +90,13 @@ public class Scale extends Field {
return boxStack.pop(); return boxStack.pop();
} }
/**
* A függvény rárak egy dobozt a mérlegen lévő dobozrakás tetejére,
* majd ennek súlyával frissíti a mérlegen lévő súlyt is.
*
* @param box a rárakandó <code>Box</code> példány
* @see #stackChanged()
*/
@Override @Override
public void putABox(Box box) { public void putABox(Box box) {
if (box == null) if (box == null)
@ -49,6 +106,13 @@ public class Scale extends Field {
stackChanged(); stackChanged();
} }
/**
* Akkor hívódik meg, ha egy új doboz került a mérlegre, vagy egy doboz
* lekerült róla. Ilyenkor ellenőrzi, hogy a súlyhatár át van-e lépve,
* a mérleghez tartozó kaput pedig ennek megfelelően beállítja.
*
* @see Gate#setOpen(boolean)
*/
private void stackChanged() { private void stackChanged() {
if (weight >= threshold) if (weight >= threshold)
gateConnected.setOpen(true); gateConnected.setOpen(true);
@ -56,6 +120,12 @@ public class Scale extends Field {
gateConnected.setOpen(false); gateConnected.setOpen(false);
} }
/**
* A függvény igazzal tér vissza, ha az adott típusú <code>Tile</code>-on lehet
* ZPM, hamissal, ha nem.
*
* @return false
*/
@Override @Override
public boolean canHazZPM() { public boolean canHazZPM() {
return false; return false;