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