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++ )