package net.minecraft.world.level; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; import java.util.function.Consumer; import java.util.stream.Stream; import net.minecraft.core.BlockPos; import com.google.common.collect.Sets; import java.util.List; import net.minecraft.resources.ResourceLocation; import java.util.function.Function; import java.util.Set; public class ChunkTickList implements TickList { private final Set> ticks; private final Function toId; public ChunkTickList(final Function function, final List> list) { this(function, (Set)Sets.newHashSet(list)); } private ChunkTickList(final Function function, final Set> set) { this.ticks = set; this.toId = function; } @Override public boolean hasScheduledTick(final BlockPos fk, final T object) { return false; } @Override public void scheduleTick(final BlockPos fk, final T object, final int integer, final TickPriority bkk) { this.ticks.add(new TickNextTickData(fk, object, integer, bkk)); } @Override public boolean willTickThisTick(final BlockPos fk, final T object) { return false; } @Override public void addAll(final Stream> stream) { stream.forEach(this.ticks::add); } public Stream> ticks() { return this.ticks.stream(); } public ListTag save(final long long1) { return ServerTickList.saveTickList(this.toId, this.ticks, long1); } public static ChunkTickList create(final ListTag jz, final Function function2, final Function function3) { final Set> set4 = Sets.newHashSet(); for (int integer5 = 0; integer5 < jz.size(); ++integer5) { final CompoundTag jt6 = jz.getCompound(integer5); final T object7 = function3.apply(new ResourceLocation(jt6.getString("i"))); if (object7 != null) { set4.add(new TickNextTickData(new BlockPos(jt6.getInt("x"), jt6.getInt("y"), jt6.getInt("z")), object7, jt6.getInt("t"), TickPriority.byValue(jt6.getInt("p")))); } } return new ChunkTickList(function2, set4); } }