35 lines
991 B
Java
35 lines
991 B
Java
package com.burnedkirby.TurnBasedMinecraft.common;
|
|
|
|
|
|
import net.minecraftforge.event.TickEvent;
|
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
|
|
|
import java.util.concurrent.atomic.AtomicBoolean;
|
|
|
|
public class BattleUpdater
|
|
{
|
|
private BattleManager manager;
|
|
private AtomicBoolean isRunning;
|
|
private int tick;
|
|
private final int tickLimit = 3;
|
|
|
|
public BattleUpdater(BattleManager manager)
|
|
{
|
|
this.manager = manager;
|
|
isRunning = new AtomicBoolean(true);
|
|
tick = 0;
|
|
}
|
|
|
|
public void setRunning(boolean isRunning) {
|
|
this.isRunning.set(isRunning);
|
|
}
|
|
|
|
@SubscribeEvent
|
|
public void update(TickEvent.ServerTickEvent tickEvent) {
|
|
if(tickEvent.phase != TickEvent.Phase.START && isRunning.get() && ++tick > tickLimit && tickEvent.haveTime()) {
|
|
tick = 0;
|
|
manager.battleMap.entrySet().removeIf(entry -> entry.getValue().update());
|
|
manager.updateRecentlyLeftBattle();
|
|
}
|
|
}
|
|
}
|