TurnBasedMinecraftMod/src/main/java/com/burnedkirby/TurnBasedMinecraft/common/BattleUpdater.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();
}
}
}