Skip to content

Remove unfinished AOE repair recipe - #4

Closed
grepsedawk wants to merge 22 commits into
mainfrom
factorymod-remove-aoe-repair
Closed

Remove unfinished AOE repair recipe#4
grepsedawk wants to merge 22 commits into
mainfrom
factorymod-remove-aoe-repair

Conversation

@grepsedawk

Copy link
Copy Markdown
Owner

The AOEREPAIR recipe type was never finished. The config parser warned on load that it was "not tested or even completly developed," and no factory config in the repo uses it. It surfaced while reviewing the auto-repair change, since it was the one code path that set a repair recipe on another factory.

This removes the AOERepairRecipe class and its parser case. 204 lines gone, nothing added.

Sending this to the fork rather than straight to Eden since it drops a supported recipe type. Eden's configs are clean, but if any downstream server set type: AOEREPAIR, that config would stop parsing. Worth a second look before it lands.

Chub74 and others added 22 commits May 26, 2026 19:36
Should fix the issue with 2x2 trees not growing correctly or deleting saplings in the process
Add a "Time remaining: N <unit>" line to pearl item lore directly
beneath the existing health line. The interval count is computed
from the configured decay rate, rounded up, and uses the same
admin-configured unit string as the existing repair-cost lines,
so operators control plurality and translation in one place.

The line is hidden when the pearl is inactive (decay is already
flagged separately as "suspended due to Inactivity"), when health
has reached zero, or when decay is disabled in config.

While here, hoist the shared decay-per-interval and unit values
so the existing repair-cost loop reuses them instead of
recomputing per material.
compareTo read this block's world UID for both operands, so the
world comparison was always zero and blocks in different worlds
with identical coordinates compared equal. That breaks the
Comparable contract and corrupts TreeSet/TreeMap membership.

Read the other block's world instead, and add a regression test
covering cross-world ordering and antisymmetry.
The convenience insertData overloads delegated to the canonical
method with the server and world arguments transposed, so callers
using the documented (server, world) order had the two columns
stored swapped. No caller in the tree relied on the broken order.

Pass the arguments in the correct order, and add a test asserting
server and world each bind to their own column.
Migrator prepared the REPLACE INTO migrations statement and bound
its parameters but never executed it, so the applied id was never
stored and every migration re-ran on each boot.

Execute the statement, and close the prepared and created
statements with try-with-resources to fix the leaks.
…ing-on-pearls

Show days remaining on pearls
Factory QoL and Decompactor fixes
Fix world comparison in BastionBlock.compareTo
…world

Fix swapped server/world in insertData overloads
CivScoreBoard truncates the displayed line at 40 characters but
caches the full string, so a destination longer than ~29 chars left a
stale line that never cleared when switching destinations. Cap the
rendered value so the line fits and the cached and displayed text match.

Also null-guard the setting-change listener to match
restoreDestinationDisplay, avoiding a stray update during reload.
Show rail destination on the sidebar scoreboard
The AOEREPAIR recipe type was never finished. The config parser warned
it was "not tested or even completly developed," and no factory config
uses it.

Removing the recipe class and its parser case.
@grepsedawk

Copy link
Copy Markdown
Owner Author

Retargeting to Eden.

@grepsedawk grepsedawk closed this Jun 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants