mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-17 11:35:08 -04:00
Fix client crashing after clicking 'chat scale', then 'use font', then 'chat scale' again.
This commit is contained in:
parent
8956cc5abd
commit
a8cd79abcd
@ -18,7 +18,7 @@ namespace ClassicalSharp.Gui {
|
||||
public override void Render( double delta ) {
|
||||
if( game.HideGui ) return;
|
||||
|
||||
bool showMinimal = game.GetActiveScreen.BlocksWorld;
|
||||
bool showMinimal = game.ActiveScreen.BlocksWorld;
|
||||
if( chat.HandlesAllInput )
|
||||
chat.RenderBackground();
|
||||
api.Texturing = true;
|
||||
|
@ -79,8 +79,6 @@ namespace ClassicalSharp.Gui {
|
||||
base.Dispose();
|
||||
base.Init();
|
||||
game.RefreshHud();
|
||||
if( selIndex >= 0 )
|
||||
selectedWidget = (ButtonWidget)widgets[selIndex];
|
||||
|
||||
for( int i = 0; i < widgets.Length; i++) {
|
||||
if( widgets[i] == null || !(widgets[i] is ButtonWidget)) {
|
||||
@ -91,6 +89,9 @@ namespace ClassicalSharp.Gui {
|
||||
btn.font = titleFont;
|
||||
btn.SetText( btn.Text );
|
||||
}
|
||||
|
||||
if( selIndex >= 0 )
|
||||
selectedWidget = (ButtonWidget)widgets[selIndex];
|
||||
}
|
||||
|
||||
void MakeValidators() {
|
||||
|
@ -177,6 +177,7 @@ namespace ClassicalSharp.Gui {
|
||||
if( !canShow ) return;
|
||||
|
||||
int index = Array.IndexOf<Widget>( widgets, selectedWidget );
|
||||
if( index < 0 || index >= descriptions.Length ) return;
|
||||
string[] desc = descriptions[index];
|
||||
if( desc == null ) return;
|
||||
MakeExtendedHelp( desc );
|
||||
|
@ -97,7 +97,7 @@ namespace ClassicalSharp.Gui {
|
||||
public override bool HandlesMouseClick( int mouseX, int mouseY, MouseButton button ) {
|
||||
if( button != MouseButton.Left || !Bounds.Contains( mouseX, mouseY ) )
|
||||
return false;
|
||||
InventoryScreen screen = game.GetActiveScreen as InventoryScreen;
|
||||
InventoryScreen screen = game.ActiveScreen as InventoryScreen;
|
||||
if( screen == null ) return false;
|
||||
|
||||
for( int i = 0; i < hotbarCount; i++ ) {
|
||||
|
@ -205,13 +205,12 @@ namespace ClassicalSharp {
|
||||
UpdateProjection();
|
||||
}
|
||||
|
||||
/// <summary> Gets whether the active screen handles all input. </summary>
|
||||
public bool ScreenLockedInput {
|
||||
get { return activeScreen == null ? hudScreen.HandlesAllInput :
|
||||
activeScreen.HandlesAllInput; } // inlined here.
|
||||
}
|
||||
/// <summary> Gets whether the screen the user is currently interacting with
|
||||
/// handles all input. </summary>
|
||||
public bool ScreenLockedInput { get { return ActiveScreen.HandlesAllInput; } }
|
||||
|
||||
public Screen GetActiveScreen {
|
||||
/// <summary> Gets the screen that the user is currently interacting with. </summary>
|
||||
public Screen ActiveScreen {
|
||||
get { return activeScreen == null ? hudScreen : activeScreen; }
|
||||
}
|
||||
|
||||
|
@ -86,7 +86,7 @@ namespace ClassicalSharp {
|
||||
#region Event handlers
|
||||
|
||||
void MouseButtonUp( object sender, MouseButtonEventArgs e ) {
|
||||
if( !game.GetActiveScreen.HandlesMouseUp( e.X, e.Y, e.Button ) ) {
|
||||
if( !game.ActiveScreen.HandlesMouseUp( e.X, e.Y, e.Button ) ) {
|
||||
if( game.Network.UsingPlayerClick && e.Button <= MouseButton.Middle ) {
|
||||
byte targetId = game.Players.GetClosetPlayer( game.LocalPlayer );
|
||||
ButtonStateChanged( e.Button, false, targetId );
|
||||
@ -95,7 +95,7 @@ namespace ClassicalSharp {
|
||||
}
|
||||
|
||||
void MouseButtonDown( object sender, MouseButtonEventArgs e ) {
|
||||
if( !game.GetActiveScreen.HandlesMouseClick( e.X, e.Y, e.Button ) ) {
|
||||
if( !game.ActiveScreen.HandlesMouseClick( e.X, e.Y, e.Button ) ) {
|
||||
bool left = e.Button == MouseButton.Left;
|
||||
bool middle = e.Button == MouseButton.Middle;
|
||||
bool right = e.Button == MouseButton.Right;
|
||||
@ -106,13 +106,13 @@ namespace ClassicalSharp {
|
||||
}
|
||||
|
||||
void MouseMove( object sender, MouseMoveEventArgs e ) {
|
||||
if( !game.GetActiveScreen.HandlesMouseMove( e.X, e.Y ) ) {
|
||||
if( !game.ActiveScreen.HandlesMouseMove( e.X, e.Y ) ) {
|
||||
}
|
||||
}
|
||||
|
||||
float deltaAcc = 0;
|
||||
void MouseWheelChanged( object sender, MouseWheelEventArgs e ) {
|
||||
if( game.GetActiveScreen.HandlesMouseScroll( e.Delta ) ) return;
|
||||
if( game.ActiveScreen.HandlesMouseScroll( e.Delta ) ) return;
|
||||
|
||||
Inventory inv = game.Inventory;
|
||||
bool hotbar = IsKeyDown( Key.AltLeft ) || IsKeyDown( Key.AltRight );
|
||||
@ -139,7 +139,7 @@ namespace ClassicalSharp {
|
||||
|
||||
void KeyPressHandler( object sender, KeyPressEventArgs e ) {
|
||||
char key = e.KeyChar;
|
||||
if( !game.GetActiveScreen.HandlesKeyPress( key ) ) {
|
||||
if( !game.ActiveScreen.HandlesKeyPress( key ) ) {
|
||||
}
|
||||
}
|
||||
|
||||
@ -147,7 +147,7 @@ namespace ClassicalSharp {
|
||||
Key key = e.Key;
|
||||
if( SimulateMouse( key, false ) ) return;
|
||||
|
||||
if( !game.GetActiveScreen.HandlesKeyUp( key ) ) {
|
||||
if( !game.ActiveScreen.HandlesKeyUp( key ) ) {
|
||||
if( key == Keys[KeyBinding.ZoomScrolling] )
|
||||
SetFOV( game.DefaultFov, false );
|
||||
}
|
||||
@ -163,7 +163,7 @@ namespace ClassicalSharp {
|
||||
game.Exit();
|
||||
} else if( key == Keys[KeyBinding.Screenshot] ) {
|
||||
game.screenshotRequested = true;
|
||||
} else if( !game.GetActiveScreen.HandlesKeyDown( key ) ) {
|
||||
} else if( !game.ActiveScreen.HandlesKeyDown( key ) ) {
|
||||
if( !HandleBuiltinKey( key ) && !game.LocalPlayer.HandleKeyDown( key ) )
|
||||
HandleHotkey( key );
|
||||
}
|
||||
|
@ -72,7 +72,6 @@ namespace ClassicalSharp.Renderers {
|
||||
api.SetBatchFormat( VertexFormat.P3fT2fC4b );
|
||||
api.Texturing = true;
|
||||
api.AlphaTest = true;
|
||||
Console.WriteLine( _1DUsed );
|
||||
|
||||
for( int batch = 0; batch < _1DUsed; batch++ ) {
|
||||
if( totalUsed[batch] <= 0 ) continue;
|
||||
|
@ -84,7 +84,7 @@ namespace ClassicalSharp.Singleplayer {
|
||||
} else {
|
||||
string state = generator.CurrentState;
|
||||
float progress = generator.CurrentProgress;
|
||||
LoadingMapScreen screen = ((LoadingMapScreen)game.GetActiveScreen);
|
||||
LoadingMapScreen screen = ((LoadingMapScreen)game.ActiveScreen);
|
||||
|
||||
screen.SetProgress( progress );
|
||||
if( state != lastState ) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user