mirror of
https://github.com/Anuken/Mindustry.git
synced 2025-03-09 20:29:06 +07:00
Allow configuration of minimum and maximum camera distance in main game screen (#7603)
* Variable min and max zoom * Variable min and max zoom * Variable min and max zoom --------- Co-authored-by: ivan <ikamyshan@evolution.com> Co-authored-by: Anuken <arnukren@gmail.com>
This commit is contained in:
parent
0db7c1e36a
commit
0d96a68e84
@ -1262,6 +1262,9 @@ setting.macnotch.name = Adapt interface to display notch
|
||||
setting.macnotch.description = Restart required to apply changes
|
||||
steam.friendsonly = Friends Only
|
||||
steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
|
||||
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
||||
setting.minmagnificationmultiplierpercent.name = Max Camera Distance
|
||||
setting.minmagnificationmultiplierpercent.description = High values may cause performance issues.
|
||||
public.beta = Note that beta versions of the game cannot make public lobbies.
|
||||
uiscale.reset = UI scale has been changed.\nPress "OK" to confirm this scale.\n[scarlet]Reverting and exiting in[accent] {0}[] seconds...
|
||||
uiscale.cancel = Cancel & Exit
|
||||
|
@ -42,8 +42,11 @@ public class Renderer implements ApplicationListener{
|
||||
public FrameBuffer effectBuffer = new FrameBuffer();
|
||||
public boolean animateShields, drawWeather = true, drawStatus, enableEffects, drawDisplays = true, drawLight = true, pixelate = false;
|
||||
public float weatherAlpha;
|
||||
/** minZoom = zooming out, maxZoom = zooming in */
|
||||
/** minZoom = zooming out, maxZoom = zooming in, used by cutscenes */
|
||||
public float minZoom = 1.5f, maxZoom = 6f;
|
||||
|
||||
/** minZoom = zooming out, maxZoom = zooming in, used by actual gameplay zoom and regulated by settings **/
|
||||
public float minZoomInGame = 0.5f, maxZoomInGame = 6f;
|
||||
public Seq<EnvRenderer> envRenderers = new Seq<>();
|
||||
public ObjectMap<String, Runnable> customBackgrounds = new ObjectMap<>();
|
||||
public TextureRegion[] bubbles = new TextureRegion[16], splashes = new TextureRegion[12];
|
||||
@ -165,6 +168,8 @@ public class Renderer implements ApplicationListener{
|
||||
drawStatus = settings.getBool("blockstatus");
|
||||
enableEffects = settings.getBool("effects");
|
||||
drawDisplays = !settings.getBool("hidedisplays");
|
||||
maxZoomInGame = settings.getFloat("maxzoomingamemultiplier", 1) * maxZoom;
|
||||
minZoomInGame = minZoom / settings.getFloat("minzoomingamemultiplier", 1);
|
||||
drawLight = settings.getBool("drawlight", true);
|
||||
pixelate = settings.getBool("pixelate");
|
||||
|
||||
@ -486,11 +491,13 @@ public class Renderer implements ApplicationListener{
|
||||
}
|
||||
|
||||
public float minScale(){
|
||||
return Scl.scl(minZoom);
|
||||
if(control.input.logicCutscene) return Scl.scl(minZoom);
|
||||
return Scl.scl(minZoomInGame);
|
||||
}
|
||||
|
||||
public float maxScale(){
|
||||
return Mathf.round(Scl.scl(maxZoom));
|
||||
if(control.input.logicCutscene) return Mathf.round(Scl.scl(maxZoom));
|
||||
return Mathf.round(Scl.scl(maxZoomInGame));
|
||||
}
|
||||
|
||||
public float getScale(){
|
||||
|
@ -397,8 +397,23 @@ public class SettingsMenuDialog extends BaseDialog{
|
||||
}
|
||||
return s + "%";
|
||||
});
|
||||
|
||||
graphics.sliderPref("unitlaseropacity", 100, 0, 100, 5, s -> s + "%");
|
||||
graphics.sliderPref("bridgeopacity", 100, 0, 100, 5, s -> s + "%");
|
||||
|
||||
graphics.sliderPref("maxmagnificationmultiplierpercent", 100, 100, 200, 25, s -> {
|
||||
if(ui.settings != null){
|
||||
Core.settings.put("maxzoomingamemultiplier", (float)s / 100.0f);
|
||||
}
|
||||
return s + "%";
|
||||
});
|
||||
|
||||
graphics.sliderPref("minmagnificationmultiplierpercent", 100, 100, 300, 25, s -> {
|
||||
if(ui.settings != null){
|
||||
Core.settings.put("minzoomingamemultiplier", (float)s / 100.0f);
|
||||
}
|
||||
return s + "%";
|
||||
});
|
||||
|
||||
if(!mobile){
|
||||
graphics.checkPref("vsync", true, b -> Core.graphics.setVSync(b));
|
||||
|
Loading…
Reference in New Issue
Block a user