Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
lDEVinux
GitHub Repository: lDEVinux/eaglercraft
Path: blob/main/sp-server/src_aux/ChunkLoader.java
8641 views
1
package net.minecraft.src;
2
3
public class ChunkLoader {
4
public static AnvilConverterData load(NBTTagCompound par0NBTTagCompound) {
5
int var1 = par0NBTTagCompound.getInteger("xPos");
6
int var2 = par0NBTTagCompound.getInteger("zPos");
7
AnvilConverterData var3 = new AnvilConverterData(var1, var2);
8
var3.blocks = par0NBTTagCompound.getByteArray("Blocks");
9
var3.data = new NibbleArrayReader(par0NBTTagCompound.getByteArray("Data"), 7);
10
var3.skyLight = new NibbleArrayReader(par0NBTTagCompound.getByteArray("SkyLight"), 7);
11
var3.blockLight = new NibbleArrayReader(par0NBTTagCompound.getByteArray("BlockLight"), 7);
12
var3.heightmap = par0NBTTagCompound.getByteArray("HeightMap");
13
var3.terrainPopulated = par0NBTTagCompound.getBoolean("TerrainPopulated");
14
var3.entities = par0NBTTagCompound.getTagList("Entities");
15
var3.tileEntities = par0NBTTagCompound.getTagList("TileEntities");
16
var3.tileTicks = par0NBTTagCompound.getTagList("TileTicks");
17
18
try {
19
var3.lastUpdated = par0NBTTagCompound.getLong("LastUpdate");
20
} catch (ClassCastException var5) {
21
var3.lastUpdated = (long) par0NBTTagCompound.getInteger("LastUpdate");
22
}
23
24
return var3;
25
}
26
27
public static void convertToAnvilFormat(AnvilConverterData par0AnvilConverterData,
28
NBTTagCompound par1NBTTagCompound, WorldChunkManager par2WorldChunkManager) {
29
par1NBTTagCompound.setInteger("xPos", par0AnvilConverterData.x);
30
par1NBTTagCompound.setInteger("zPos", par0AnvilConverterData.z);
31
par1NBTTagCompound.setLong("LastUpdate", par0AnvilConverterData.lastUpdated);
32
int[] var3 = new int[par0AnvilConverterData.heightmap.length];
33
34
for (int var4 = 0; var4 < par0AnvilConverterData.heightmap.length; ++var4) {
35
var3[var4] = par0AnvilConverterData.heightmap[var4];
36
}
37
38
par1NBTTagCompound.setIntArray("HeightMap", var3);
39
par1NBTTagCompound.setBoolean("TerrainPopulated", par0AnvilConverterData.terrainPopulated);
40
NBTTagList var16 = new NBTTagList("Sections");
41
int var7;
42
43
for (int var5 = 0; var5 < 8; ++var5) {
44
boolean var6 = true;
45
46
for (var7 = 0; var7 < 16 && var6; ++var7) {
47
int var8 = 0;
48
49
while (var8 < 16 && var6) {
50
int var9 = 0;
51
52
while (true) {
53
if (var9 < 16) {
54
int var10 = var7 << 11 | var9 << 7 | var8 + (var5 << 4);
55
byte var11 = par0AnvilConverterData.blocks[var10];
56
57
if (var11 == 0) {
58
++var9;
59
continue;
60
}
61
62
var6 = false;
63
}
64
65
++var8;
66
break;
67
}
68
}
69
}
70
71
if (!var6) {
72
byte[] var19 = new byte[4096];
73
NibbleArray var20 = new NibbleArray(var19.length, 4);
74
NibbleArray var21 = new NibbleArray(var19.length, 4);
75
NibbleArray var22 = new NibbleArray(var19.length, 4);
76
77
for (int var23 = 0; var23 < 16; ++var23) {
78
for (int var12 = 0; var12 < 16; ++var12) {
79
for (int var13 = 0; var13 < 16; ++var13) {
80
int var14 = var23 << 11 | var13 << 7 | var12 + (var5 << 4);
81
byte var15 = par0AnvilConverterData.blocks[var14];
82
var19[var12 << 8 | var13 << 4 | var23] = (byte) (var15 & 255);
83
var20.set(var23, var12, var13,
84
par0AnvilConverterData.data.get(var23, var12 + (var5 << 4), var13));
85
var21.set(var23, var12, var13,
86
par0AnvilConverterData.skyLight.get(var23, var12 + (var5 << 4), var13));
87
var22.set(var23, var12, var13,
88
par0AnvilConverterData.blockLight.get(var23, var12 + (var5 << 4), var13));
89
}
90
}
91
}
92
93
NBTTagCompound var24 = new NBTTagCompound();
94
var24.setByte("Y", (byte) (var5 & 255));
95
var24.setByteArray("Blocks", var19);
96
var24.setByteArray("Data", var20.data);
97
var24.setByteArray("SkyLight", var21.data);
98
var24.setByteArray("BlockLight", var22.data);
99
var16.appendTag(var24);
100
}
101
}
102
103
par1NBTTagCompound.setTag("Sections", var16);
104
byte[] var17 = new byte[256];
105
106
for (int var18 = 0; var18 < 16; ++var18) {
107
for (var7 = 0; var7 < 16; ++var7) {
108
var17[var7 << 4
109
| var18] = (byte) (par2WorldChunkManager.getBiomeGenAt(par0AnvilConverterData.x << 4 | var18,
110
par0AnvilConverterData.z << 4 | var7).biomeID & 255);
111
}
112
}
113
114
par1NBTTagCompound.setByteArray("Biomes", var17);
115
par1NBTTagCompound.setTag("Entities", par0AnvilConverterData.entities);
116
par1NBTTagCompound.setTag("TileEntities", par0AnvilConverterData.tileEntities);
117
118
if (par0AnvilConverterData.tileTicks != null) {
119
par1NBTTagCompound.setTag("TileTicks", par0AnvilConverterData.tileTicks);
120
}
121
}
122
}
123
124