public void tickStart(EnumSet<TickType> ticks, Side side, Object... data) { List<IScheduledTickHandler> scheduledTicks = side.isClient() ? scheduledClientTicks : scheduledServerTicks; if (scheduledTicks.size() == 0) { return; } for (IScheduledTickHandler ticker : scheduledTicks) { EnumSet<TickType> ticksToRun = EnumSet.copyOf(Objects.firstNonNull(ticker.ticks(), EnumSet.noneOf(TickType.class))); ticksToRun.removeAll(EnumSet.complementOf(ticks)); if (!ticksToRun.isEmpty()) { ticker.tickStart(ticksToRun, data); } } }
public void rescheduleTicks(Side side) { TickRegistry.updateTickQueue( side.isClient() ? scheduledClientTicks : scheduledServerTicks, side); }