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