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

Blueprints #2114

Merged

Conversation

ErhardSteinhauer
Copy link
Contributor

@ErhardSteinhauer ErhardSteinhauer commented Sep 29, 2024

About the PR

Upstream introduced new feature - blueprints. This PR slightly expands upon it by adding more blueprints that could be printed by scientists and sold to players.

  • Added a small collection of printable blueprints. Unlocked through research along with the corresponding items (includes advanced tools, T3 parts, bluespace bags and some hardsuits). Blueprints can be stamped, signed, burned, eaten and recycled. Fax can be used to send printed blueprints.
  • Added a small collection of blueprints obtainable in expeditions only (uranium and incendiary ammo, laser cannon and x-ray cannon). Those cannot be faxed. Can be eaten though.
  • Added Blueprint Lithograph - new lathe available from flatpackvend or science bundle; machine board printable from circuit imprinter at round start.
  • Techfabs (most of them) can accept blueprints now.

Why / Balance

Hopefully this will give a small boost to interaction between science players and the rest of the server.

How to test

  1. Spawn R&D server, R&D computer, blueprint lithograph, debug research disk.
  2. Unlock technologies and watch how the list of available for printing blueprints grows.
  3. Print blueprints, insert them in techfabs.

Media

image
image

Requirements

Breaking changes

Changelog
🆑 erhardsteinhauer

  • add: Blueprints can now be printed or found on expeditions. They unlock recipes in lathes or techfabs and can be stamped, signed, burned, eaten, recycled and faxed (destroying the original - exped blueprints cannot be faxed).
  • add: Added the Blueprint Lithograph, a new lathe available from the FlatpackVend, science bundle, or circuit imprinter. It prints blueprints from stacks of paper.

Copy link
Contributor

github-actions bot commented Sep 29, 2024

RSI Diff Bot; head commit 2d6c058 merging into 56b290b
This PR makes changes to 1 or more RSIs. Here is a summary of all changes:

Resources/Textures/_NF/Objects/Specific/Research/rped.rsi

State Old New Status
icon Added
inhand-left Added
inhand-right Added

Resources/Textures/_NF/Objects/Storage/Cases/documentcaseshort.rsi

State Old New Status
icon-open Added
icon Added
inhand-left Added
inhand-right Added
unshaded Added

Resources/Textures/_NF/Objects/Tools/blueprints.rsi

State Old New Status
icon-base Added
icon-text Added
inhand-left-base Added
inhand-left-text Added
inhand-right-base Added
inhand-right-text Added

Resources/Textures/_NF/Structures/Machines/blueprint_printer.rsi

State Old New Status
building Added
icon Added
panel Added
unlit Added

Edit: diff updated after 2d6c058

@whatston3
Copy link
Contributor

Blueprints can be stamped, signed, burned, eaten and recycled.
Finally, engineering gameplay. :^)

I think this feature could be really useful, will give it a look.

I might look into getting something that can pull in researched recipes, so anything that's researchable can be printed off without needing to define extra entities, but man this was really fast.

@ErhardSteinhauer
Copy link
Contributor Author

I might look into getting something that can pull in researched recipes, so anything that's researchable can be printed off without needing to define extra entities, but man this was really fast.

Man, halfway through this PR I wished I wasn't C#-illiterate to make it happen.

@ErhardSteinhauer
Copy link
Contributor Author

Gonna add some blueprints that can't be copied/faxed as exped loot and then I'm done with this.

@whatston3
Copy link
Contributor

Gonna add some blueprints that can't be copied/faxed as exped loot and then I'm done with this.

I think that all blueprints should be destroyed on faxing (so a copy does nothing, and a "send" destroys the original). If you don't have this, the value of selling a blueprint is questionable. I'll get this working in short order, and I can add it to this if you'd like, or give you the diff.

@ErhardSteinhauer
Copy link
Contributor Author

I think that all blueprints should be destroyed on faxing (so a copy does nothing, and a "send" destroys the original). If you don't have this, the value of selling a blueprint is questionable. I'll get this working in short order, and I can add it to this if you'd like, or give you the diff.

Sounds good to me. Just add to this PR then. For now I just removed "faxable" component from exped loot blueprint parent.

@ErhardSteinhauer
Copy link
Contributor Author

A'ight, it is done.

@dvir001
Copy link
Contributor

dvir001 commented Sep 29, 2024

I think the next step is to make the blueprints costs small number of sci points to print (Can be in later PR)
Allowing us to remove the disk print meta, and have a blueprint sell meta.

@dvir001
Copy link
Contributor

dvir001 commented Sep 29, 2024

Also please don't kill me but keep the NF in entity names as suffix, not prefix.

@github-actions github-actions bot added the Status: Needs Review This PR is awaiting reviews label Sep 29, 2024
@ErhardSteinhauer
Copy link
Contributor Author

Also please don't kill me but keep the NF in entity names as suffix, not prefix.

I've done it this way, because I believe sooner or later upstream will add a bunch of blueprints and we'll have some issues with IDs because of that.

@ErhardSteinhauer
Copy link
Contributor Author

Allowing us to remove the disk print meta, and have a blueprint sell meta.

I doubt that selling blueprints to players will ever become meta

@ErhardSteinhauer
Copy link
Contributor Author

Also please don't kill me but keep the NF in entity names as suffix, not prefix.

Ugh, wait. Wdym? Suffix goes to the end of the ID, prefix goes to the beginning of the ID, is it not? NF is a suffix there.

@dvir001
Copy link
Contributor

dvir001 commented Sep 29, 2024

prefix

*prefix my bad

I been slowly fixing it all to be NFEntity and not EntityNF

@ErhardSteinhauer
Copy link
Contributor Author

Ugh, sure. 😭

@github-actions github-actions bot added C# and removed No C# labels Sep 29, 2024
@github-actions github-actions bot added the FTL label Sep 29, 2024
Copy link
Contributor

@whatston3 whatston3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

RSI validator passes on whatston3#4, no changes to sprites in the meantime, should be good. Happy with the state of this.

Ideally, I think blueprints should be restricted in terms of what machines accept them (i.e. no salvage blueprints in medical techfabs), but otherwise this seems fine.

I'd like a second pair of eyes on this, but it seems good to me. Destruction on fax send/copy seems useful for sensitive docs, might be have for other things.

Nicely done, good feature.

@whatston3
Copy link
Contributor

What if we removed the BlueprintReceiver from the autolathe and tinkered with the techfabs that would accept each blueprint type?

@whatston3
Copy link
Contributor

whatston3 commented Sep 30, 2024

What if we removed the BlueprintReceiver from the autolathe and tinkered with the techfabs that would accept each blueprint type?

https://github.com/ErhardSteinhauer/frontier-station-14/compare/2024-09-Blueprint-Printing...whatston3:frontier-station-14:2024-09-Blueprint-Printing-suggestions?expand=1

Here's a set of changes that should enable it.

  • Inserting the wrong blueprint type prints out a message saying so (I think we should include this regardless of what happens, useful QoL)
  • Blueprint parents are associated with one or more NF-prefixed blueprint techfab tags (could move to components, but they're tags for now)
  • The description on each blueprint states which machines it should work on (manually upkept, at least for now)
  • Techfabs are associated with their respective tags, and not to the autolathe tag.
  • Armory blueprint parenting is a bit of a mess as there may be blueprints you want in the NFSD fab but not the merc/ammo fab (shuttle guns at the moment if they were printable)
  • It might be interesting if the hacked mercfab could accept NFSD blueprints but I've left it to only accept base merc prints for now.

Here's a trivial video of the system in use, showing a science-labelled blueprint failing to insert in a med/ammofab, then a blueprint being inserted into each successfully.

2024-09-30.12-50-47.mp4

@ErhardSteinhauer
Copy link
Contributor Author

I'm ugh still not sold on the idea of limiting which techfab/lathe can take which blueprints, I think it mostly detracts from QoL side of things: the way I think this feature going to work is that majority of players will get 1-2 blueprints with something small that needs to be produced in fairly large numbers (like T3 parts, power cells or something like that), but if they need another lathe only to use that 1-2 blueprints then.. Why even bother at this point? Worse yet, if you need 2 blueprints only to find out that you need 2 more lathes for them to work.

@ErhardSteinhauer
Copy link
Contributor Author

Not that lathes are hard to acquire, but the proposed feature feels like unnecessary complication to me. I might be wrong though.

@dustylens
Copy link
Contributor

Erhard are you saying that if I put the blueprint into a service techfab that fabricator should be able to thereafter make whatever the blueprint was for? That a service fabricator could, with the proper blueprint, make recipes that otherwise would be unlocked for the exosuit fabricator?

@whatston3
Copy link
Contributor

I'm ugh still not sold on the idea of limiting which techfab/lathe can take which blueprints, I think it mostly detracts from QoL side of things: the way I think this feature going to work is that majority of players will get 1-2 blueprints with something small that needs to be produced in fairly large numbers (like T3 parts, power cells or something like that), but if they need another lathe only to use that 1-2 blueprints then.. Why even bother at this point? Worse yet, if you need 2 blueprints only to find out that you need 2 more lathes for them to work.

The counterpoint to this is that, if we were able to get a bunch of blueprints, and for pretty much anything, if you can insert them into anything, the separation between techfabs becomes moot. Not insisting on this, but I do think that some separation might be useful.

Regardless, I've touched up a few of the sprites, the in-hand blueprints looked a bit odd to me having only one shade in the text and the coloured background. Thoughts?

image

image

@whatston3
Copy link
Contributor

Not that lathes are hard to acquire, but the proposed feature feels like unnecessary complication to me. I might be wrong though.

Perhaps then you could also add a universal techfab that accepts all blueprints (arriving back at the autolathe point, but gating it behind other research)

@ErhardSteinhauer
Copy link
Contributor Author

The counterpoint to this is that, if we were able to get a bunch of blueprints, and for pretty much anything, if you can insert them into anything, the separation between techfabs becomes moot. Not insisting on this, but I do think that some separation might be useful.

I don't think that it is a bad thing, because at this point player spent a bit of effort into making his favorite techfab into ultimate fabricator unit that is horrendously annoying to use due to how long the list of craftable items has become. I don't think that this is going to be a common occurrence though. A thought (that I'm not going to act upon right now in this PR): maybe limit blueprints shenanigans to autolathe then, just like it was in the base game? Will make the machine relevant again.

Regardless, I've touched up a few of the sprites, the in-hand blueprints looked a bit odd to me having only one shade in the text and the coloured background. Thoughts?

Looks way better than original ones, good stuff.

@ErhardSteinhauer
Copy link
Contributor Author

Erhard are you saying that if I put the blueprint into a service techfab that fabricator should be able to thereafter make whatever the blueprint was for? That a service fabricator could, with the proper blueprint, make recipes that otherwise would be unlocked for the exosuit fabricator?

Yes. At least now.

@dustylens
Copy link
Contributor

I think the idea for a master control lathe is a good one. Having some kind of large multiblock lathe that can accept all materials and build all things is probably a good idea for someone who wants to make a manufacturing hub.

But downstream of that I do not think that it connects that lathes that are specialized for a task, such as an exosuit fabricator, are equipped to produce ammunition. Unless the thinking here is that every lathe is exactly the same with a different candy shell. As it stands aren't there complications in that not all lathes will accept all materials?

@ErhardSteinhauer
Copy link
Contributor Author

But downstream of that I do not think that it connects that lathes that are specialized for a task, such as an exosuit fabricator, are equipped to produce ammunition. Unless the thinking here is that every lathe is exactly the same with a different candy shell. As it stands aren't there complications in that not all lathes will accept all materials?

imo if a lathe can make something as complicated as articulated borg's appendages or MMI, then it can produce something as dumb as ammo (provided it has instructions - a blueprint - and materials). miracles of far-future fdm printing or whatever.

the fact that you can put a blueprint into a lathe doesn't mean that you will.

@dvir001 dvir001 self-requested a review October 3, 2024 11:33
Copy link
Contributor

@dvir001 dvir001 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good to go.

@dvir001 dvir001 merged commit a77cbd1 into new-frontiers-14:master Oct 3, 2024
14 of 15 checks passed
FrontierATC added a commit that referenced this pull request Oct 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants