Skip to content

Commit

Permalink
Fix preview panel dragging experience
Browse files Browse the repository at this point in the history
Preview panel dragging is clunky if zoom level above 1. The higher the zoom level, the worser it is.
This issue fixed by changing datatype that shifting the chunk position in preview panel from int to float. This happens probably rounding error and such
  • Loading branch information
binstarjs03 authored and mmdanggg2 committed Nov 15, 2022
1 parent 45fa79f commit 7913834
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions src/org/jmc/gui/PreviewPanel.java
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ public class PreviewPanel extends JPanel implements MouseMotionListener, MouseWh
/**
* Offset of the map, as set by dragging the map around.
*/
private int shift_x,shift_y;
private float shift_x,shift_y;
/**
* Zoom level of the map.
*/
Expand Down Expand Up @@ -449,8 +449,8 @@ public Rectangle getChunkBounds()
{
Rectangle ret=new Rectangle();

ret.x=(-shift_x/64)-1;
ret.y=(-shift_y/64)-1;
ret.x=((int)-shift_x/64)-1;
ret.y=((int)-shift_y/64)-1;
ret.width=(int) Math.ceil((getWidth()/zoom_level)/64.0)+1;
ret.height=(int) Math.ceil((getHeight()/zoom_level)/64.0)+1;

Expand Down Expand Up @@ -771,8 +771,8 @@ public void mouseDragged(MouseEvent e) {

if(moving_map)
{
shift_x+=(x-last_x)/zoom_level;
shift_y+=(y-last_y)/zoom_level;
shift_x+=(float)(x-last_x)/zoom_level;
shift_y+=(float)(y-last_y)/zoom_level;

last_x=x;
last_y=y;
Expand Down

0 comments on commit 7913834

Please sign in to comment.