Skip to content

Store InventoryItems as separate resource files - #2689

Open
wjt wants to merge 2 commits into
mainfrom
wjt/store-inventoryitems-as-separate-resource-files
Open

wjt wants to merge 2 commits into
mainfrom
wjt/store-inventoryitems-as-separate-resource-files

Conversation

@wjt

@wjt wjt commented Aug 11, 2026

Copy link
Copy Markdown
Member

Previously we defined InventoryItem resources inline in every scene that
uses them; and we hardcoded the world texture, HUD texture, and colour
for each in the script.

Turn these into properties of the resource. Create 3 on-disk resources
for the memory, imagination, and spirit threads. Add migration code to
collectible_item.gd which updates the property so that loading & saving
a scene using this script does the migration. Leave the migration code
in-place so that as out-of-tree quests are merged we can easily update
them.

Change the inventory storage to refer to those, rather than saving just
the item type name and reconstructing resources on load.

I think this will make it easier to add collectibles which are not
threads in future, and also to remember which threads have been
collected when loading or replaying a quest, though I haven't attempted
to do that here.

@github-actions

Copy link
Copy Markdown

Play this branch at https://play.threadbare.game/branches/endlessm/wjt/store-inventoryitems-as-separate-resource-files/.

(This launches the game from the start, not directly at the change(s) in this pull request.)

@wjt
wjt force-pushed the wjt/store-inventoryitems-as-separate-resource-files branch from c1eb4b2 to 5dc4280 Compare August 11, 2026 10:50
Comment thread tools/bulk_resave_scenes.gd
@wjt
wjt force-pushed the wjt/store-inventoryitems-as-separate-resource-files branch 2 times, most recently from d55808a to 2a35b3b Compare August 21, 2026 19:16
wjt added 2 commits September 20, 2026 17:10
Previously we defined InventoryItem resources inline in every scene that
uses them; and we hardcoded the world texture, HUD texture, and colour
for each in the script.

Turn these into properties of the resource. Create 3 on-disk resources
for the memory, imagination, and spirit threads. Add migration code to
collectible_item.gd which updates the property so that loading & saving
a scene using this script does the migration. Leave the migration code
in-place so that as out-of-tree quests are merged we can easily update
them.

Change the inventory storage to refer to those, rather than saving just
the item type name and reconstructing resources on load.

I think this will make it easier to add collectibles which are not
threads in future, and also to remember which threads have been
collected when loading or replaying a quest, though I haven't attempted
to do that here.
@wjt
wjt force-pushed the wjt/store-inventoryitems-as-separate-resource-files branch from 2a35b3b to 955144c Compare September 20, 2026 16:15
@wjt
wjt marked this pull request as ready for review September 20, 2026 16:16
@wjt
wjt requested review from a team as code owners September 20, 2026 16:16
@wjt

wjt commented Sep 20, 2026

Copy link
Copy Markdown
Member Author

Rebased and re-rewrote all the scenes.

I think this change makes sense. It does increase the chance of someone accidentally editing the text of one of the three threads rather than making a bespoke one. However we don't currently support collecting anything except these three items. And actually I think this is a useful step towards more generic collectibles.

@wjt

wjt commented Sep 20, 2026

Copy link
Copy Markdown
Member Author

Personally I would recommend tagging a release before merging this and #2693!

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.

1 participant