diff --git a/ClassicalSharp/2D/Screens/Menu/ClassicOptionsScreen.cs b/ClassicalSharp/2D/Screens/Menu/ClassicOptionsScreen.cs index 8a6cf5120..6be4ef8b9 100644 --- a/ClassicalSharp/2D/Screens/Menu/ClassicOptionsScreen.cs +++ b/ClassicalSharp/2D/Screens/Menu/ClassicOptionsScreen.cs @@ -61,7 +61,6 @@ namespace ClassicalSharp.Gui { (g, w) => g.SetNewScreen( new PauseScreen( g ) ) ), null, null, }; - widgets[7].Metadata = typeof(FpsLimitMethod); MakeValidators(); } @@ -84,7 +83,7 @@ namespace ClassicalSharp.Gui { new BooleanValidator(), new BooleanValidator(), new BooleanValidator(), - new EnumValidator(), + new EnumValidator( typeof(FpsLimitMethod) ), game.ClassicHacks ? new BooleanValidator() : null, }; } diff --git a/ClassicalSharp/2D/Screens/Menu/EnvSettingsScreen.cs b/ClassicalSharp/2D/Screens/Menu/EnvSettingsScreen.cs index 7f2b0c1f7..4a5d243e1 100644 --- a/ClassicalSharp/2D/Screens/Menu/EnvSettingsScreen.cs +++ b/ClassicalSharp/2D/Screens/Menu/EnvSettingsScreen.cs @@ -91,7 +91,7 @@ namespace ClassicalSharp.Gui { new HexColourValidator(), new HexColourValidator(), - new EnumValidator(), + new EnumValidator( typeof(Weather) ), new IntegerValidator( -2048, 2048 ), }; } diff --git a/ClassicalSharp/2D/Screens/Menu/GraphicsOptionsScreen.cs b/ClassicalSharp/2D/Screens/Menu/GraphicsOptionsScreen.cs index e81f3b673..2d99ca8e4 100644 --- a/ClassicalSharp/2D/Screens/Menu/GraphicsOptionsScreen.cs +++ b/ClassicalSharp/2D/Screens/Menu/GraphicsOptionsScreen.cs @@ -43,9 +43,6 @@ namespace ClassicalSharp.Gui { (g, w) => g.SetNewScreen( new OptionsGroupScreen( g ) ) ), null, null, }; - widgets[0].Metadata = typeof(FpsLimitMethod); - widgets[2].Metadata = typeof(NameMode); - widgets[3].Metadata = typeof(EntityShadow); MakeValidators(); MakeDescriptions(); } @@ -53,10 +50,10 @@ namespace ClassicalSharp.Gui { void MakeValidators() { INetworkProcessor network = game.Network; validators = new MenuInputValidator[] { - new EnumValidator(), + new EnumValidator( typeof(FpsLimitMethod) ), new IntegerValidator( 16, 4096 ), - new EnumValidator(), - new EnumValidator(), + new EnumValidator( typeof(NameMode) ), + new EnumValidator( typeof(EntityShadow) ), }; } diff --git a/ClassicalSharp/2D/Screens/Menu/MenuOptionsScreen.cs b/ClassicalSharp/2D/Screens/Menu/MenuOptionsScreen.cs index a005867d2..c2ac6619b 100644 --- a/ClassicalSharp/2D/Screens/Menu/MenuOptionsScreen.cs +++ b/ClassicalSharp/2D/Screens/Menu/MenuOptionsScreen.cs @@ -236,7 +236,8 @@ namespace ClassicalSharp.Gui { UpdateDescription( button ); return; } else if( validator is EnumValidator ) { - HandleEnumOption( button ); + Type type = ((EnumValidator)validator).EnumType; + HandleEnumOption( button, type ); return; } @@ -253,9 +254,8 @@ namespace ClassicalSharp.Gui { UpdateDescription( targetWidget ); } - void HandleEnumOption( ButtonWidget button ) { + void HandleEnumOption( ButtonWidget button, Type type ) { string value = button.GetValue( game ); - Type type = (Type)button.Metadata; int enumValue = (int)Enum.Parse( type, value, true ); enumValue++; // go back to first value diff --git a/ClassicalSharp/2D/Screens/Menu/NostalgiaScreen.cs b/ClassicalSharp/2D/Screens/Menu/NostalgiaScreen.cs index cbaa44d0c..41145aebd 100644 --- a/ClassicalSharp/2D/Screens/Menu/NostalgiaScreen.cs +++ b/ClassicalSharp/2D/Screens/Menu/NostalgiaScreen.cs @@ -25,7 +25,7 @@ namespace ClassicalSharp.Gui { MakeBool( -1, 0, "Classic player list", OptionsKey.UseClassicTabList, OnWidgetClick, g => g.UseClassicTabList, (g, v) => g.UseClassicTabList = v ), - MakeBool( -1, 50, "Classic options menu", OptionsKey.UseClassicOptions, + MakeBool( -1, 50, "Classic options", OptionsKey.UseClassicOptions, OnWidgetClick, g => g.UseClassicOptions, (g, v) => g.UseClassicOptions = v ), // Column 2 @@ -35,7 +35,7 @@ namespace ClassicalSharp.Gui { MakeBool( 1, -50, "Use CPE", OptionsKey.UseCPE, OnWidgetClick, g => g.UseCPE, (g, v) => g.UseCPE = v ), - MakeBool( 1, 0, "Allow server textures", OptionsKey.AllowServerTextures, + MakeBool( 1, 0, "Use server textures", OptionsKey.AllowServerTextures, OnWidgetClick, g => g.AllowServerTextures, (g, v) => g.AllowServerTextures = v ), MakeBack( false, titleFont, diff --git a/ClassicalSharp/2D/Widgets/Menu/MenuInputValidator.cs b/ClassicalSharp/2D/Widgets/Menu/MenuInputValidator.cs index 9f6e8f91a..c6b0c903d 100644 --- a/ClassicalSharp/2D/Widgets/Menu/MenuInputValidator.cs +++ b/ClassicalSharp/2D/Widgets/Menu/MenuInputValidator.cs @@ -117,9 +117,7 @@ namespace ClassicalSharp.Gui { || c == '<' || c == '>' || c == '|' || c == '"'); } - public override bool IsValidString( string s ) { - return true; - } + public override bool IsValidString( string s ) { return true; } } public sealed class BooleanValidator : MenuInputValidator { @@ -128,32 +126,25 @@ namespace ClassicalSharp.Gui { Range = "&7(yes or no)"; } - public override bool IsValidChar( char c ) { - return c >= 'a' && c <= 'z'; - } + public override bool IsValidChar( char c ) { return true; } - public override bool IsValidString( string s ) { - return s.Length <= 3; - } + public override bool IsValidString( string s ) { return true; } - public override bool IsValidValue( string s ) { - return s == "yes" || s == "no"; - } + public override bool IsValidValue( string s ) { return true; } } public sealed class EnumValidator : MenuInputValidator { - public override bool IsValidChar( char c ) { - return true; + public Type EnumType; + public EnumValidator( Type type ) { + EnumType = type; } - public override bool IsValidString( string s ) { - return true; - } + public override bool IsValidChar( char c ) { return true; } - public override bool IsValidValue( string s ) { - return true; - } + public override bool IsValidString( string s ) { return true; } + + public override bool IsValidValue( string s ) { return true; } } public sealed class StringValidator : MenuInputValidator { diff --git a/ClassicalSharp/ClassicalSharp.csproj b/ClassicalSharp/ClassicalSharp.csproj index 9206d6d9d..11c40cb3b 100644 --- a/ClassicalSharp/ClassicalSharp.csproj +++ b/ClassicalSharp/ClassicalSharp.csproj @@ -4,7 +4,7 @@ {BEB1C785-5CAD-48FF-A886-876BF0A318D4} Debug AnyCPU - Exe + WinExe ClassicalSharp ClassicalSharp v2.0 diff --git a/ClassicalSharp/Entities/LocalPlayer.cs b/ClassicalSharp/Entities/LocalPlayer.cs index 6b8d8cf1f..ad0ddeaaf 100644 --- a/ClassicalSharp/Entities/LocalPlayer.cs +++ b/ClassicalSharp/Entities/LocalPlayer.cs @@ -270,15 +270,13 @@ namespace ClassicalSharp.Entities { Vector3 size = Model.CollisionSize; BoundingBox bb = CollisionBounds; Vector3I P = Vector3I.Floor( spawn ); - int bbMax = Utils.Floor( size.Y ); - + int bbMax = Utils.Floor( size.Y ); int minX = Utils.Floor( -size.X / 2 ), maxX = Utils.Floor( size.X / 2 ); int minZ = Utils.Floor( -size.Z / 2 ), maxZ = Utils.Floor( size.Z / 2 ); // Spawn player at highest valid position. for( int y = P.Y; y <= game.World.Height; y++ ) { bool anyHit = false; - Console.WriteLine( "~~~~~" ); for( int yy = 0; yy <= bbMax; yy++ ) for( int zz = minZ; zz <= maxZ; zz++ ) for ( int xx = minX; xx <= maxX; xx++ )