예제 #1
0
  /** Recursively called by generate() (generate) and optionally by itself. */
  protected void recursiveGenerate(
      World par1World, int par2, int par3, int par4, int par5, byte[] par6ArrayOfByte) {
    if (!this.structureMap.containsKey(Long.valueOf(ChunkCoordIntPair.chunkXZ2Int(par2, par3)))) {
      this.rand.nextInt();

      try {
        if (this.canSpawnStructureAtCoords(par2, par3)) {
          StructureStart var7 = this.getStructureStart(par2, par3);
          this.structureMap.put(Long.valueOf(ChunkCoordIntPair.chunkXZ2Int(par2, par3)), var7);
        }
      } catch (Throwable var10) {
        CrashReport var8 =
            CrashReport.makeCrashReport(var10, "Exception preparing structure feature");
        CrashReportCategory var9 = var8.makeCategory("Feature being prepared");
        var9.addCrashSectionCallable(
            "Is feature chunk", new CallableIsFeatureChunk(this, par2, par3));
        var9.addCrashSection(
            "Chunk location",
            String.format("%d,%d", new Object[] {Integer.valueOf(par2), Integer.valueOf(par3)}));
        var9.addCrashSectionCallable("Chunk pos hash", new CallableChunkPosHash(this, par2, par3));
        var9.addCrashSectionCallable("Structure type", new CallableStructureType(this));
        throw new ReportedException(var8);
      }
    }
  }
예제 #2
0
 public static void func_85068_a(
     CrashReportCategory p_85068_0_,
     int p_85068_1_,
     int p_85068_2_,
     int p_85068_3_,
     int p_85068_4_,
     int p_85068_5_) {
   p_85068_0_.func_71500_a("Block type", new CallableBlockType(p_85068_4_));
   p_85068_0_.func_71500_a("Block data value", new CallableBlockDataValue(p_85068_5_));
   p_85068_0_.func_71500_a(
       "Block location", new CallableBlockLocation(p_85068_1_, p_85068_2_, p_85068_3_));
 }
예제 #3
0
 public static void func_85068_a(
     CrashReportCategory par0CrashReportCategory,
     int par1,
     int par2,
     int par3,
     int par4,
     int par5) {
   par0CrashReportCategory.addCrashSectionCallable("Block type", new CallableBlockType(par4));
   par0CrashReportCategory.addCrashSectionCallable(
       "Block data value", new CallableBlockDataValue(par5));
   par0CrashReportCategory.addCrashSectionCallable(
       "Block location", new CallableBlockLocation(par1, par2, par3));
 }
예제 #4
0
  private CrashReport func_82581_a(
      String p_82581_1_, int p_82581_2_, ClassCastException p_82581_3_) {
    CrashReport var4 = CrashReport.func_85055_a(p_82581_3_, "Reading NBT data");
    CrashReportCategory var5 = var4.func_85057_a("Corrupt NBT tag", 1);
    var5.func_71500_a("Tag type found", new CallableTagCompound1(this, p_82581_1_));
    var5.func_71500_a("Tag type expected", new CallableTagCompound2(this, p_82581_2_));
    var5.func_71507_a("Tag name", p_82581_1_);
    if (this.func_74740_e() != null && this.func_74740_e().length() > 0) {
      var5.func_71507_a("Tag parent", this.func_74740_e());
    }

    return var4;
  }
예제 #5
0
 public void func_85027_a(CrashReportCategory par1CrashReportCategory) {
   par1CrashReportCategory.addCrashSectionCallable("Name", new CallableTileEntityName(this));
   CrashReportCategory.func_85068_a(
       par1CrashReportCategory,
       this.xCoord,
       this.yCoord,
       this.zCoord,
       this.getBlockType().blockID,
       this.getBlockMetadata());
   par1CrashReportCategory.addCrashSectionCallable(
       "Actual block type", new CallableTileEntityID(this));
   par1CrashReportCategory.addCrashSectionCallable(
       "Actual block data value", new CallableTileEntityData(this));
 }
예제 #6
0
 public void func_85118_a(CrashReportCategory p_85118_1_) {
   p_85118_1_.func_71500_a("Level seed", new CallableLevelSeed(this));
   p_85118_1_.func_71500_a("Level generator", new CallableLevelGenerator(this));
   p_85118_1_.func_71500_a("Level generator options", new CallableLevelGeneratorOptions(this));
   p_85118_1_.func_71500_a("Level spawn location", new CallableLevelSpawnLocation(this));
   p_85118_1_.func_71500_a("Level time", new CallableLevelTime(this));
   p_85118_1_.func_71500_a("Level dimension", new CallableLevelDimension(this));
   p_85118_1_.func_71500_a("Level storage version", new CallableLevelStorageVersion(this));
   p_85118_1_.func_71500_a("Level weather", new CallableLevelWeather(this));
   p_85118_1_.func_71500_a("Level game mode", new CallableLevelGamemode(this));
 }
예제 #7
0
 /** Adds this WorldInfo instance to the crash report. */
 public void addToCrashReport(CrashReportCategory par1CrashReportCategory) {
   par1CrashReportCategory.addCrashSectionCallable("Level seed", new CallableLevelSeed(this));
   par1CrashReportCategory.addCrashSectionCallable(
       "Level generator", new CallableLevelGenerator(this));
   par1CrashReportCategory.addCrashSectionCallable(
       "Level generator options", new CallableLevelGeneratorOptions(this));
   par1CrashReportCategory.addCrashSectionCallable(
       "Level spawn location", new CallableLevelSpawnLocation(this));
   par1CrashReportCategory.addCrashSectionCallable("Level time", new CallableLevelTime(this));
   par1CrashReportCategory.addCrashSectionCallable(
       "Level dimension", new CallableLevelDimension(this));
   par1CrashReportCategory.addCrashSectionCallable(
       "Level storage version", new CallableLevelStorageVersion(this));
   par1CrashReportCategory.addCrashSectionCallable(
       "Level weather", new CallableLevelWeather(this));
   par1CrashReportCategory.addCrashSectionCallable(
       "Level game mode", new CallableLevelGamemode(this));
 }
예제 #8
0
  public void func_72567_b(Packet p_72567_1_) {
    if (p_72567_1_ instanceof Packet3Chat) {
      Packet3Chat var2 = (Packet3Chat) p_72567_1_;
      int var3 = this.field_72574_e.func_71126_v();
      if (var3 == 2) {
        return;
      }

      if (var3 == 1 && !var2.func_73475_d()) {
        return;
      }
    }

    try {
      this.field_72575_b.func_74429_a(p_72567_1_);
    } catch (Throwable var5) {
      CrashReport var6 = CrashReport.func_85055_a(var5, "Sending packet");
      CrashReportCategory var4 = var6.func_85058_a("Packet being sent");
      var4.func_71500_a("Packet ID", new CallablePacketID(this, p_72567_1_));
      var4.func_71500_a("Packet class", new CallablePacketClass(this, p_72567_1_));
      throw new ReportedException(var6);
    }
  }
예제 #9
0
 public CrashReportCategory func_72914_a(CrashReport p_72914_1_) {
   CrashReportCategory var2 = super.func_72914_a(p_72914_1_);
   var2.func_71500_a("Forced entities", new CallableMPL1(this));
   var2.func_71500_a("Retry entities", new CallableMPL2(this));
   return var2;
 }
 public String func_85097_a() {
   return CrashReportCategory.func_85074_a(
       this.field_85101_a, this.field_85099_b, this.field_85100_c);
 }
예제 #11
0
  /** Runs through the list of updates to run and ticks them */
  public boolean tickUpdates(boolean par1) {
    int var2 = this.pendingTickListEntriesTreeSet.size();

    if (var2 != this.pendingTickListEntriesHashSet.size()) {
      throw new IllegalStateException("TickNextTick list out of synch");
    } else {
      if (var2 > 1000) {
        var2 = 1000;
      }

      this.theProfiler.startSection("cleaning");
      NextTickListEntry var4;

      for (int var3 = 0; var3 < var2; ++var3) {
        var4 = (NextTickListEntry) this.pendingTickListEntriesTreeSet.first();

        if (!par1 && var4.scheduledTime > this.worldInfo.getWorldTotalTime()) {
          break;
        }

        this.pendingTickListEntriesTreeSet.remove(var4);
        this.pendingTickListEntriesHashSet.remove(var4);
        this.pendingTickListEntriesThisTick.add(var4);
      }

      this.theProfiler.endSection();
      this.theProfiler.startSection("ticking");
      Iterator var14 = this.pendingTickListEntriesThisTick.iterator();

      while (var14.hasNext()) {
        var4 = (NextTickListEntry) var14.next();
        var14.remove();
        byte var5 = 0;

        if (this.checkChunksExist(
            var4.xCoord - var5,
            var4.yCoord - var5,
            var4.zCoord - var5,
            var4.xCoord + var5,
            var4.yCoord + var5,
            var4.zCoord + var5)) {
          int var6 = this.getBlockId(var4.xCoord, var4.yCoord, var4.zCoord);

          if (var6 > 0 && Block.isAssociatedBlockID(var6, var4.blockID)) {
            try {
              Block.blocksList[var6].updateTick(
                  this, var4.xCoord, var4.yCoord, var4.zCoord, this.rand);
            } catch (Throwable var13) {
              CrashReport var8 =
                  CrashReport.makeCrashReport(var13, "Exception while ticking a block");
              CrashReportCategory var9 = var8.makeCategory("Block being ticked");
              int var10;

              try {
                var10 = this.getBlockMetadata(var4.xCoord, var4.yCoord, var4.zCoord);
              } catch (Throwable var12) {
                var10 = -1;
              }

              CrashReportCategory.func_85068_a(
                  var9, var4.xCoord, var4.yCoord, var4.zCoord, var6, var10);
              throw new ReportedException(var8);
            }
          }
        } else {
          this.scheduleBlockUpdate(var4.xCoord, var4.yCoord, var4.zCoord, var4.blockID, 0);
        }
      }

      this.theProfiler.endSection();
      this.pendingTickListEntriesThisTick.clear();
      return !this.pendingTickListEntriesTreeSet.isEmpty();
    }
  }
예제 #12
0
 public CrashReportCategory addWorldInfoToCrashReport(CrashReport par1CrashReport) {
   CrashReportCategory var2 = super.addWorldInfoToCrashReport(par1CrashReport);
   var2.addCrashSectionCallable("Forced entities", new CallableMPL1(this));
   var2.addCrashSectionCallable("Retry entities", new CallableMPL2(this));
   return var2;
 }