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;
/**
* A játékban megjelenő mérlegeket reprezentáló osztály.
*/
public class Scale extends Field {
/**
* Az a <code>Gate</code> példány, amelyhez a mérleg van kötve.
*/
private Gate gateConnected;
/**
* A mérleg súlyhatára, efelett nyitja ki a hozzá tartozó kaput.
*/
private int threshold;
/**
* A mérlegen lévő súly.
*/
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) {
gateConnected = gate;
this.threshold = threshold;
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
public boolean isSteppable()
{
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
public void onEntry(PlayerBase playerBase) {
super.onEntry(playerBase);
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
public void onExit(PlayerBase playerBase) {
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
public Box getABox() {
if (boxStack.isEmpty())
@ -40,6 +90,13 @@ public class Scale extends Field {
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
public void putABox(Box box) {
if (box == null)
@ -49,6 +106,13 @@ public class Scale extends Field {
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() {
if (weight >= threshold)
gateConnected.setOpen(true);
@ -56,6 +120,12 @@ public class Scale extends Field {
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
public boolean canHazZPM() {
return false;