private OChunk a(OWorld oworld, ONBTTagCompound onbttagcompound) { int i = onbttagcompound.f("xPos"); int j = onbttagcompound.f("zPos"); OChunk ochunk = new OChunk(oworld, i, j); ochunk.f = onbttagcompound.l("HeightMap"); ochunk.k = onbttagcompound.o("TerrainPopulated"); ONBTTagList onbttaglist = onbttagcompound.n("Sections"); byte b0 = 16; OExtendedBlockStorage[] aoextendedblockstorage = new OExtendedBlockStorage[b0]; for (int k = 0; k < onbttaglist.d(); ++k) { ONBTTagCompound onbttagcompound1 = (ONBTTagCompound) onbttaglist.a(k); byte b1 = onbttagcompound1.d("Y"); OExtendedBlockStorage oextendedblockstorage = new OExtendedBlockStorage(b1 << 4); oextendedblockstorage.a(onbttagcompound1.k("Blocks")); if (onbttagcompound1.c("Add")) { oextendedblockstorage.a(new ONibbleArray(onbttagcompound1.k("Add"), 4)); } oextendedblockstorage.b(new ONibbleArray(onbttagcompound1.k("Data"), 4)); oextendedblockstorage.d(new ONibbleArray(onbttagcompound1.k("SkyLight"), 4)); oextendedblockstorage.c(new ONibbleArray(onbttagcompound1.k("BlockLight"), 4)); oextendedblockstorage.d(); aoextendedblockstorage[b1] = oextendedblockstorage; } ochunk.a(aoextendedblockstorage); if (onbttagcompound.c("Biomes")) { ochunk.a(onbttagcompound.k("Biomes")); } ONBTTagList onbttaglist1 = onbttagcompound.n("Entities"); if (onbttaglist1 != null) { for (int l = 0; l < onbttaglist1.d(); ++l) { ONBTTagCompound onbttagcompound2 = (ONBTTagCompound) onbttaglist1.a(l); OEntity oentity = OEntityList.a(onbttagcompound2, oworld); ochunk.m = true; if (oentity != null) { ochunk.a(oentity); } } } ONBTTagList onbttaglist2 = onbttagcompound.n("TileEntities"); if (onbttaglist2 != null) { for (int i1 = 0; i1 < onbttaglist2.d(); ++i1) { ONBTTagCompound onbttagcompound3 = (ONBTTagCompound) onbttaglist2.a(i1); OTileEntity otileentity = OTileEntity.c(onbttagcompound3); if (otileentity != null) { ochunk.a(otileentity); } } } if (onbttagcompound.c("TileTicks")) { ONBTTagList onbttaglist3 = onbttagcompound.n("TileTicks"); if (onbttaglist3 != null) { for (int j1 = 0; j1 < onbttaglist3.d(); ++j1) { ONBTTagCompound onbttagcompound4 = (ONBTTagCompound) onbttaglist3.a(j1); oworld.d( onbttagcompound4.f("x"), onbttagcompound4.f("y"), onbttagcompound4.f("z"), onbttagcompound4.f("i"), onbttagcompound4.f("t")); } } } return ochunk; }
private void a(OChunk ochunk, OWorld oworld, ONBTTagCompound onbttagcompound) { oworld.m(); onbttagcompound.a("xPos", ochunk.g); onbttagcompound.a("zPos", ochunk.h); onbttagcompound.a("LastUpdate", oworld.o()); onbttagcompound.a("HeightMap", ochunk.f); onbttagcompound.a("TerrainPopulated", ochunk.k); OExtendedBlockStorage[] aoextendedblockstorage = ochunk.h(); ONBTTagList onbttaglist = new ONBTTagList("Sections"); OExtendedBlockStorage[] aoextendedblockstorage1 = aoextendedblockstorage; int i = aoextendedblockstorage.length; ONBTTagCompound onbttagcompound1; for (int j = 0; j < i; ++j) { OExtendedBlockStorage oextendedblockstorage = aoextendedblockstorage1[j]; if (oextendedblockstorage != null && oextendedblockstorage.f() != 0) { onbttagcompound1 = new ONBTTagCompound(); onbttagcompound1.a("Y", (byte) (oextendedblockstorage.c() >> 4 & 255)); onbttagcompound1.a("Blocks", oextendedblockstorage.g()); if (oextendedblockstorage.h() != null) { onbttagcompound1.a("Add", oextendedblockstorage.h().a); } onbttagcompound1.a("Data", oextendedblockstorage.i().a); onbttagcompound1.a("SkyLight", oextendedblockstorage.k().a); onbttagcompound1.a("BlockLight", oextendedblockstorage.j().a); onbttaglist.a((ONBTBase) onbttagcompound1); } } onbttagcompound.a("Sections", (ONBTBase) onbttaglist); onbttagcompound.a("Biomes", ochunk.l()); ochunk.m = false; ONBTTagList onbttaglist1 = new ONBTTagList(); Iterator iterator; for (i = 0; i < ochunk.j.length; ++i) { iterator = ochunk.j[i].iterator(); while (iterator.hasNext()) { OEntity oentity = (OEntity) iterator.next(); ochunk.m = true; onbttagcompound1 = new ONBTTagCompound(); if (oentity.c(onbttagcompound1)) { onbttaglist1.a((ONBTBase) onbttagcompound1); } } } onbttagcompound.a("Entities", (ONBTBase) onbttaglist1); ONBTTagList onbttaglist2 = new ONBTTagList(); iterator = ochunk.i.values().iterator(); while (iterator.hasNext()) { OTileEntity otileentity = (OTileEntity) iterator.next(); onbttagcompound1 = new ONBTTagCompound(); otileentity.b(onbttagcompound1); onbttaglist2.a((ONBTBase) onbttagcompound1); } onbttagcompound.a("TileEntities", (ONBTBase) onbttaglist2); List list = oworld.a(ochunk, false); if (list != null) { long k = oworld.o(); ONBTTagList onbttaglist3 = new ONBTTagList(); Iterator iterator1 = list.iterator(); while (iterator1.hasNext()) { ONextTickListEntry onextticklistentry = (ONextTickListEntry) iterator1.next(); ONBTTagCompound onbttagcompound2 = new ONBTTagCompound(); onbttagcompound2.a("i", onextticklistentry.d); onbttagcompound2.a("x", onextticklistentry.a); onbttagcompound2.a("y", onextticklistentry.b); onbttagcompound2.a("z", onextticklistentry.c); onbttagcompound2.a("t", (int) (onextticklistentry.e - k)); onbttaglist3.a((ONBTBase) onbttagcompound2); } onbttagcompound.a("TileTicks", (ONBTBase) onbttaglist3); } }