ldtteam / ldtteam/Structurize

Scan filename overwrites DecorationController schematicName

Open
#335 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Bug
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.