diff --git a/cicaprojekt/Scale.java b/cicaprojekt/Scale.java
index 8f74d67..5f8880b 100644
--- a/cicaprojekt/Scale.java
+++ b/cicaprojekt/Scale.java
@@ -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 Gate
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 PlayerBase
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 PlayerBase
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ó Box
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ú Tile
-on lehet
+ * ZPM, hamissal, ha nem.
+ *
+ * @return false
+ */
@Override
public boolean canHazZPM() {
return false;