diff --git a/ClassicalSharp/ClassicalSharp.csproj b/ClassicalSharp/ClassicalSharp.csproj
index d5518f3f5..48f876c7e 100644
--- a/ClassicalSharp/ClassicalSharp.csproj
+++ b/ClassicalSharp/ClassicalSharp.csproj
@@ -31,7 +31,7 @@
Full
False
False
- DEBUG;TRACE
+ DEBUG;TRACE;
Project
obj\
wwwf null 127.0.0.1 25566
diff --git a/ClassicalSharp/Rendering/StandardEnvRenderer.cs b/ClassicalSharp/Rendering/StandardEnvRenderer.cs
index 9c8afb415..3e79e222c 100644
--- a/ClassicalSharp/Rendering/StandardEnvRenderer.cs
+++ b/ClassicalSharp/Rendering/StandardEnvRenderer.cs
@@ -26,7 +26,7 @@ namespace ClassicalSharp.Renderers {
Vector3 eyePos = game.LocalPlayer.EyePosition;
Vector3 pos = game.Camera.GetCameraPos( eyePos );
- float normalY = map.CloudHeight + 8;
+ float normalY = map.Height + 8;
float skyY = Math.Max( pos.Y + 8, normalY );
graphics.SetBatchFormat( VertexFormat.Pos3fCol4b );
@@ -176,7 +176,7 @@ namespace ClassicalSharp.Renderers {
skyVertices = Utils.CountVertices( x2 - x1, z2 - z1, axisSize );
VertexPos3fCol4b* vertices = stackalloc VertexPos3fCol4b[skyVertices];
- DrawSkyY( x1, z1, x2, z2, map.CloudHeight + 8, axisSize, map.SkyCol, vertices );
+ DrawSkyY( x1, z1, x2, z2, map.Height + 8, axisSize, map.SkyCol, vertices );
skyVb = graphics.CreateVb( (IntPtr)vertices, VertexFormat.Pos3fCol4b, skyVertices );
}
diff --git a/Launcher2/Patcher/ResourceFetcher.cs b/Launcher2/Patcher/ResourceFetcher.cs
index 159ed84e0..f6a884e4b 100644
--- a/Launcher2/Patcher/ResourceFetcher.cs
+++ b/Launcher2/Patcher/ResourceFetcher.cs
@@ -12,41 +12,59 @@ namespace Launcher2 {
this.downloader = downloader;
}
+ const string jarClassicUri = "http://s3.amazonaws.com/Minecraft.Download/versions/c0.30_01c/c0.30_01c.jar";
+ const string jar162Uri = "http://s3.amazonaws.com/Minecraft.Download/versions/1.6.2/1.6.2.jar";
+ const string pngTerrainPatchUri = "http://static.classicube.net/terrain-patch.png";
+ const string pngGuiPatchUri = "http://static.classicube.net/gui.png";
+
public void DownloadItems( Action setStatus ) {
- downloader.DownloadData( "http://s3.amazonaws.com/Minecraft.Download/versions/c0.30_01c/c0.30_01c.jar", false, "classic_jar" );
- downloader.DownloadData( "http://s3.amazonaws.com/Minecraft.Download/versions/1.6.2/1.6.2.jar", false, "162_jar" );
- downloader.DownloadData( "http://static.classicube.net/terrain-patch.png", false, "terrain_patch" );
- setStatus( "&eFetching classic jar.. (1/3)" );
+ downloader.DownloadData( jarClassicUri, false, "classic_jar" );
+ downloader.DownloadData( jar162Uri, false, "162_jar" );
+ downloader.DownloadData( pngTerrainPatchUri, false, "terrain_patch" );
+ downloader.DownloadData( pngGuiPatchUri, false, "gui_patch" );
+ setStatus( "&eFetching classic jar.. (1/4)" );
}
- internal byte[] jarClassic, jar162, pngTerrainPatch;
+ internal byte[] jarClassic, jar162, pngTerrainPatch, pngGuiPatch;
public bool Check( Action setStatus ) {
if( Done ) return true;
- DownloadedItem item;
- if( downloader.TryGetItem( "classic_jar", out item ) ) {
- if( item.Data == null ) {
- setStatus( "&cFailed to download classic jar" ); return false;
- }
- setStatus( "&eFetching 1.6.2 jar.. (2/3)" );
- jarClassic = (byte[])item.Data;
- }
+ if( !DownloadItem( "classic_jar", "classic jar",
+ "&eFetching 1.6.2 jar.. (2/4)", ref jarClassic, setStatus))
+ return false;
- if( downloader.TryGetItem( "162_jar", out item ) ) {
- if( item.Data == null ) {
- setStatus( "&cFailed to download 1.6.2 jar" ); return false;
- }
- setStatus( "&eFetching terrain patch.. (3/3)" );
- jar162 = (byte[])item.Data;
- }
+ if( !DownloadItem( "162_jar", "1.6.2 jar",
+ "&eFetching terrain patch.. (3/4)", ref jar162, setStatus))
+ return false;
- if( downloader.TryGetItem( "terrain_patch", out item ) ) {
- if( item.Data == null ) {
- setStatus( "&cFailed to download terrain patch" ); return false;
- }
- setStatus( "&eCreating default.zip.." );
- pngTerrainPatch = (byte[])item.Data;
+ if( !DownloadItem( "terrain_patch", "terrain.png patch",
+ "&eFetching gui.. (3/4)", ref pngTerrainPatch, setStatus))
+ return false;
+
+ if( !DownloadItem( "gui_patch", "gui.png patch",
+ "&eCreating default.zip..", ref pngGuiPatch, setStatus))
+ return false;
+
+ if( pngGuiPatch != null ) {
Done = true;
+ return true;
+ }
+ return false;
+ }
+
+ bool DownloadItem( string identifier, string name, string next,
+ ref byte[] data, Action setStatus ) {
+ DownloadedItem item;
+ if( downloader.TryGetItem( identifier, out item ) ) {
+ Console.WriteLine( "FOUND" + identifier );
+ if( item.Data == null ) {
+ setStatus( "&cFailed to download " + name );
+ return false;
+ }
+
+ setStatus( next );
+ data = (byte[])item.Data;
+ return true;
}
return true;
}
@@ -56,8 +74,8 @@ namespace Launcher2 {
}
public static string EstimateDownloadSize() {
- float size = (291 + 4621 + 7) / 1024f;
- // classic.jar + 1.6.2.jar + terrain-patch.png
+ float size = (291 + 4621 + 7 + 21) / 1024f;
+ // classic.jar + 1.6.2.jar + terrain-patch.png + gui.png
return size.ToString( "F2" );
}
}
diff --git a/Launcher2/Patcher/ResourcePatcher.cs b/Launcher2/Patcher/ResourcePatcher.cs
index fedab10d8..31c3cc3e3 100644
--- a/Launcher2/Patcher/ResourcePatcher.cs
+++ b/Launcher2/Patcher/ResourcePatcher.cs
@@ -13,9 +13,10 @@ namespace Launcher2 {
jarClassic = fetcher.jarClassic;
jar162 = fetcher.jar162;
pngTerrainPatch = fetcher.pngTerrainPatch;
+ pngGuiPatch = fetcher.pngGuiPatch;
}
- byte[] jarClassic, jar162, pngTerrainPatch;
+ byte[] jarClassic, jar162, pngTerrainPatch, pngGuiPatch;
public void Run() {
reader = new ZipReader();
reader.ShouldProcessZipEntry = ShouldProcessZipEntry_Classic;
@@ -35,6 +36,9 @@ namespace Launcher2 {
writer.WriteNewImage( animBitmap, "animations.png" );
writer.WriteNewString( animationsTxt, "animations.txt" );
+ using( Bitmap guiBitmap = new Bitmap( new MemoryStream( pngGuiPatch ) ) ) {
+ writer.WriteNewImage( guiBitmap, "gui.png" );
+ }
animBitmap.Dispose();
writer.WriteCentralDirectoryRecords();
}
@@ -44,7 +48,7 @@ namespace Launcher2 {
Bitmap animBitmap;
bool ShouldProcessZipEntry_Classic( string filename ) {
- return filename.StartsWith( "mob" ) || ( filename.IndexOf( '/' ) < 0 );
+ return filename.StartsWith( "mob" ) || (filename.IndexOf( '/' ) < 0);
}
void ProcessZipEntry_Classic( string filename, byte[] data, ZipEntry entry ) {