diff --git a/ClassicalSharp/Events/Events.cs b/ClassicalSharp/Events/Events.cs index aab5949cb..0734517b7 100644 --- a/ClassicalSharp/Events/Events.cs +++ b/ClassicalSharp/Events/Events.cs @@ -43,7 +43,7 @@ namespace ClassicalSharp { public event EventHandler ColourCodesChanged; internal void RaiseColourCodesChanged() { Raise( ColourCodesChanged ); } - ChatEventArgs chatArgs = new ChatEventArgs(); + ChatEventArgs chatArgs = new ChatEventArgs(); protected void Raise( EventHandler handler ) { if( handler != null ) handler( this, EventArgs.Empty ); diff --git a/ClassicalSharp/Game/Game.Properties.cs b/ClassicalSharp/Game/Game.Properties.cs index 6f3ed2353..fd3de2646 100644 --- a/ClassicalSharp/Game/Game.Properties.cs +++ b/ClassicalSharp/Game/Game.Properties.cs @@ -150,32 +150,25 @@ namespace ClassicalSharp { /// Affected by both the current resolution of the window, as well as the /// scaling specified by the user (field HotbarScale). public float GuiHotbarScale { - get { - float scaleX = Width / 640f, scaleY = Height / 480f; - return Math.Min( scaleX, scaleY ) * HotbarScale; - } + get { return MinWindowScale * HotbarScale; } } /// Calculates the amount that the block inventory menu should be scaled by when rendered. /// Affected by both the current resolution of the window, as well as the /// scaling specified by the user (field InventoryScale). public float GuiInventoryScale { - get { - float scaleX = Width / 640f, scaleY = Height / 480f; - return Math.Min( scaleX, scaleY ) * InventoryScale; - } + get { return MinWindowScale * InventoryScale; } } /// Calculates the amount that 2D chat widgets should be scaled by when rendered. /// Affected by both the current resolution of the window, as well as the /// scaling specified by the user (field ChatScale). public float GuiChatScale { - get { - float scaleX = Width / 640f, scaleY = Height / 480f; - return Math.Min( scaleX, scaleY ) * ChatScale; - } + get { return MinWindowScale * ChatScale; } } + float MinWindowScale { get { return Math.Min( Width / 640f, Height / 480f ); } } + string defTexturePack = "default.zip"; /// Gets or sets the path of the default texture pack that should be used by the client. /// If the custom default texture pack specified by the user could not be found, diff --git a/ClassicalSharp/Game/Game.cs b/ClassicalSharp/Game/Game.cs index c72c0e3f7..26463d232 100644 --- a/ClassicalSharp/Game/Game.cs +++ b/ClassicalSharp/Game/Game.cs @@ -190,24 +190,24 @@ namespace ClassicalSharp { } Stopwatch frameTimer = new Stopwatch(); - internal void RenderFrame( FrameEventArgs e ) { + internal void RenderFrame( double delta ) { frameTimer.Reset(); frameTimer.Start(); Graphics.BeginFrame( this ); Graphics.BindIb( defaultIb ); - accumulator += e.Time; + accumulator += delta; Vertices = 0; if( !Focused && !ScreenLockedInput ) SetNewScreen( new PauseScreen( this ) ); - CheckScheduledTasks( e.Time ); + CheckScheduledTasks( delta ); float t = (float)( ticksAccumulator / ticksPeriod ); LocalPlayer.SetInterpPosition( t ); Graphics.Clear(); Graphics.SetMatrixMode( MatrixType.Modelview ); - Matrix4 modelView = Camera.GetView( e.Time ); + Matrix4 modelView = Camera.GetView( delta ); View = modelView; Graphics.LoadMatrix( ref modelView ); Culling.CalcFrustumEquations( ref Projection, ref modelView ); @@ -215,36 +215,36 @@ namespace ClassicalSharp { bool visible = activeScreen == null || !activeScreen.BlocksWorld; if( Map.IsNotLoaded ) visible = false; if( visible ) { - AxisLinesRenderer.Render( e.Time ); - Players.RenderModels( Graphics, e.Time, t ); - Players.RenderNames( Graphics, e.Time, t ); + AxisLinesRenderer.Render( delta ); + Players.RenderModels( Graphics, delta, t ); + Players.RenderNames( Graphics, delta, t ); CurrentCameraPos = Camera.GetCameraPos( LocalPlayer.EyePosition ); - ParticleManager.Render( e.Time, t ); + ParticleManager.Render( delta, t ); Camera.GetPickedBlock( SelectedPos ); // TODO: only pick when necessary - EnvRenderer.Render( e.Time ); + EnvRenderer.Render( delta ); if( SelectedPos.Valid && !HideGui ) - Picking.Render( e.Time, SelectedPos ); - MapRenderer.Render( e.Time ); - SelectionManager.Render( e.Time ); - Players.RenderHoveredNames( Graphics, e.Time, t ); + Picking.Render( delta, SelectedPos ); + MapRenderer.Render( delta ); + SelectionManager.Render( delta ); + Players.RenderHoveredNames( Graphics, delta, t ); bool left = IsMousePressed( MouseButton.Left ); bool middle = IsMousePressed( MouseButton.Middle ); bool right = IsMousePressed( MouseButton.Right ); InputHandler.PickBlocks( true, left, middle, right ); if( !HideGui ) - BlockHandRenderer.Render( e.Time, t ); + BlockHandRenderer.Render( delta, t ); } else { SelectedPos.SetAsInvalid(); } Graphics.Mode2D( Width, Height, EnvRenderer is StandardEnvRenderer ); - fpsScreen.Render( e.Time ); + fpsScreen.Render( delta ); if( activeScreen == null || !activeScreen.HidesHud ) - hudScreen.Render( e.Time ); + hudScreen.Render( delta ); if( activeScreen != null ) - activeScreen.Render( e.Time ); + activeScreen.Render( delta ); Graphics.Mode3D( EnvRenderer is StandardEnvRenderer ); if( screenshotRequested ) diff --git a/ClassicalSharp/Platform/IPlatformWindow.cs b/ClassicalSharp/Platform/IPlatformWindow.cs index 070d4c0aa..8f30a9fff 100644 --- a/ClassicalSharp/Platform/IPlatformWindow.cs +++ b/ClassicalSharp/Platform/IPlatformWindow.cs @@ -67,8 +67,13 @@ namespace ClassicalSharp { } protected override void OnRenderFrame( FrameEventArgs e ) { - game.RenderFrame( e ); + game.RenderFrame( e.Time ); base.OnRenderFrame( e ); } + + protected override void OnResize( object sender, EventArgs e ) { + game.OnResize(); + base.OnResize( sender, e ); + } } }