Skip to content

Commit 780b206

Browse files
committed
Update Perspective stuff when window is resized
1 parent 558d6cb commit 780b206

File tree

2 files changed

+22
-14
lines changed

2 files changed

+22
-14
lines changed

src/progressed/ProgMats.java

+13-12
Original file line numberDiff line numberDiff line change
@@ -114,21 +114,22 @@ public static boolean farting(){
114114
return settings.getBool("pm-farting", false);
115115
}
116116

117+
public static void updateZoomRange(){
118+
if(state.isGame()){ //Zoom range
119+
if(control.input.logicCutscene){ //Dynamically change zoom range to not break cutscene zoom
120+
renderer.minZoom = 1.5f;
121+
renderer.maxZoom = 6f;
122+
}else{
123+
renderer.minZoom = 0.667f;
124+
renderer.maxZoom = Perspective.maxZoom();
125+
}
126+
}
127+
}
128+
117129
private static void setupZoom(){
118-
//TODO Adjust minZoom based on fov and scale to never result in a negative viewport z.
119130
renderer.minZoom = Math.min(renderer.minZoom, 0.667f); //Zoom out farther
120131
renderer.maxZoom = Perspective.maxZoom(); //Get a closer look at yourself
121132

122-
Events.run(Trigger.update, () -> {
123-
if(state.isGame()){ //Zoom range
124-
if(control.input.logicCutscene){ //Dynamically change zoom range to not break cutscene zoom
125-
renderer.minZoom = 1.5f;
126-
renderer.maxZoom = 6f;
127-
}else{
128-
renderer.minZoom = 0.667f;
129-
renderer.maxZoom = Perspective.maxZoom();
130-
}
131-
}
132-
});
133+
Events.run(Trigger.update, ProgMats::updateZoomRange);
133134
}
134135
}

src/progressed/graphics/draw3d/Perspective.java

+9-2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import arc.math.*;
55
import arc.math.geom.*;
66
import mindustry.game.EventType.*;
7+
import progressed.*;
78
import progressed.util.*;
89

910
import static arc.Core.*;
@@ -36,9 +37,15 @@ public class Perspective{
3637
lastScale = renderer.getDisplayScale();
3738
fov = newFov;
3839
cameraZ = calcCameraZ();
39-
viewportSize();
40+
updateViewportSize();
4041
}
4142
});
43+
44+
Events.on(ResizeEvent.class, e -> app.post(() -> {
45+
cameraZ = calcCameraZ();
46+
updateViewportSize();
47+
ProgMats.updateZoomRange();
48+
}));
4249
}
4350
}
4451

@@ -142,7 +149,7 @@ public static float maxZoom(){
142149
}
143150

144151
/** Calculates the size of the viewport. */
145-
private static void viewportSize(){
152+
private static void updateViewportSize(){
146153
float v1 = (float)(Math.tan(fov / 2f * Mathf.degRad) * viewportOffset * 2f);
147154
if(camera.width >= camera.height){
148155
float v2 = v1 * (camera.height / camera.width);

0 commit comments

Comments
 (0)