This commit is contained in:
EggleEgg 2026-03-07 21:24:30 +01:00 committed by GitHub
commit 73cc1f8ffb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 17 additions and 10 deletions

View file

@ -1532,6 +1532,7 @@ rules.legacylaunchpads.info = Allows using launch pads without landing pads, as
landingpad.legacy.disabled = [scarlet]\ue815 Disabled[lightgray] (Legacy Launch Pads enabled)
rules.showspawns = Show Enemy Spawns
rules.randomwaveai = Unpredictable Wave AI
rules.pauseDisabled = Disable Pausing
rules.fire = Fire
rules.anyenv = <Any>
rules.explosions = Block/Unit Explosion Damage

View file

@ -146,7 +146,7 @@ public class Control implements ApplicationListener, Loadable{
//autohost for pvp maps
Events.on(WorldLoadEvent.class, event -> app.post(() -> {
if(state.rules.pvp && !net.active()){
if(state.rules.pvp && !net.active() && !state.rules.pauseDisabled){
try{
net.host(port);
player.admin = true;
@ -249,7 +249,7 @@ public class Control implements ApplicationListener, Loadable{
if(ccore != null){
anyBuilds = true;
if(!net.active()){
if(!net.active() && !state.rules.pauseDisabled){
build.pickedUp();
build.tile.remove();
@ -606,7 +606,7 @@ public class Control implements ApplicationListener, Loadable{
@Override
public void pause(){
if(settings.getBool("backgroundpause", true) && !net.active()){
if(settings.getBool("backgroundpause", true) && !net.active() && !state.rules.pauseDisabled){
backgroundPaused = true;
wasPaused = state.is(State.paused);
if(state.is(State.playing)) state.set(State.paused);
@ -615,7 +615,7 @@ public class Control implements ApplicationListener, Loadable{
@Override
public void resume(){
if(state.is(State.paused) && !wasPaused && settings.getBool("backgroundpause", true) && !net.active()){
if(state.is(State.paused) && !wasPaused && settings.getBool("backgroundpause", true) && !net.active() && !state.rules.pauseDisabled){
state.set(State.playing);
}
backgroundPaused = false;
@ -710,7 +710,7 @@ public class Control implements ApplicationListener, Loadable{
core.items.each((i, a) -> i.unlock());
}
if(backgroundPaused && settings.getBool("backgroundpause") && !net.active()){
if(backgroundPaused && settings.getBool("backgroundpause") && !net.active() && !state.rules.pauseDisabled){
state.set(State.paused);
}
@ -719,7 +719,7 @@ public class Control implements ApplicationListener, Loadable{
state.set(State.playing);
}
if(!net.client() && Core.input.keyTap(Binding.pause) && !(state.isCampaign() && state.afterGameOver) && !renderer.isCutscene() && !scene.hasDialog() && !scene.hasKeyboard() && !ui.restart.isShown() && (state.is(State.paused) || state.is(State.playing))){
if(!net.client() && !state.rules.pauseDisabled && Core.input.keyTap(Binding.pause) && !(state.isCampaign() && state.afterGameOver) && !renderer.isCutscene() && !scene.hasDialog() && !scene.hasKeyboard() && !ui.restart.isShown() && (state.is(State.paused) || state.is(State.playing))){
state.set(state.isPaused() ? State.playing : State.paused);
}
@ -732,7 +732,7 @@ public class Control implements ApplicationListener, Loadable{
ui.chatfrag.hide();
}else if(!ui.paused.isShown() && !scene.hasDialog()){
ui.paused.show();
if(!net.active()){
if(!net.active() && !state.rules.pauseDisabled){
state.set(State.paused);
}
}

View file

@ -13,11 +13,13 @@ public class CampaignRules{
public boolean legacyLaunchPads;
public boolean rtsAI;
public boolean clearSectorOnLose;
public boolean pauseDisabled;
public void apply(Planet planet, Rules rules){
rules.staticFog = rules.fog = fog;
rules.showSpawns = showSpawns;
rules.randomWaveAI = randomWaveAI;
rules.pauseDisabled = pauseDisabled;
rules.objectiveTimerMultiplier = difficulty.waveTimeMultiplier;
if(planet.showRtsAIRule){
boolean enabled = rtsAI && rules.attackMode; //if attackMode becomes false (waves enabled), turn off RTS AI

View file

@ -40,6 +40,8 @@ public class Rules{
public boolean pvp;
/** Whether is waiting for players enabled in PvP. */
public boolean pvpAutoPause = true;
/** Whether pause is enabled or not in singleplayer */
public boolean pauseDisabled = false;
/** Whether to pause the wave timer until all enemies are destroyed. */
public boolean waitEnemies = false;
/** Determines if gamemode is attack mode. */

View file

@ -69,6 +69,7 @@ public class CampaignRulesDialog extends BaseDialog{
check("@rules.fog", b -> rules.fog = b, () -> rules.fog);
check("@rules.showspawns", b -> rules.showSpawns = b, () -> rules.showSpawns);
check("@rules.randomwaveai", b -> rules.randomWaveAI = b, () -> rules.randomWaveAI);
check("@rules.pauseDisabled", b -> rules.pauseDisabled = b, () -> rules.pauseDisabled);
if(planet.showRtsAIRule){
check("@rules.rtsai.campaign", b -> rules.rtsAI = b, () -> rules.rtsAI);

View file

@ -217,6 +217,7 @@ public class CustomRulesDialog extends BaseDialog{
category("environment");
check("@rules.pauseDisabled", b -> rules.pauseDisabled = b, () -> rules.pauseDisabled);
check("@rules.explosions", b -> rules.damageExplosions = b, () -> rules.damageExplosions);
check("@rules.fire", b -> rules.fire = b, () -> rules.fire);
check("@rules.fog", b -> rules.fog = b, () -> rules.fog);

View file

@ -359,13 +359,13 @@ public class HudFragment{
.name("schematics");
select.button(Icon.pause, style, () -> {
if(net.active()){
if(net.active() || state.rules.pauseDisabled){
ui.listfrag.toggle();
}else{
state.set(state.isPaused() ? State.playing : State.paused);
}
}).name("pause").update(i -> {
if(net.active()){
if(net.active() || state.rules.pauseDisabled){
i.getStyle().imageUp = Icon.players;
}else{
i.setDisabled(false);
@ -1137,7 +1137,7 @@ public class HudFragment{
}
private boolean canSkipWave(){
return state.rules.waves && state.rules.waveSending && ((net.server() || player.admin) || !net.active()) && state.enemies == 0 && !spawner.isSpawning();
return state.rules.waves && state.rules.waveSending && ((net.server() || player.admin) || !net.active()) && !state.rules.pauseDisabled && state.enemies == 0 && !spawner.isSpawning();
}
}