-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
Description
Feature
Add a Smart! feature that allows mass-upgrading existing upgradeable structures in the world (not holograms), such as:
- Conveyors (belts)
- Conveyor lifts
- Pipelines (Mk.1/Mk.2)
- Pipeline supports/pumps (where applicable)
- Power poles (and other upgradeable power structures)
- Any other vanilla/modded buildables that implement upgrade mechanics
The goal is to reduce repetitive manual upgrading while preserving vanilla rules (costs, validation, multiplayer replication) and remaining compatible with modded content.
User Experience (Proposed)
Entry Point
- A Smart mode/tool action (e.g. "Mass Upgrade") that can be triggered from Smart UI / build gun context.
Selection / Targeting
Support at least one (preferably multiple) targeting methods:
- Radius selection: Upgrade all eligible structures within N meters.
- Box/volume selection: Define a 3D box (two corners) and upgrade everything inside.
- Type-filtered selection: Only belts / only lifts / only pipes / only power poles / etc.
- Line-of-sight + expand: Look at a structure and expand selection via network/chain traversal (see below).
Upgrade Choice
- Choose target tier per category:
- Belts: Mk1→Mk6 (or available tiers)
- Lifts: Mk1→Mk6
- Pipes: Mk1→Mk2
- Power poles: Mk1→Mk? (depending on game)
- Option: Auto-select best based on available inventory / configuration.
Preview + Confirm
- Show a summary before applying:
- Count of items by type
- Total cost (aggregate)
- Any items that will be skipped (not upgradeable, invalid, blocked)
- Confirm/Cancel.
Execution
- Apply upgrades in a safe way:
- Batch operation with progress feedback
- Optional throttling per tick to avoid spikes
Technical Requirements / Constraints
Costs
- Must respect vanilla costs and deductions.
- Must respect No Build Cost / Creative (if applicable).
- Should fail gracefully if insufficient items.
Multiplayer
- Must work correctly in multiplayer.
- Clients should not desync; all authoritative operations should be server-side.
Validation
- Only upgrade when valid:
- Must preserve connections (belt endpoints, pipe networks, power circuits)
- Must not break chain actors/networks
- If an upgrade would break something, skip and report.
Mod Compatibility
- Prefer capability-based detection over hardcoded class lists:
- Detect upgrade capability via buildable upgrade interfaces / properties
- Fall back to known vanilla types where needed
Edge Cases / Notes
- Belts/Lifts: Upgrading should not break
AFGConveyorChainActorbehavior; preserve direction and endpoints. - Pipes: Upgrading should preserve pipe networks; ensure post-upgrade network rebuild where required.
- Power: Preserve circuit connections; avoid disconnecting consumers/generators.
- Blueprints/Zoop: This feature targets already-built world actors; it should not conflict with placement systems.
Success Criteria
- Player can select an area and upgrade hundreds of items reliably.
- Costs are correct and consistent with vanilla.
- No crashes, no network desync.
- Clear report of upgraded vs skipped items.
Additional Context
This is intended as a general Smart feature, not limited to a specific building class, and should ideally support modded upgradeable structures when possible.
serjevski