magarena/src/magic/model/MagicLogMessageBuilder.java

47 lines
1.3 KiB
Java
Raw Normal View History

2013-04-12 19:32:25 -07:00
package magic.model;
import java.util.ArrayList;
2020-01-15 12:02:42 -08:00
import java.util.List;
2013-04-12 19:32:25 -07:00
public class MagicLogMessageBuilder {
private final MagicGame game;
private final StringBuilder[] messageBuilders;
private final List<MagicPlayer> order;
2013-06-23 18:33:35 -07:00
MagicLogMessageBuilder(final MagicGame aGame) {
game = aGame;
2013-04-12 19:32:25 -07:00
messageBuilders=new StringBuilder[]{new StringBuilder(),new StringBuilder()};
order = new ArrayList<>(2);
2013-04-12 19:32:25 -07:00
}
2013-06-23 18:33:35 -07:00
2013-04-12 19:32:25 -07:00
void appendMessage(final MagicPlayer player,final String message) {
final StringBuilder messageBuilder=messageBuilders[player.getIndex()];
if (messageBuilder.length()>0) {
messageBuilder.append(' ');
}
messageBuilder.append(message);
if (!order.contains(player)) {
order.add(player);
}
2013-04-12 19:32:25 -07:00
}
2013-06-23 18:33:35 -07:00
2013-04-12 19:32:25 -07:00
void logMessages() {
for (final MagicPlayer player : order) {
2013-04-12 19:32:25 -07:00
final StringBuilder messageBuilder=messageBuilders[player.getIndex()];
if (messageBuilder.length()>0) {
game.getLogBook().add(new MagicMessage(game,player,messageBuilder.toString()));
messageBuilder.setLength(0);
}
}
order.clear();
2013-04-12 19:32:25 -07:00
}
2013-06-23 18:33:35 -07:00
2013-04-12 19:32:25 -07:00
void clearMessages() {
messageBuilders[0].setLength(0);
messageBuilders[1].setLength(0);
order.clear();
2013-04-12 19:32:25 -07:00
}
}