diff --git a/AnvilFile/AnvilFile.csproj b/AnvilFile/AnvilFile.csproj index b7a9dd4..4673fdb 100644 --- a/AnvilFile/AnvilFile.csproj +++ b/AnvilFile/AnvilFile.csproj @@ -1,68 +1,88 @@ - - - - Debug - AnyCPU - 8.0.30703 - 2.0 - {56645ABF-CDDD-435E-845F-BF5AA422AF80} - Library - Properties - com.mc2k.AnvilFile - AnvilFile - v4.0 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {56645ABF-CDDD-435E-845F-BF5AA422AF80} + Library + Properties + com.mc2k.AnvilFile + AnvilFile + v4.0 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + true + bin\x64\Debug\ + DEBUG;TRACE + full + x64 + 7.3 + prompt + MinimumRecommendedRules.ruleset + + + bin\x64\Release\ + TRACE + true + pdbonly + x64 + 7.3 + prompt + MinimumRecommendedRules.ruleset + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + --> \ No newline at end of file diff --git a/MineCity2000-GUI/MineCity2000-GUI.csproj b/MineCity2000-GUI/MineCity2000-GUI.csproj index 8e04bd3..8bccb2a 100644 --- a/MineCity2000-GUI/MineCity2000-GUI.csproj +++ b/MineCity2000-GUI/MineCity2000-GUI.csproj @@ -1,148 +1,168 @@ - - - - Debug - x86 - 8.0.30703 - 2.0 - {FCF302D8-FE31-4FE7-A6BB-162ADA516E72} - WinExe - Properties - com.mc2k.gui - MineCity2000-GUI - v4.7.2 - - - 512 - false - C:\Users\Jernej\Desktop\publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 1 - 1.0.0.%2a - false - true - true - - - x86 - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - false - - - x86 - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - false - - - B332452B16595577205050FA73D33D6861FB5DB0 - - - MineCity2000_TemporaryKey.pfx - - - true - - - false - - - - - - - - - - - - - - - - Form - - - MineCity2000.cs - - - - - MineCity2000.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - False - Microsoft .NET Framework 4 Client Profile %28x86 and x64%29 - true - - - False - .NET Framework 3.5 SP1 Client Profile - false - - - False - .NET Framework 3.5 SP1 - false - - - False - Windows Installer 3.1 - true - - - - - {79bb814a-ada6-4c32-9760-87d9a822deaa} - MineCity2000 - - - + + + + Debug + x86 + 8.0.30703 + 2.0 + {FCF302D8-FE31-4FE7-A6BB-162ADA516E72} + WinExe + Properties + com.mc2k.gui + MineCity2000-GUI + v4.7.2 + + + 512 + false + C:\Users\Jernej\Desktop\publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 1 + 1.0.0.%2a + false + true + true + + + x86 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + false + + + x86 + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + false + + + B332452B16595577205050FA73D33D6861FB5DB0 + + + MineCity2000_TemporaryKey.pfx + + + true + + + false + + + true + bin\x64\Debug\ + DEBUG;TRACE + full + x64 + 7.3 + prompt + MinimumRecommendedRules.ruleset + + + bin\x64\Release\ + TRACE + true + pdbonly + x64 + 7.3 + prompt + MinimumRecommendedRules.ruleset + + + + + + + + + + + + + + + + Form + + + MineCity2000.cs + + + + + MineCity2000.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + False + Microsoft .NET Framework 4 Client Profile %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + {79bb814a-ada6-4c32-9760-87d9a822deaa} + MineCity2000 + + + + --> \ No newline at end of file diff --git a/MineCity2000-GUI/MineCity2000.Designer.cs b/MineCity2000-GUI/MineCity2000.Designer.cs index 4bbdd14..d6039a7 100644 --- a/MineCity2000-GUI/MineCity2000.Designer.cs +++ b/MineCity2000-GUI/MineCity2000.Designer.cs @@ -28,123 +28,140 @@ protected override void Dispose(bool disposing) /// private void InitializeComponent() { - this.label1 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); - this.button1 = new System.Windows.Forms.Button(); - this.folderBrowserDialog1 = new System.Windows.Forms.FolderBrowserDialog(); - this.button2 = new System.Windows.Forms.Button(); - this.label3 = new System.Windows.Forms.Label(); - this.statusLabel = new System.Windows.Forms.Label(); - this.button3 = new System.Windows.Forms.Button(); - this.sCFileLabel = new System.Windows.Forms.Label(); - this.mCDirLabel = new System.Windows.Forms.Label(); - this.SuspendLayout(); - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(12, 19); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(205, 17); - this.label1.TabIndex = 0; - this.label1.Text = "Choose a SimCity 2000 city file:"; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(12, 45); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(213, 17); - this.label2.TabIndex = 1; - this.label2.Text = "Choose your Minecraft directory:"; - // - // openFileDialog1 - // - this.openFileDialog1.FileName = "openFileDialog1"; - // - // button1 - // - this.button1.Location = new System.Drawing.Point(223, 12); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(75, 23); - this.button1.TabIndex = 2; - this.button1.Text = "Browse"; - this.button1.UseVisualStyleBackColor = true; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // button2 - // - this.button2.Location = new System.Drawing.Point(223, 45); - this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(75, 23); - this.button2.TabIndex = 3; - this.button2.Text = "Browse"; - this.button2.UseVisualStyleBackColor = true; - this.button2.Click += new System.EventHandler(this.button2_Click); - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(12, 104); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(52, 17); - this.label3.TabIndex = 4; - this.label3.Text = "Status:"; - // - // statusLabel - // - this.statusLabel.AutoSize = true; - this.statusLabel.Location = new System.Drawing.Point(70, 104); - this.statusLabel.Name = "statusLabel"; - this.statusLabel.Size = new System.Drawing.Size(0, 17); - this.statusLabel.TabIndex = 5; - // - // button3 - // - this.button3.Location = new System.Drawing.Point(15, 78); - this.button3.Name = "button3"; - this.button3.Size = new System.Drawing.Size(75, 23); - this.button3.TabIndex = 6; - this.button3.Text = "Convert!"; - this.button3.UseVisualStyleBackColor = true; - this.button3.Click += new System.EventHandler(this.button3_Click); - // - // sCFileLabel - // - this.sCFileLabel.AutoSize = true; - this.sCFileLabel.Location = new System.Drawing.Point(305, 17); - this.sCFileLabel.Name = "sCFileLabel"; - this.sCFileLabel.Size = new System.Drawing.Size(0, 17); - this.sCFileLabel.TabIndex = 7; - // - // mCDirLabel - // - this.mCDirLabel.AutoSize = true; - this.mCDirLabel.Location = new System.Drawing.Point(304, 51); - this.mCDirLabel.Name = "mCDirLabel"; - this.mCDirLabel.Size = new System.Drawing.Size(0, 17); - this.mCDirLabel.TabIndex = 8; - // - // MineCity2000 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(637, 407); - this.Controls.Add(this.mCDirLabel); - this.Controls.Add(this.sCFileLabel); - this.Controls.Add(this.button3); - this.Controls.Add(this.statusLabel); - this.Controls.Add(this.label3); - this.Controls.Add(this.button2); - this.Controls.Add(this.button1); - this.Controls.Add(this.label2); - this.Controls.Add(this.label1); - this.Name = "MineCity2000"; - this.Text = "MineCity 2000"; - this.ResumeLayout(false); - this.PerformLayout(); - + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); + this.button1 = new System.Windows.Forms.Button(); + this.folderBrowserDialog1 = new System.Windows.Forms.FolderBrowserDialog(); + this.button2 = new System.Windows.Forms.Button(); + this.label3 = new System.Windows.Forms.Label(); + this.statusLabel = new System.Windows.Forms.Label(); + this.button3 = new System.Windows.Forms.Button(); + this.sCFileLabel = new System.Windows.Forms.Label(); + this.mCDirLabel = new System.Windows.Forms.Label(); + this.fillUndergroundArea = new System.Windows.Forms.CheckBox(); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(14, 24); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(229, 20); + this.label1.TabIndex = 0; + this.label1.Text = "Choose a SimCity 2000 city file:"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(14, 56); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(236, 20); + this.label2.TabIndex = 1; + this.label2.Text = "Choose your Minecraft directory:"; + // + // openFileDialog1 + // + this.openFileDialog1.FileName = "openFileDialog1"; + // + // button1 + // + this.button1.Location = new System.Drawing.Point(251, 15); + this.button1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(84, 29); + this.button1.TabIndex = 2; + this.button1.Text = "Browse"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // button2 + // + this.button2.Location = new System.Drawing.Point(251, 56); + this.button2.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(84, 29); + this.button2.TabIndex = 3; + this.button2.Text = "Browse"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(14, 159); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(60, 20); + this.label3.TabIndex = 4; + this.label3.Text = "Status:"; + // + // statusLabel + // + this.statusLabel.AutoSize = true; + this.statusLabel.Location = new System.Drawing.Point(80, 159); + this.statusLabel.Name = "statusLabel"; + this.statusLabel.Size = new System.Drawing.Size(0, 20); + this.statusLabel.TabIndex = 5; + // + // button3 + // + this.button3.Location = new System.Drawing.Point(18, 126); + this.button3.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(84, 29); + this.button3.TabIndex = 6; + this.button3.Text = "Convert!"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click); + // + // sCFileLabel + // + this.sCFileLabel.AutoSize = true; + this.sCFileLabel.Location = new System.Drawing.Point(343, 21); + this.sCFileLabel.Name = "sCFileLabel"; + this.sCFileLabel.Size = new System.Drawing.Size(0, 20); + this.sCFileLabel.TabIndex = 7; + // + // mCDirLabel + // + this.mCDirLabel.AutoSize = true; + this.mCDirLabel.Location = new System.Drawing.Point(342, 64); + this.mCDirLabel.Name = "mCDirLabel"; + this.mCDirLabel.Size = new System.Drawing.Size(0, 20); + this.mCDirLabel.TabIndex = 8; + // + // fillUndergroundArea + // + this.fillUndergroundArea.AutoSize = true; + this.fillUndergroundArea.Location = new System.Drawing.Point(18, 95); + this.fillUndergroundArea.Name = "fillUndergroundArea"; + this.fillUndergroundArea.Size = new System.Drawing.Size(185, 24); + this.fillUndergroundArea.TabIndex = 9; + this.fillUndergroundArea.Text = "Fill underground area"; + this.fillUndergroundArea.UseVisualStyleBackColor = true; + this.fillUndergroundArea.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged); + // + // MineCity2000 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(717, 509); + this.Controls.Add(this.fillUndergroundArea); + this.Controls.Add(this.mCDirLabel); + this.Controls.Add(this.sCFileLabel); + this.Controls.Add(this.button3); + this.Controls.Add(this.statusLabel); + this.Controls.Add(this.label3); + this.Controls.Add(this.button2); + this.Controls.Add(this.button1); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.Name = "MineCity2000"; + this.Text = "MineCity 2000"; + this.ResumeLayout(false); + this.PerformLayout(); + } #endregion @@ -159,7 +176,8 @@ private void InitializeComponent() private System.Windows.Forms.Label statusLabel; private System.Windows.Forms.Button button3; private System.Windows.Forms.Label sCFileLabel; - private System.Windows.Forms.Label mCDirLabel; + private System.Windows.Forms.Label mCDirLabel; + private System.Windows.Forms.CheckBox fillUndergroundArea; } } diff --git a/MineCity2000-GUI/MineCity2000.cs b/MineCity2000-GUI/MineCity2000.cs index 64bcb85..e9f5986 100644 --- a/MineCity2000-GUI/MineCity2000.cs +++ b/MineCity2000-GUI/MineCity2000.cs @@ -16,6 +16,7 @@ public partial class MineCity2000 : Form { String inputFile = null; String outputDir = null; + Boolean fillUnderground = false; String buildingsDir = null; SCMapper mapper = null; private BackgroundWorker bw = new BackgroundWorker(); @@ -36,10 +37,14 @@ public MineCity2000() bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted); String workingDir = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); + String[] debugPaths = new string[2] { "\\MineCity2000-GUI\\bin\\Debug", "\\MineCity2000-GUI\\bin\\x64\\Debug" }; - if (workingDir.Contains("\\MineCity2000-GUI\\bin\\Debug")) + foreach (string debugPath in debugPaths) { - workingDir = workingDir.Replace("\\MineCity2000-GUI\\bin\\Debug", ""); + if (workingDir.Contains(debugPath)) + { + workingDir = workingDir.Replace(debugPath, ""); + } } buildingsDir = workingDir + "\\buildings"; @@ -108,7 +113,8 @@ private void bw_DoWork(object sender, DoWorkEventArgs e) mapper = new SCMapper(buildingsDir); mapper.Worker = worker; - mapper.makeMap(inputFile, outputDir); + MapperOptions options = new MapperOptions(fillUnderground); + mapper.makeMap(inputFile, outputDir, options); } private void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { @@ -132,5 +138,10 @@ private void bw_ProgressChanged(object sender, ProgressChangedEventArgs e) { statusLabel.Text = (e.ProgressPercentage.ToString() + "%"); } + + private void checkBox1_CheckedChanged(object sender, EventArgs e) + { + fillUnderground = ((CheckBox)sender).Checked; + } } } diff --git a/MineCity2000-GUI/MineCity2000.resx b/MineCity2000-GUI/MineCity2000.resx index 899612d..9881699 100644 --- a/MineCity2000-GUI/MineCity2000.resx +++ b/MineCity2000-GUI/MineCity2000.resx @@ -1,126 +1,126 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 180, 17 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 180, 17 + \ No newline at end of file diff --git a/MineCity2000/MapperOptions.cs b/MineCity2000/MapperOptions.cs new file mode 100644 index 0000000..4fa7bdf --- /dev/null +++ b/MineCity2000/MapperOptions.cs @@ -0,0 +1,13 @@ +using System; + +namespace com.mc2k.MineCity2000 +{ + public class MapperOptions + { + public Boolean fillUnderground; + + public MapperOptions(Boolean fillUnderground) { + this.fillUnderground = fillUnderground; + } + } +} diff --git a/MineCity2000/MineCity2000.csproj b/MineCity2000/MineCity2000.csproj index f8a8711..c9aa4b2 100644 --- a/MineCity2000/MineCity2000.csproj +++ b/MineCity2000/MineCity2000.csproj @@ -33,6 +33,26 @@ prompt 4 + + true + bin\x64\Debug\ + DEBUG;TRACE + full + x64 + 7.3 + prompt + MinimumRecommendedRules.ruleset + + + bin\x64\Release\ + TRACE + true + pdbonly + x64 + 7.3 + prompt + MinimumRecommendedRules.ruleset + @@ -45,6 +65,7 @@ + diff --git a/MineCity2000/Program.cs b/MineCity2000/Program.cs index 67fe30f..2780912 100644 --- a/MineCity2000/Program.cs +++ b/MineCity2000/Program.cs @@ -18,7 +18,8 @@ static void Main(string[] args) String buildingsDir = @"..\..\..\buildings"; SCMapper mapper = new SCMapper(buildingsDir); - mapper.makeMap(inputFile, outputDir); + MapperOptions options = new MapperOptions(true); + mapper.makeMap(inputFile, outputDir, options); } } } diff --git a/MineCity2000/SCMapper.cs b/MineCity2000/SCMapper.cs index 82550ec..3970752 100644 --- a/MineCity2000/SCMapper.cs +++ b/MineCity2000/SCMapper.cs @@ -37,7 +37,7 @@ public BackgroundWorker Worker set { _worker = value; } } - public void makeMap(String inputFile, String outputDir) + public void makeMap(String inputFile, String outputDir, MapperOptions options) { _progress = 0; reportProgress(); @@ -65,7 +65,7 @@ public void makeMap(String inputFile, String outputDir) reportProgress(); //map - createCityRegions(outputDir, data, terrainHeights); + createCityRegions(outputDir, data, terrainHeights, options); createBorderRegions(outputDir); @@ -73,14 +73,14 @@ public void makeMap(String inputFile, String outputDir) reportProgress(); } - private void createCityRegions(String outputDir, CityData data, int[][] terrainHeights) + private void createCityRegions(String outputDir, CityData data, int[][] terrainHeights, MapperOptions options) { for (int regionX = 0; regionX < CITY_WIDTH_IN_REGIONS; regionX++) { for (int regionZ = 0; regionZ < CITY_WIDTH_IN_REGIONS; regionZ++) { int[][] terrainHeightsForRegion = getTerrainHeightsForRegion(terrainHeights, regionX, regionZ); - AbstractRegion newRegion = mapRegion(data, terrainHeightsForRegion, regionX, regionZ); + AbstractRegion newRegion = mapRegion(data, terrainHeightsForRegion, regionX, regionZ, options); saveRegion(newRegion, outputDir); @@ -145,15 +145,15 @@ private static void buildWallSection(AbstractRegion borderRegion, int x, int z) } } - private AbstractRegion mapRegion(CityData data, int[][] terrainHeightsForRegion, int regionX, int regionZ) + private AbstractRegion mapRegion(CityData data, int[][] terrainHeightsForRegion, int regionX, int regionZ, MapperOptions options) { AbstractRegion newRegion; - byte[][][][][] tmpChunkData; + byte[][][][][] buildingChunkData; byte waterLevel = data.getWaterLevel(); newRegion = new AbstractRegion(regionX, regionZ); - mapRegionLandscape(newRegion, terrainHeightsForRegion, waterLevel); + mapRegionLandscape(newRegion, terrainHeightsForRegion, waterLevel, options.fillUnderground); int regionXOffset = regionX * SQUARES_IN_REGION; int regionZOffset = regionZ * SQUARES_IN_REGION; @@ -184,15 +184,16 @@ private AbstractRegion mapRegion(CityData data, int[][] terrainHeightsForRegion, fixBridgeSlopes(terrainHeightsForRegion, thisSquare, xMinusSquare, xPlusSquare, zMinusSquare, zPlusSquare, squareXIndex, squareZIndex); bool useRotatedModel = shouldUseRotatedModel(thisSquare, zMinusSquare, zPlusSquare); + bool squareIsTunnelEntrance = isTunnelEntrance(thisSquare.buildingType); BuildingModel buildingModel = loadBuildingModel(thisSquare.buildingType, useRotatedModel); if (buildingModel != null) { - tmpChunkData = buildingModel.getChunkData(thisSquare.buildingOffsetX, thisSquare.buildingOffsetZ); + buildingChunkData = buildingModel.getChunkData(thisSquare.buildingOffsetX, thisSquare.buildingOffsetZ); for (int section = 0; section < SECTIONS_IN_CHUNK; section++) { - if (tmpChunkData[section] != null) + if (buildingChunkData[section] != null) { for (int sx = 0; sx < SQUARE_SIZE; sx++) { @@ -204,33 +205,33 @@ private AbstractRegion mapRegion(CityData data, int[][] terrainHeightsForRegion, int blockZ = squareZIndex * SQUARE_SIZE + sz; int blockY = section * SECTION_HEIGHT + sy + 2 - SECTION_HEIGHT; - byte[] thisBlock = tmpChunkData[section][sx][sz][sy]; + byte[] buildingBlock = buildingChunkData[section][sx][sz][sy]; - if (check(isTunnelEntrance, thisSquare))//tunnel entrances - include air, repeat along x or z axis + if (squareIsTunnelEntrance)//tunnel entrances - include air, repeat along x or z axis { - newRegion.putBlockData(blockX, blockZ, blockY + (thisSquare.altitude * SECTION_HEIGHT), thisBlock); + newRegion.putBlockData(blockX, blockZ, blockY + (thisSquare.altitude * SECTION_HEIGHT), buildingBlock); if (section == 0 || sy < SECTION_HEIGHT - 2) // Omit the top two levels of blocks above the underground tunnel sections in order not to erase the ground above { if (thisSquare.buildingType == 63) { - repeatBlockUntilTunnelEndsX(data, newRegion, thisBlock, squareX, squareZ, blockX, blockZ, blockY + (thisSquare.altitude * SECTION_HEIGHT)); + repeatBlockUntilTunnelEndsX(data, newRegion, buildingBlock, squareX, squareZ, blockX, blockZ, blockY + (thisSquare.altitude * SECTION_HEIGHT)); } if (thisSquare.buildingType == 64) { - repeatBlockUntilTunnelEndsZ(data, newRegion, thisBlock, squareX, squareZ, blockX, blockZ, blockY + (thisSquare.altitude * SECTION_HEIGHT)); + repeatBlockUntilTunnelEndsZ(data, newRegion, buildingBlock, squareX, squareZ, blockX, blockZ, blockY + (thisSquare.altitude * SECTION_HEIGHT)); } } } - else if (thisBlock[0] != AIR_BLOCK) + else if (buildingBlock[0] != AIR_BLOCK) { if (terrainHeightsForRegion[blockX][blockZ] >= (waterLevel * SECTION_HEIGHT)) //on ground { - newRegion.putBlockData(blockX, blockZ, blockY + terrainHeightsForRegion[blockX][blockZ], thisBlock); + newRegion.putBlockData(blockX, blockZ, blockY + terrainHeightsForRegion[blockX][blockZ], buildingBlock); } else //on water { - newRegion.putBlockData(blockX, blockZ, blockY + (waterLevel * SECTION_HEIGHT), thisBlock); + newRegion.putBlockData(blockX, blockZ, blockY + (waterLevel * SECTION_HEIGHT), buildingBlock); } } } @@ -245,14 +246,17 @@ private AbstractRegion mapRegion(CityData data, int[][] terrainHeightsForRegion, return newRegion; } - private void mapRegionLandscape(AbstractRegion newRegion, int[][] terrainHeightsForRegion, byte waterLevel) + private void mapRegionLandscape(AbstractRegion newRegion, int[][] terrainHeightsForRegion, byte waterLevel, Boolean fillUnderground) { for (int x = 0; x < REGION_SIZE; x++) { for (int z = 0; z < REGION_SIZE; z++) { - newRegion.putBlock(x, z, terrainHeightsForRegion[x][z], SANDSTONE_BLOCK); - newRegion.putBlock(x, z, terrainHeightsForRegion[x][z] + 1, SANDSTONE_BLOCK); + int bottomOfFilledGround = fillUnderground ? 0 : terrainHeightsForRegion[x][z]; + for (int y=terrainHeightsForRegion[x][z] + 1;y>= bottomOfFilledGround; y--) + { + newRegion.putBlock(x, z, y, SANDSTONE_BLOCK); + } fillWithWaterUpToWaterLevel(terrainHeightsForRegion, newRegion, waterLevel, x, z); } diff --git a/MinecraftEditor.sln b/MinecraftEditor.sln index 86a3f5c..01302a5 100644 --- a/MinecraftEditor.sln +++ b/MinecraftEditor.sln @@ -1,85 +1,104 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29424.173 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MinecraftEditor", "MinecraftEditor\MinecraftEditor.csproj", "{3DA90FF7-6DC6-4668-A4BA-48737A8089B9}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimCityReader", "SimCityReader\SimCityReader.csproj", "{CC84F582-4F93-4628-83DD-CA36773CE759}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MineCity2000-GUI", "MineCity2000-GUI\MineCity2000-GUI.csproj", "{FCF302D8-FE31-4FE7-A6BB-162ADA516E72}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AnvilFile", "AnvilFile\AnvilFile.csproj", "{56645ABF-CDDD-435E-845F-BF5AA422AF80}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MineCity2000", "MineCity2000\MineCity2000.csproj", "{79BB814A-ADA6-4C32-9760-87D9A822DEAA}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|Mixed Platforms = Debug|Mixed Platforms - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|Mixed Platforms = Release|Mixed Platforms - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3DA90FF7-6DC6-4668-A4BA-48737A8089B9}.Debug|Any CPU.ActiveCfg = Debug|x86 - {3DA90FF7-6DC6-4668-A4BA-48737A8089B9}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {3DA90FF7-6DC6-4668-A4BA-48737A8089B9}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {3DA90FF7-6DC6-4668-A4BA-48737A8089B9}.Debug|x86.ActiveCfg = Debug|x86 - {3DA90FF7-6DC6-4668-A4BA-48737A8089B9}.Debug|x86.Build.0 = Debug|x86 - {3DA90FF7-6DC6-4668-A4BA-48737A8089B9}.Release|Any CPU.ActiveCfg = Release|x86 - {3DA90FF7-6DC6-4668-A4BA-48737A8089B9}.Release|Mixed Platforms.ActiveCfg = Release|x86 - {3DA90FF7-6DC6-4668-A4BA-48737A8089B9}.Release|Mixed Platforms.Build.0 = Release|x86 - {3DA90FF7-6DC6-4668-A4BA-48737A8089B9}.Release|x86.ActiveCfg = Release|x86 - {3DA90FF7-6DC6-4668-A4BA-48737A8089B9}.Release|x86.Build.0 = Release|x86 - {CC84F582-4F93-4628-83DD-CA36773CE759}.Debug|Any CPU.ActiveCfg = Debug|x86 - {CC84F582-4F93-4628-83DD-CA36773CE759}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {CC84F582-4F93-4628-83DD-CA36773CE759}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {CC84F582-4F93-4628-83DD-CA36773CE759}.Debug|x86.ActiveCfg = Debug|x86 - {CC84F582-4F93-4628-83DD-CA36773CE759}.Debug|x86.Build.0 = Debug|x86 - {CC84F582-4F93-4628-83DD-CA36773CE759}.Release|Any CPU.ActiveCfg = Release|x86 - {CC84F582-4F93-4628-83DD-CA36773CE759}.Release|Mixed Platforms.ActiveCfg = Release|x86 - {CC84F582-4F93-4628-83DD-CA36773CE759}.Release|Mixed Platforms.Build.0 = Release|x86 - {CC84F582-4F93-4628-83DD-CA36773CE759}.Release|x86.ActiveCfg = Release|x86 - {CC84F582-4F93-4628-83DD-CA36773CE759}.Release|x86.Build.0 = Release|x86 - {FCF302D8-FE31-4FE7-A6BB-162ADA516E72}.Debug|Any CPU.ActiveCfg = Debug|x86 - {FCF302D8-FE31-4FE7-A6BB-162ADA516E72}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {FCF302D8-FE31-4FE7-A6BB-162ADA516E72}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {FCF302D8-FE31-4FE7-A6BB-162ADA516E72}.Debug|x86.ActiveCfg = Debug|x86 - {FCF302D8-FE31-4FE7-A6BB-162ADA516E72}.Debug|x86.Build.0 = Debug|x86 - {FCF302D8-FE31-4FE7-A6BB-162ADA516E72}.Release|Any CPU.ActiveCfg = Release|x86 - {FCF302D8-FE31-4FE7-A6BB-162ADA516E72}.Release|Mixed Platforms.ActiveCfg = Release|x86 - {FCF302D8-FE31-4FE7-A6BB-162ADA516E72}.Release|Mixed Platforms.Build.0 = Release|x86 - {FCF302D8-FE31-4FE7-A6BB-162ADA516E72}.Release|x86.ActiveCfg = Release|x86 - {FCF302D8-FE31-4FE7-A6BB-162ADA516E72}.Release|x86.Build.0 = Release|x86 - {56645ABF-CDDD-435E-845F-BF5AA422AF80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {56645ABF-CDDD-435E-845F-BF5AA422AF80}.Debug|Any CPU.Build.0 = Debug|Any CPU - {56645ABF-CDDD-435E-845F-BF5AA422AF80}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {56645ABF-CDDD-435E-845F-BF5AA422AF80}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {56645ABF-CDDD-435E-845F-BF5AA422AF80}.Debug|x86.ActiveCfg = Debug|Any CPU - {56645ABF-CDDD-435E-845F-BF5AA422AF80}.Release|Any CPU.ActiveCfg = Release|Any CPU - {56645ABF-CDDD-435E-845F-BF5AA422AF80}.Release|Any CPU.Build.0 = Release|Any CPU - {56645ABF-CDDD-435E-845F-BF5AA422AF80}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {56645ABF-CDDD-435E-845F-BF5AA422AF80}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {56645ABF-CDDD-435E-845F-BF5AA422AF80}.Release|x86.ActiveCfg = Release|Any CPU - {79BB814A-ADA6-4C32-9760-87D9A822DEAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {79BB814A-ADA6-4C32-9760-87D9A822DEAA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {79BB814A-ADA6-4C32-9760-87D9A822DEAA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {79BB814A-ADA6-4C32-9760-87D9A822DEAA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {79BB814A-ADA6-4C32-9760-87D9A822DEAA}.Debug|x86.ActiveCfg = Debug|Any CPU - {79BB814A-ADA6-4C32-9760-87D9A822DEAA}.Debug|x86.Build.0 = Debug|Any CPU - {79BB814A-ADA6-4C32-9760-87D9A822DEAA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {79BB814A-ADA6-4C32-9760-87D9A822DEAA}.Release|Any CPU.Build.0 = Release|Any CPU - {79BB814A-ADA6-4C32-9760-87D9A822DEAA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {79BB814A-ADA6-4C32-9760-87D9A822DEAA}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {79BB814A-ADA6-4C32-9760-87D9A822DEAA}.Release|x86.ActiveCfg = Release|Any CPU - {79BB814A-ADA6-4C32-9760-87D9A822DEAA}.Release|x86.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {A6729EC2-EAA0-44C2-8198-F50B45354C14} - EndGlobalSection -EndGlobal + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29424.173 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MinecraftEditor", "MinecraftEditor\MinecraftEditor.csproj", "{3DA90FF7-6DC6-4668-A4BA-48737A8089B9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimCityReader", "SimCityReader\SimCityReader.csproj", "{CC84F582-4F93-4628-83DD-CA36773CE759}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MineCity2000-GUI", "MineCity2000-GUI\MineCity2000-GUI.csproj", "{FCF302D8-FE31-4FE7-A6BB-162ADA516E72}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AnvilFile", "AnvilFile\AnvilFile.csproj", "{56645ABF-CDDD-435E-845F-BF5AA422AF80}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MineCity2000", "MineCity2000\MineCity2000.csproj", "{79BB814A-ADA6-4C32-9760-87D9A822DEAA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3DA90FF7-6DC6-4668-A4BA-48737A8089B9}.Debug|Any CPU.ActiveCfg = Debug|x86 + {3DA90FF7-6DC6-4668-A4BA-48737A8089B9}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {3DA90FF7-6DC6-4668-A4BA-48737A8089B9}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {3DA90FF7-6DC6-4668-A4BA-48737A8089B9}.Debug|x64.ActiveCfg = Debug|x64 + {3DA90FF7-6DC6-4668-A4BA-48737A8089B9}.Debug|x64.Build.0 = Debug|x64 + {3DA90FF7-6DC6-4668-A4BA-48737A8089B9}.Debug|x86.ActiveCfg = Debug|x86 + {3DA90FF7-6DC6-4668-A4BA-48737A8089B9}.Debug|x86.Build.0 = Debug|x86 + {3DA90FF7-6DC6-4668-A4BA-48737A8089B9}.Release|Any CPU.ActiveCfg = Release|x86 + {3DA90FF7-6DC6-4668-A4BA-48737A8089B9}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {3DA90FF7-6DC6-4668-A4BA-48737A8089B9}.Release|Mixed Platforms.Build.0 = Release|x86 + {3DA90FF7-6DC6-4668-A4BA-48737A8089B9}.Release|x64.ActiveCfg = Release|x64 + {3DA90FF7-6DC6-4668-A4BA-48737A8089B9}.Release|x86.ActiveCfg = Release|x86 + {3DA90FF7-6DC6-4668-A4BA-48737A8089B9}.Release|x86.Build.0 = Release|x86 + {CC84F582-4F93-4628-83DD-CA36773CE759}.Debug|Any CPU.ActiveCfg = Debug|x86 + {CC84F582-4F93-4628-83DD-CA36773CE759}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {CC84F582-4F93-4628-83DD-CA36773CE759}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {CC84F582-4F93-4628-83DD-CA36773CE759}.Debug|x64.ActiveCfg = Debug|x64 + {CC84F582-4F93-4628-83DD-CA36773CE759}.Debug|x64.Build.0 = Debug|x64 + {CC84F582-4F93-4628-83DD-CA36773CE759}.Debug|x86.ActiveCfg = Debug|x86 + {CC84F582-4F93-4628-83DD-CA36773CE759}.Debug|x86.Build.0 = Debug|x86 + {CC84F582-4F93-4628-83DD-CA36773CE759}.Release|Any CPU.ActiveCfg = Release|x86 + {CC84F582-4F93-4628-83DD-CA36773CE759}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {CC84F582-4F93-4628-83DD-CA36773CE759}.Release|Mixed Platforms.Build.0 = Release|x86 + {CC84F582-4F93-4628-83DD-CA36773CE759}.Release|x64.ActiveCfg = Release|x64 + {CC84F582-4F93-4628-83DD-CA36773CE759}.Release|x86.ActiveCfg = Release|x86 + {CC84F582-4F93-4628-83DD-CA36773CE759}.Release|x86.Build.0 = Release|x86 + {FCF302D8-FE31-4FE7-A6BB-162ADA516E72}.Debug|Any CPU.ActiveCfg = Debug|x86 + {FCF302D8-FE31-4FE7-A6BB-162ADA516E72}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {FCF302D8-FE31-4FE7-A6BB-162ADA516E72}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {FCF302D8-FE31-4FE7-A6BB-162ADA516E72}.Debug|x64.ActiveCfg = Debug|x64 + {FCF302D8-FE31-4FE7-A6BB-162ADA516E72}.Debug|x64.Build.0 = Debug|x64 + {FCF302D8-FE31-4FE7-A6BB-162ADA516E72}.Debug|x86.ActiveCfg = Debug|x86 + {FCF302D8-FE31-4FE7-A6BB-162ADA516E72}.Debug|x86.Build.0 = Debug|x86 + {FCF302D8-FE31-4FE7-A6BB-162ADA516E72}.Release|Any CPU.ActiveCfg = Release|x86 + {FCF302D8-FE31-4FE7-A6BB-162ADA516E72}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {FCF302D8-FE31-4FE7-A6BB-162ADA516E72}.Release|Mixed Platforms.Build.0 = Release|x86 + {FCF302D8-FE31-4FE7-A6BB-162ADA516E72}.Release|x64.ActiveCfg = Release|x64 + {FCF302D8-FE31-4FE7-A6BB-162ADA516E72}.Release|x86.ActiveCfg = Release|x86 + {FCF302D8-FE31-4FE7-A6BB-162ADA516E72}.Release|x86.Build.0 = Release|x86 + {56645ABF-CDDD-435E-845F-BF5AA422AF80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {56645ABF-CDDD-435E-845F-BF5AA422AF80}.Debug|Any CPU.Build.0 = Debug|Any CPU + {56645ABF-CDDD-435E-845F-BF5AA422AF80}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {56645ABF-CDDD-435E-845F-BF5AA422AF80}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {56645ABF-CDDD-435E-845F-BF5AA422AF80}.Debug|x64.ActiveCfg = Debug|x64 + {56645ABF-CDDD-435E-845F-BF5AA422AF80}.Debug|x64.Build.0 = Debug|x64 + {56645ABF-CDDD-435E-845F-BF5AA422AF80}.Debug|x86.ActiveCfg = Debug|Any CPU + {56645ABF-CDDD-435E-845F-BF5AA422AF80}.Release|Any CPU.ActiveCfg = Release|Any CPU + {56645ABF-CDDD-435E-845F-BF5AA422AF80}.Release|Any CPU.Build.0 = Release|Any CPU + {56645ABF-CDDD-435E-845F-BF5AA422AF80}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {56645ABF-CDDD-435E-845F-BF5AA422AF80}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {56645ABF-CDDD-435E-845F-BF5AA422AF80}.Release|x64.ActiveCfg = Release|x64 + {56645ABF-CDDD-435E-845F-BF5AA422AF80}.Release|x64.Build.0 = Release|x64 + {56645ABF-CDDD-435E-845F-BF5AA422AF80}.Release|x86.ActiveCfg = Release|Any CPU + {79BB814A-ADA6-4C32-9760-87D9A822DEAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {79BB814A-ADA6-4C32-9760-87D9A822DEAA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {79BB814A-ADA6-4C32-9760-87D9A822DEAA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {79BB814A-ADA6-4C32-9760-87D9A822DEAA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {79BB814A-ADA6-4C32-9760-87D9A822DEAA}.Debug|x64.ActiveCfg = Debug|x64 + {79BB814A-ADA6-4C32-9760-87D9A822DEAA}.Debug|x64.Build.0 = Debug|x64 + {79BB814A-ADA6-4C32-9760-87D9A822DEAA}.Debug|x86.ActiveCfg = Debug|Any CPU + {79BB814A-ADA6-4C32-9760-87D9A822DEAA}.Debug|x86.Build.0 = Debug|Any CPU + {79BB814A-ADA6-4C32-9760-87D9A822DEAA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {79BB814A-ADA6-4C32-9760-87D9A822DEAA}.Release|Any CPU.Build.0 = Release|Any CPU + {79BB814A-ADA6-4C32-9760-87D9A822DEAA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {79BB814A-ADA6-4C32-9760-87D9A822DEAA}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {79BB814A-ADA6-4C32-9760-87D9A822DEAA}.Release|x64.ActiveCfg = Release|x64 + {79BB814A-ADA6-4C32-9760-87D9A822DEAA}.Release|x64.Build.0 = Release|x64 + {79BB814A-ADA6-4C32-9760-87D9A822DEAA}.Release|x86.ActiveCfg = Release|Any CPU + {79BB814A-ADA6-4C32-9760-87D9A822DEAA}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {A6729EC2-EAA0-44C2-8198-F50B45354C14} + EndGlobalSection +EndGlobal diff --git a/MinecraftEditor/MinecraftEditor.csproj b/MinecraftEditor/MinecraftEditor.csproj index ba54082..bdb6e0e 100644 --- a/MinecraftEditor/MinecraftEditor.csproj +++ b/MinecraftEditor/MinecraftEditor.csproj @@ -1,79 +1,99 @@ - - - - Debug - x86 - 8.0.30703 - 2.0 - {3DA90FF7-6DC6-4668-A4BA-48737A8089B9} - Library - Properties - com.mc2k.MinecraftEditor - MinecraftEditor - v4.0 - Client - 512 - - - x86 - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - x86 - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - lib\zlib.net.dll - - - - - - - - - - - - - - - - - - - {56645ABF-CDDD-435E-845F-BF5AA422AF80} - AnvilFile - - - + + + + Debug + x86 + 8.0.30703 + 2.0 + {3DA90FF7-6DC6-4668-A4BA-48737A8089B9} + Library + Properties + com.mc2k.MinecraftEditor + MinecraftEditor + v4.0 + Client + 512 + + + x86 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + x86 + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + true + bin\x64\Debug\ + DEBUG;TRACE + full + x64 + 7.3 + prompt + MinimumRecommendedRules.ruleset + + + bin\x64\Release\ + TRACE + true + pdbonly + x64 + 7.3 + prompt + MinimumRecommendedRules.ruleset + + + + + + + + + + + lib\zlib.net.dll + + + + + + + + + + + + + + + + + + + {56645ABF-CDDD-435E-845F-BF5AA422AF80} + AnvilFile + + + + --> \ No newline at end of file diff --git a/README.md b/README.md index d098982..2e17eb3 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,8 @@ With the first browse button, choose your *.sc2 city file. A good place to look With the second browse button, choose your Minecraft install directory. It might be `C:\Users\[username]\AppData\Roaming\.minecraft` or something similar. A sure way of finding it is if you right-click the shortcut you use to run Minecraft, click Properties and see where the shortcut points. +If you want the underground area to be filled instead of empty (So you don't fall into the ground after digging for a bit), select the "Fill underground area" checkbox. But be warned that this also increases the conversion time and RAM requirements. + After you choose both of these, click "Convert!". And when the processing is done, you can close this window, open Minecraft and you should see your city among the saved games. Your antivirus might think that MineCity 2000 is a virus. It's not. diff --git a/SimCityReader/SimCityReader.csproj b/SimCityReader/SimCityReader.csproj index 097471d..f6dc3c2 100644 --- a/SimCityReader/SimCityReader.csproj +++ b/SimCityReader/SimCityReader.csproj @@ -1,63 +1,83 @@ - - - - Debug - x86 - 8.0.30703 - 2.0 - {CC84F582-4F93-4628-83DD-CA36773CE759} - Exe - Properties - com.mc2k.SimCityReader - SimCityReader - v4.0 - Client - 512 - - - x86 - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - x86 - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - - - - - - + + + + Debug + x86 + 8.0.30703 + 2.0 + {CC84F582-4F93-4628-83DD-CA36773CE759} + Exe + Properties + com.mc2k.SimCityReader + SimCityReader + v4.0 + Client + 512 + + + x86 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + x86 + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + true + bin\x64\Debug\ + DEBUG;TRACE + full + x64 + 7.3 + prompt + MinimumRecommendedRules.ruleset + + + bin\x64\Release\ + TRACE + true + pdbonly + x64 + 7.3 + prompt + MinimumRecommendedRules.ruleset + + + + + + + + + + + + + + + + + + + + + + --> \ No newline at end of file diff --git a/release/mc2k-release.rar b/release/mc2k-release.rar index cd339f0..7adf4ab 100644 Binary files a/release/mc2k-release.rar and b/release/mc2k-release.rar differ