Internal support for legacy launch pads (hidden)

This commit is contained in:
Anuken
2025-02-03 19:27:08 -05:00
parent 55e32f9580
commit 4e225f9190
11 changed files with 69 additions and 16 deletions

View File

@@ -292,7 +292,7 @@ public class LandingPad extends Block{
cooldown = Mathf.clamp(cooldown);
}
if(config != null && state.isCampaign()){
if(config != null && state.isCampaign() && !state.getPlanet().campaignRules.legacyLaunchPads){
if(cooldown <= 0f && efficiency > 0f && items.total() == 0 && state.rules.sector.info.getImportRate(state.getPlanet(), config) > 0f && state.rules.sector.info.importCooldownTimers.get(config, 0f) >= 1f){
@@ -344,9 +344,14 @@ public class LandingPad extends Block{
table.row();
table.label(() -> {
if(config == null || !state.isCampaign()){
return "";
if(!state.isCampaign()) return "";
if(state.getPlanet().campaignRules.legacyLaunchPads){
return Core.bundle.get("landingpad.legacy.disabled");
}
if(config == null) return "";
int sources = 0;
float perSecond = 0f;
for(var s : state.getPlanet().sectors){

View File

@@ -296,7 +296,9 @@ public class LaunchPad extends Block{
Events.fire(new LaunchItemEvent(stack));
}
destsec.addItems(dest);
if(state.getPlanet().campaignRules.legacyLaunchPads){
destsec.addItems(dest);
}
}
}
}

View File

@@ -15,6 +15,8 @@ public class BuildVisibility{
worldProcessorOnly = new BuildVisibility(() -> Vars.state.rules.editor || Vars.state.rules.allowEditWorldProcessors),
sandboxOnly = new BuildVisibility(() -> Vars.state == null || Vars.state.rules.infiniteResources),
campaignOnly = new BuildVisibility(() -> Vars.state == null || Vars.state.isCampaign()),
legacyLaunchPadOnly = new BuildVisibility(() -> (Vars.state == null || Vars.state.isCampaign() && Vars.state.getPlanet().campaignRules.legacyLaunchPads) && Blocks.advancedLaunchPad != null && Blocks.advancedLaunchPad.unlocked()),
notLegacyLaunchPadOnly = new BuildVisibility(() -> (Vars.state == null || Vars.state.isCampaign() && !Vars.state.getPlanet().campaignRules.legacyLaunchPads)),
lightingOnly = new BuildVisibility(() -> Vars.state == null || Vars.state.rules.lighting || Vars.state.isCampaign()),
ammoOnly = new BuildVisibility(() -> Vars.state == null || Vars.state.rules.unitAmmo),
fogOnly = new BuildVisibility(() -> Vars.state == null || Vars.state.rules.fog || Vars.state.rules.editor);