Skip to content
This repository was archived by the owner on Aug 31, 2026. It is now read-only.

Commit af337fa

Browse files
committed
Merge origin/dev into feature/live-in-hyperspace
Brings in the telescope region survey, the interstellar-leg measurement and the .codex/ ignore. The only overlap is the test probe command, where both sides added their own verbs; both are kept.
2 parents feae91d + 0180473 commit af337fa

13 files changed

Lines changed: 2326 additions & 7 deletions

File tree

‎.gitignore‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,5 @@ logs/
4141
/AGENTS.md
4242
/SETUP-AR.md
4343
.claude/
44+
.codex/
4445
.AdvancedRocketry-navigator.git/

‎src/main/java/zmaster587/advancedRocketry/api/ARConfiguration.java‎

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,22 @@ public class ARConfiguration {
287287
@ConfigProperty
288288
public int planetDiscoveryChance;
289289
@ConfigProperty
290+
public int telescopeScanRangeSectors;
291+
@ConfigProperty
292+
public int telescopeScanHalfWidthSectors;
293+
@ConfigProperty
294+
public int telescopeScanMaxSectors;
295+
@ConfigProperty
296+
public int telescopeScanBaseTicks;
297+
@ConfigProperty
298+
public int telescopeScanTicksPerSector;
299+
@ConfigProperty
300+
public int telescopeScanCellsPerStep;
301+
@ConfigProperty
302+
public int telescopePassiveRadiusSectors;
303+
@ConfigProperty
304+
public int telescopeSurveyDataPerStep;
305+
@ConfigProperty
290306
public boolean allowNonArBiomesInTerraforming;
291307
@ConfigProperty
292308
public double oxygenVentPowerMultiplier;
@@ -514,6 +530,14 @@ public static void loadPreInit() {
514530
//Planet
515531
arConfig.planetsMustBeDiscovered = config.get(PLANET, "planetsMustBeDiscovered", false, "Planets must be discovered in the warp controller before being visible").getBoolean();
516532
arConfig.planetDiscoveryChance = config.get(PLANET, "planetDiscoveryChance", 5, "Chance of planet discovery in the warp controller, chance is 1/n", 1, Integer.MAX_VALUE).getInt();
533+
arConfig.telescopeScanRangeSectors = config.get(PLANET, "telescopeScanRangeSectors", 24, "How far, in galactic sectors, an observatory's region scan can be aimed. This is the instrument's horizon: beyond it the sky is not resolvable, which is what keeps an endless universe from being read off a telescope. A scan aimed farther is clamped to this.", 1, Integer.MAX_VALUE).getInt();
534+
arConfig.telescopeScanHalfWidthSectors = config.get(PLANET, "telescopeScanHalfWidthSectors", 2, "Half-width, in sectors, of the region one survey sweeps. 0 means a single sector, 1 a 3x3x3 neighbourhood, 2 a 5x5x5, and so on. Narrowed automatically when the resulting region would exceed telescopeScanMaxSectors.", 0, Integer.MAX_VALUE).getInt();
535+
arConfig.telescopeScanMaxSectors = config.get(PLANET, "telescopeScanMaxSectors", 1000, "Hard ceiling on how many sectors one survey may cover. The width above is narrowed until the region fits under this. A sweep may be long, but never unbounded.", 1, Integer.MAX_VALUE).getInt();
536+
arConfig.telescopeScanBaseTicks = config.get(PLANET, "telescopeScanBaseTicks", 200, "Ticks one STEP of a survey takes before distance is counted - the cost of holding the instrument on a patch of sky at all. Only applies with planetsMustBeDiscovered on; without research, an observation is instant.", 0, Integer.MAX_VALUE).getInt();
537+
arConfig.telescopeScanTicksPerSector = config.get(PLANET, "telescopeScanTicksPerSector", 100, "Extra ticks per sector of distance, per step. This is what makes a far region a longer survey than a near one.", 0, Integer.MAX_VALUE).getInt();
538+
arConfig.telescopeScanCellsPerStep = config.get(PLANET, "telescopeScanCellsPerStep", 5, "How many cells of the region one step of a survey resolves. This is the bound that stops a sweep from enumerating everything at once.", 1, Integer.MAX_VALUE).getInt();
539+
arConfig.telescopeSurveyDataPerStep = config.get(PLANET, "telescopeSurveyDataPerStep", 0, "Distance data one step of a survey consumes, drawn from the observatory's data buses the same way its asteroid scan draws. A step with too little data waits rather than resolving, so an unfed instrument stalls instead of working for free. Zero (the default) means a survey costs nothing - what it should cost is a balance question, not a mechanic one.", 0, Integer.MAX_VALUE).getInt();
540+
arConfig.telescopePassiveRadiusSectors = config.get(PLANET, "telescopePassiveRadiusSectors", 2, "How far, in sectors, the passive local radar reaches around the observatory's own cell. Passive is the mode that costs nothing and watches the neighbourhood; the directed survey is what looks far away.", 0, Integer.MAX_VALUE).getInt();
517541
DimensionManager.dimOffset = config.getInt("minDimension", PLANET, 2, -127, 8000, "Lowest dimension ID that can be used for planets.");
518542
arConfig.canPlayerRespawnInSpace = config.get(PLANET, "allowPlanetRespawn", false, "Allow bed respawn on planets with breathable air.").getBoolean();
519543
arConfig.forcePlayerRespawnInSpace = config.get(PLANET, "forcePlanetRespawn", false, "Allow bed respawn on planets even without breathable air. Requires 'allowPlanetRespawn=true'.").getBoolean();

0 commit comments

Comments
 (0)