Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ABCU: Blueprint rework, QOL, whitelist bugfix #16637

Merged
merged 32 commits into from Nov 15, 2023

Conversation

kbsmilk
Copy link
Contributor

@kbsmilk kbsmilk commented Oct 25, 2023

[QOL] [CODE QUALITY] [GAME OBJECTS]

About the PR

  • Reworks blueprints. Old one was an obj that refs up to 1000 datums, gets used once, then discarded. Now, blueprints are a datum created on demand in the ABCU itself, which get left to GC upon replacement.

  • Blueprints can be printed to share with other players, temporarily or permanently. This is a new obj that only stores the savefile's path. Clients can use it on the ABCU to load that savefile, or on themselves to copy that savefile to their ckey folder.

  • File system-related procs were moved to be global, independent of datums, for organization and to facilitate usage by other code.

  • Whitelist and blacklist now work retroactively.

  • Adds a little more logging.

  • The terminal-like system used by the Blueprint Marker to select and manage savefiles, is gone. Replaced with searchable TGUI input lists across the board.

  • The code quality of the blueprint marker is largely untouched, and still in need of fixing. I left this to atomize, but I'm open to merging it with this PR.

Why's this needed?

Less duplicate code. Less memory usage. Blueprint sharing is fun. +QOL. Paves the way for silicons being able to use the ABCU.
Unfortunately this PR turned out larger than expected, but I didn't want to leave anything unfinished, unpolished, or needlessly removed.

Changelog

(u)Smilg
(+)ABCU blueprint management streamlined. You can now print blueprints for other players to copy/save directly.

@github-actions github-actions bot added the size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. label Oct 25, 2023
@keywordlabeler keywordlabeler bot added A-Game-Objects The point of this PR is to deal with a specific game object C-Code-Quality Cleans up code, refactors things to be more readable or intuitive C-QoL A quality of life improvement that makes the game easier to play labels Oct 25, 2023
@github-actions github-actions bot added size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. and removed size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. labels Oct 31, 2023
@kbsmilk kbsmilk requested a review from ZeWaka October 31, 2023 10:07
@github-actions github-actions bot added S-Merge-Conflict Applied and removed when a PR has or no longer has a merge conflict and removed S-Merge-Conflict Applied and removed when a PR has or no longer has a merge conflict labels Oct 31, 2023
@github-actions github-actions bot added size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. and removed size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Nov 5, 2023
@kbsmilk
Copy link
Contributor Author

kbsmilk commented Nov 5, 2023

the diff was bad, the merge conflicts were bad, i think it made other devs groan. organizing this file is gonna get its own dedicated PR.

@github-actions github-actions bot added S-Merge-Conflict Applied and removed when a PR has or no longer has a merge conflict and removed S-Merge-Conflict Applied and removed when a PR has or no longer has a merge conflict labels Nov 5, 2023
@github-actions github-actions bot removed the S-Merge-Conflict Applied and removed when a PR has or no longer has a merge conflict label Nov 7, 2023
@pali6 pali6 merged commit 3901821 into goonstation:master Nov 15, 2023
23 checks passed
github-actions bot pushed a commit that referenced this pull request Nov 15, 2023
@github-actions github-actions bot added the S-Ready-For-Final-Review This PR has been looked over by members of the community. (automatic after 2 approvals) label Nov 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Game-Objects The point of this PR is to deal with a specific game object C-Code-Quality Cleans up code, refactors things to be more readable or intuitive C-QoL A quality of life improvement that makes the game easier to play S-Ready-For-Final-Review This PR has been looked over by members of the community. (automatic after 2 approvals) size/XL Denotes a PR that changes 500-999 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants