Comments added to Scale.java
This commit is contained in:
parent
7a03b21683
commit
8e4ed87c9a
@ -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 rá 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;
|
||||
|
Loading…
Reference in New Issue
Block a user