Procedural sectors on Serpulo now require a Foundation core

This commit is contained in:
Anuken
2025-05-01 17:12:17 -04:00
parent aecc3980fd
commit d820557bd3
6 changed files with 41 additions and 12 deletions

View File

@@ -1,5 +1,6 @@
package mindustry.maps.planet;
import arc.*;
import arc.graphics.*;
import arc.math.*;
import arc.math.geom.*;
@@ -10,6 +11,7 @@ import mindustry.ai.*;
import mindustry.ai.BaseRegistry.*;
import mindustry.content.*;
import mindustry.game.*;
import mindustry.gen.*;
import mindustry.graphics.g3d.PlanetGrid.*;
import mindustry.maps.generators.*;
import mindustry.type.*;
@@ -63,6 +65,21 @@ public class SerpuloPlanetGenerator extends PlanetGenerator{
return (Mathf.pow(Simplex.noise3d(seed, 7, 0.5f, 1f/3f, position.x, position.y, position.z), 2.3f) + waterOffset) / (1f + waterOffset);
}
@Override
public boolean allowLanding(Sector sector){
return sector.planet.allowLaunchToNumbered && (sector.hasBase() || sector.near().contains(s -> s.hasBase() &&
(s.info.bestCoreType.size >= 4 || s.isBeingPlayed() && state.rules.defaultTeam.cores().contains(b -> b.block.size >= 4))));
}
@Override
public void getLockedText(Sector hovered, StringBuilder out){
if(hovered.preset == null && hovered.near().contains(Sector::hasBase)){
out.append("[red]").append(Iconc.cancel).append("[]").append(Blocks.coreFoundation.emoji()).append(Core.bundle.get("sector.foundationrequired"));
}else{
super.getLockedText(hovered, out);
}
}
@Override
public void generateSector(Sector sector){