Scan filename overwrites DecorationController schematicName
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 55
- Forks
- 53
- Avg merge
- 20m
- Merged PRs (30d)
- 1
Description
When taking a scan of a structure containing a DecorationController (or really any block implementing IBlueprintDataProvider), the filename of the scan blindly overwrites the schematicName. This presents a situation where it's nearly impossible to build upgradable schematics without manually editing the DecorationController nbt in the blueprint file after the fact.
Tracing the code, it's because of this line here:
https://github.com/ldtteam/Structurize/blob/a4484f5ca9dbf2118b904f26fc2c863157258f04/src/main/java/com/ldtteam/structurize/items/ItemScanTool.java#L185
Any solution for this problem should handle both the situation of a DecorationController with an empty schematicName as well as the situation of a DecorationController with an existing schematicName.
For context, the specific problem I have is as follows: I'm trying to scan an upgradable schematic named techyshishy/blackstone/paths/intersection5. The file needs to live at schematics/ts/blackstone/paths/intersectiont5.blueprint, the DecorationController needs to have a schematicName of schematics/techyshishy/blackstone/paths/intersection, and when I actually make the scan, the scan tool has a character limit, so I need to scan it to just intersection5, and then move it into place manually.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in src/main/java/com/ldtteam/structurize/items/ItemScanTool.java around line 185, where the scan filename is assigned to schematicName. Trace how DecorationController and other IBlueprintDataProvider blocks are serialized during scanning. Done means scans preserve an existing schematicName while handling providers with an empty one, without requiring manual blueprint NBT edits.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- game-dev
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100