Versatile Java game engine with pluggable backends (this was used in Rogue, I think)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gamecore/src/mightypork/gamecore/gui/ActionGroup.java

60 lines
954 B

package mightypork.gamecore.gui;
import java.util.HashSet;
import java.util.Set;
import mightypork.utils.interfaces.Enableable;
/**
* A group of enableable objects that propagates it's "enable" state to them
* all.
*
* @author Ondřej Hruška (MightyPork)
*/
public class ActionGroup implements Enableable {
private boolean enabled = true;
private final Set<Enableable> groupMembers = new HashSet<>();
@Override
public void setEnabled(boolean yes)
{
enabled = yes;
for (final Enableable e : groupMembers)
e.setEnabled(yes);
}
@Override
public boolean isEnabled()
{
return enabled;
}
/**
* Add an {@link Enableable} to the group
*
* @param member the object to add
*/
public void add(Enableable member)
{
groupMembers.add(member);
}
/**
* Remove a group member
*
* @param member the object to remove
*/
public void remove(Enableable member)
{
groupMembers.remove(member);
}
}