use of com.voxelgameslib.voxelgameslib.api.tick.Tickable in project VoxelGamesLibv2 by VoxelGamesLib.
the class AbstractPhase method tick.
@Override
public void tick() {
phaseTiming.startTiming();
for (Feature feature : features) {
MCTiming timing = timingManager.ofStart("Phase::Tickables::" + getName() + "::" + feature.getName(), phaseTiming);
feature.tick();
timing.stopTiming();
}
for (Tickable tickable : phaseTickables.values()) {
MCTiming timing = timingManager.ofStart("Phase::Tickables::" + getName() + "::" + tickable.getClass().getSimpleName(), phaseTiming);
tickable.tick();
timing.stopTiming();
}
phaseTiming.stopTiming();
checkEnd();
}
use of com.voxelgameslib.voxelgameslib.api.tick.Tickable in project VoxelGamesLibv2 by VoxelGamesLib.
the class AbstractPhase method enable.
@Override
public void enable() {
phaseTiming = timingManager.of("Phase::Tickables::" + getName());
if (!checkDependencies()) {
game.abortGame();
return;
}
if (!checkVictoryConditionDependencies()) {
game.abortGame();
return;
}
if (victoryConditions.size() == 0) {
addVictoryCondition(getGame().createVictoryCondition(EmptyVictoryCondition.class, this));
}
// check for spec feature
if (allowSpectate && !getOptionalFeature(SpectatorFeature.class).isPresent()) {
log.warning(getName() + " does allow spectators but doesn't use the spectator feature! Did you forget to add it?");
}
// enable timer
startTime = LocalDateTime.now();
log.finer("enable phase" + getName());
phaseTickables.values().forEach(Tickable::enable);
for (Feature feature : features) {
if (game.isAborting()) {
return;
}
log.finer("enable " + feature.getName());
try {
feature.enable();
} catch (Exception ex) {
log.severe("error while starting " + feature.getName());
ex.printStackTrace();
game.abortGame();
return;
}
if (feature instanceof Listener) {
eventHandler.registerEvents((Listener) feature, getGame());
}
if (feature instanceof FeatureCommandImplementor) {
AbstractFeatureCommand cmd = injector.getInstance(((FeatureCommandImplementor) feature).getCommandClass());
// noinspection unchecked
cmd.setFeature(feature);
commandHandler.register(cmd, this);
}
startedFeatures.add(feature);
}
for (VictoryCondition victoryCondition : victoryConditions) {
if (victoryCondition instanceof Listener) {
eventHandler.registerEvents((Listener) victoryCondition, getGame());
}
}
}
Aggregations