package net.minecraft.client.renderer.chunk; import com.google.common.collect.Lists; import java.util.Iterator; import java.util.List; import java.util.concurrent.locks.ReentrantLock; import net.minecraft.client.renderer.RegionRenderCacheBuilder; public class ChunkCompileTaskGenerator { private final RenderChunk field_178553_a; private final ReentrantLock field_178551_b = new ReentrantLock(); private final List field_178552_c = Lists.newArrayList(); private final ChunkCompileTaskGenerator.Type field_178549_d; private RegionRenderCacheBuilder field_178550_e; private CompiledChunk field_178547_f; private ChunkCompileTaskGenerator.Status field_178548_g; private boolean field_178554_h; private static final String __OBFID = "CL_00002466"; public ChunkCompileTaskGenerator(RenderChunk p_i46208_1_, ChunkCompileTaskGenerator.Type p_i46208_2_) { this.field_178548_g = ChunkCompileTaskGenerator.Status.PENDING; this.field_178553_a = p_i46208_1_; this.field_178549_d = p_i46208_2_; } public ChunkCompileTaskGenerator.Status func_178546_a() { return this.field_178548_g; } public RenderChunk func_178536_b() { return this.field_178553_a; } public CompiledChunk func_178544_c() { return this.field_178547_f; } public void func_178543_a(CompiledChunk p_178543_1_) { this.field_178547_f = p_178543_1_; } public RegionRenderCacheBuilder func_178545_d() { return this.field_178550_e; } public void func_178541_a(RegionRenderCacheBuilder p_178541_1_) { this.field_178550_e = p_178541_1_; } public void func_178535_a(ChunkCompileTaskGenerator.Status p_178535_1_) { this.field_178551_b.lock(); try { this.field_178548_g = p_178535_1_; } finally { this.field_178551_b.unlock(); } } public void func_178542_e() { this.field_178551_b.lock(); try { if (this.field_178549_d == ChunkCompileTaskGenerator.Type.REBUILD_CHUNK && this.field_178548_g != ChunkCompileTaskGenerator.Status.DONE) { this.field_178553_a.func_178575_a(true); } this.field_178554_h = true; this.field_178548_g = ChunkCompileTaskGenerator.Status.DONE; Iterator var1 = this.field_178552_c.iterator(); while (var1.hasNext()) { Runnable var2 = (Runnable)var1.next(); var2.run(); } } finally { this.field_178551_b.unlock(); } } public void func_178539_a(Runnable p_178539_1_) { this.field_178551_b.lock(); try { this.field_178552_c.add(p_178539_1_); if (this.field_178554_h) { p_178539_1_.run(); } } finally { this.field_178551_b.unlock(); } } public ReentrantLock func_178540_f() { return this.field_178551_b; } public ChunkCompileTaskGenerator.Type func_178538_g() { return this.field_178549_d; } public boolean func_178537_h() { return this.field_178554_h; } public static enum Status { PENDING("PENDING", 0, "PENDING", 0), COMPILING("COMPILING", 1, "COMPILING", 1), UPLOADING("UPLOADING", 2, "UPLOADING", 2), DONE("DONE", 3, "DONE", 3); private static final ChunkCompileTaskGenerator.Status[] $VALUES = new ChunkCompileTaskGenerator.Status[]{PENDING, COMPILING, UPLOADING, DONE}; private static final String __OBFID = "CL_00002465"; private static final ChunkCompileTaskGenerator.Status[] $VALUES$ = new ChunkCompileTaskGenerator.Status[]{PENDING, COMPILING, UPLOADING, DONE}; private Status(String p_i46391_1_, int p_i46391_2_, String p_i46207_1_, int p_i46207_2_) {} } public static enum Type { REBUILD_CHUNK("REBUILD_CHUNK", 0, "REBUILD_CHUNK", 0), RESORT_TRANSPARENCY("RESORT_TRANSPARENCY", 1, "RESORT_TRANSPARENCY", 1); private static final ChunkCompileTaskGenerator.Type[] $VALUES = new ChunkCompileTaskGenerator.Type[]{REBUILD_CHUNK, RESORT_TRANSPARENCY}; private static final String __OBFID = "CL_00002464"; private static final ChunkCompileTaskGenerator.Type[] $VALUES$ = new ChunkCompileTaskGenerator.Type[]{REBUILD_CHUNK, RESORT_TRANSPARENCY}; private Type(String p_i46392_1_, int p_i46392_2_, String p_i46206_1_, int p_i46206_2_) {} } }