14 foreach (XElement item
in from e
in projectNode.Element(
"Subsystems").Elements()
17 foreach (XElement item2
in from e
in item.Elements(
"Values")
20 foreach (XElement item3
in item2.Elements(
"Values")) {
21 foreach (XElement item4
in from e
in item3.Elements(
"Value")
30 foreach (XElement item5
in from e
in projectNode.Element(
"Subsystems").Elements()
33 foreach (XElement item6
in from e
in item5.Elements(
"Values")
36 foreach (XElement item7
in item6.Elements(
"Values")) {
37 foreach (XElement item8
in from e
in item7.Elements(
"Value")
46 foreach (XElement item9
in from e
in projectNode.Element(
"Subsystems").Elements()
49 foreach (XElement item10
in from e
in item9.Elements(
"Values")
52 foreach (XElement item11
in item10.Elements(
"Values")) {
53 foreach (XElement item12
in from e
in item11.Elements(
"Value")
62 foreach (XElement item13
in projectNode.Element(
"Entities").Elements()) {
63 foreach (XElement item14
in from e
in item13.Elements(
"Values")
66 foreach (XElement item15
in from e
in item14.Elements(
"Values")
69 foreach (XElement item16
in item15.Elements()) {
72 for (
int i = 0; i < array.Length; i++) {
81 string[] inventoryNames = [
"Inventory",
"CreativeInventory",
"CraftingTable",
"Chest",
"Furnace",
"Dispenser"];
82 foreach (XElement item17
in projectNode.Element(
"Entities").Elements()) {
83 foreach (XElement item18
in from e
in item17.Elements(
"Values")
86 foreach (XElement item19
in from e
in item18.Elements(
"Values")
89 foreach (XElement item20
in item19.Elements()) {
90 foreach (XElement item21
in from e
in item20.Elements(
"Value")
124 byte[] array =
new byte[65536];
125 byte[] array2 =
new byte[131072];
126 for (
int i = 0; i < 65537; i++) {
131 stream2.Position = 12 * num;
136 stream.Position = 12 * num;
138 stream2.Position = offset;
139 stream.Position = stream.Length;
142 stream2.ReadExactly(array, 0, 65536);
144 for (
int j = 0; j < 16; j++) {
145 for (
int k = 0; k < 16; k++) {
146 for (
int l = 0; l < 128; l++) {
147 int num3 = array[2 * num2] | (array[2 * num2 + 1] << 8);
150 int num5 = num3 & 0xFF;
153 int num6 = (array[2 * num2 + 2] | (array[2 * num2 + 3] << 8)) & 0xFF;
159 array2[4 * num2] = (byte)num4;
160 array2[4 * num2 + 1] = (byte)(num4 >> 8);
161 array2[4 * num2 + 2] = (byte)(num4 >> 16);
162 array2[4 * num2 + 3] = (byte)(num4 >> 24);
167 stream.Write(array2, 0, 131072);
168 stream2.ReadExactly(array, 0, 1024);
169 stream.Write(array, 0, 1024);
178 int contents = value & 0xFF;
179 int light = (value >> 8) & 0xF;
180 int data = value >> 12;
182 return contents | (light << 10) | (data << 14);
187 && contents <= 136) {
188 data |= (contents - 133) << 4;
192 if (contents == 152) {
194 int num2 = (data >> 1) & 7;
195 int num3 = num == 0 ? 2 : 5;
196 data = num2 | (num3 << 3);
199 if (contents == 182) {
201 int num5 = (data >> 1) & 7;
202 int num6 = num4 == 0 ? 3 : 0;
203 data = num5 | (num6 << 3);
206 if (contents == 185) {
208 int num8 = (data >> 2) & 3;
219 data = num8 | (num9 << 3);
222 if (contents == 139) {
223 int num10 = data & 1;
224 int num11 = (data >> 1) & 7;
225 int num12 = num10 * 15;
226 data = num11 | (num12 << 3);
229 if (contents == 128) {
231 data = (data << 1) | 1;
233 if (contents == 163) {
235 data = (data << 1) | 1;
237 if (contents == 164) {
239 data = (data << 1) | 1;
241 if (contents == 165) {
243 data = (data << 1) | 1;
static Stream OpenFile(string path, OpenFileMode openFileMode)
static void DeleteFile(string path)
static string CombinePaths(params string[] paths)
static void WriteTOCEntry(Stream stream, int cx, int cz, int index)
static void WriteChunkHeader(Stream stream, int cx, int cz)
static void ReadChunkHeader(Stream stream)
static void ReadTOCEntry(Stream stream, out int cx, out int cz, out int offset)
void ConvertProject(string directoryName)
override string TargetVersion
override void ConvertWorld(string directoryName)
override string SourceVersion
static void ConvertContentsLightData(ref int contents, ref int light, ref int data)
override void ConvertProjectXml(XElement projectNode)
void ConvertChunks(string directoryName)
static int ConvertValue(int value)
static void SetAttributeValue(XElement node, string attributeName, object value)
static object GetAttributeValue(XElement node, string attributeName, Type type)
static XElement LoadXmlFromStream(Stream stream, Encoding encoding, bool throwOnError)
static void SaveXmlToStream(XElement node, Stream stream, Encoding encoding, bool throwOnError)