public class_apc(WorldServer var1, NBTTagCompound var2) {
    this.c =
        new class_le(
            new ChatMessage("entity.EnderDragon.name", new Object[0]),
            class_oh.class_a_in_class_oh.a,
            class_oh.class_b_in_class_oh.a,
            false,
            true);
    this.e = Lists.newArrayList();
    this.g = 0;
    this.h = 0;
    this.i = 0;
    this.j = 0;
    this.k = false;
    this.l = false;
    this.m = null;
    this.n = false;
    this.d = var1;
    if (var2.hasOfType("DragonKilled", 1)) {
      this.m = var2.getUUID("DragonUUID");
      this.k = var2.getBoolean("DragonKilled");
      this.l = var2.getBoolean("PreviouslyKilled");
    } else {
      this.n = true;
      this.k = true;
      this.l = true;
    }

    if (var2.hasOfType("Gateways", 9)) {
      NBTTagList var3 = var2.getList("Gateways", 3);

      for (int var4 = 0; var4 < var3.getSize(); ++var4) {
        this.e.add(Integer.valueOf(var3.getInt(var4)));
      }
    } else {
      this.e.addAll(
          ContiguousSet.create(
              Range.closedOpen(Integer.valueOf(0), Integer.valueOf(20)),
              DiscreteDomain.integers()));
      Collections.shuffle(this.e, new Random(var1.K()));
    }

    this.f =
        class_anq
            .a()
            .a(
                new String[] {
                  "       ", "       ", "       ", "   #   ", "       ", "       ", "       "
                })
            .a(
                new String[] {
                  "       ", "       ", "       ", "   #   ", "       ", "       ", "       "
                })
            .a(
                new String[] {
                  "       ", "       ", "       ", "   #   ", "       ", "       ", "       "
                })
            .a(
                new String[] {
                  "  ###  ", " #   # ", "#     #", "#  #  #", "#     #", " #   # ", "  ###  "
                })
            .a(
                new String[] {
                  "       ", "  ###  ", " ##### ", " ##### ", " ##### ", "  ###  ", "       "
                })
            .a('#', class_ano.a(class_ans.a(Blocks.BEDROCK)))
            .b();
  }