From a77cbd1324afe31ea656eb30ddd5f941b00a7152 Mon Sep 17 00:00:00 2001 From: ErhardSteinhauer <65374927+ErhardSteinhauer@users.noreply.github.com> Date: Thu, 3 Oct 2024 22:53:07 +0300 Subject: [PATCH] Blueprints (#2114) * Printable blueprints * tweaks * fixes * more fixes * stampable, edible, scaf blueprint * exped loot * hid * exped blueprints pricing * Delete sensitive documents on fax (no dupes) * NF prefix for blueprints * Fix Antique laser (NF suffix) * PaperVis missing layer * Shaded in-hand blueprint sprites * fix bluespace vial blueprint name * Cleanup --------- Co-authored-by: Whatstone Co-authored-by: Dvir <39403717+dvir001@users.noreply.github.com> Co-authored-by: Dvir --- Content.Server/Fax/FaxSystem.cs | 26 ++ Content.Shared/Paper/PaperComponent.cs | 11 + Resources/Locale/en-US/_NF/fax/fax.ftl | 1 + .../Entities/Structures/Machines/lathe.yml | 3 +- .../Entities/Structures/Machines/lathe.yml | 6 +- Resources/Prototypes/Research/arsenal.yml | 6 +- .../Prototypes/Research/civilianservices.yml | 6 + .../Prototypes/Research/experimental.yml | 12 - Resources/Prototypes/Research/industrial.yml | 16 +- .../_NF/Catalog/Fills/Crates/science.yml | 1 + .../Fills/Items/document_cases_expedition.yml | 39 ++ .../Inventories/flatpackvend.yml | 1 + .../Random/dungeon_items_research.yml | 1 + .../Entities/Objects/Devices/flatpacks.yml | 9 + .../Entities/Objects/Devices/production.yml | 17 + .../Objects/Specific/Research/rped.yml | 4 +- .../Entities/Objects/Storage/weapon_cases.yml | 21 + .../Tools/blueprints/blueprints_armory.yml | 40 ++ .../Tools/blueprints/blueprints_base.yml | 378 ++++++++++++++++++ .../blueprints/blueprints_engineering.yml | 122 ++++++ .../blueprints/blueprints_expedition_loot.yml | 127 ++++++ .../Tools/blueprints/blueprints_medical.yml | 30 ++ .../Tools/blueprints/blueprints_salvage.yml | 40 ++ .../Tools/blueprints/blueprints_science.yml | 50 +++ .../Tools/blueprints/blueprints_service.yml | 30 ++ .../Entities/Structures/Machines/lathe.yml | 96 ++++- .../_NF/Recipes/Lathes/blueprints.yml | 176 ++++++++ .../_NF/Recipes/Lathes/electronics.yml | 9 + Resources/Prototypes/_NF/Research/arsenal.yml | 1 + .../Prototypes/_NF/Research/experimental.yml | 19 + .../Prototypes/_NF/Research/industrial.yml | 2 + .../Specific/Research/rped.rsi/icon.png | Bin 0 -> 1030 bytes .../Research/rped.rsi/inhand-left.png | Bin 0 -> 996 bytes .../Research/rped.rsi/inhand-right.png | Bin 0 -> 1002 bytes .../Specific/Research/rped.rsi/meta.json | 22 + .../Cases/documentcaseshort.rsi/icon-open.png | Bin 0 -> 760 bytes .../Cases/documentcaseshort.rsi/icon.png | Bin 0 -> 712 bytes .../documentcaseshort.rsi/inhand-left.png | Bin 0 -> 664 bytes .../documentcaseshort.rsi/inhand-right.png | Bin 0 -> 673 bytes .../Cases/documentcaseshort.rsi/meta.json | 31 ++ .../Cases/documentcaseshort.rsi/unshaded.png | Bin 0 -> 5576 bytes .../Tools/blueprints.rsi/icon-base.png | Bin 0 -> 450 bytes .../Tools/blueprints.rsi/icon-text.png | Bin 0 -> 246 bytes .../Tools/blueprints.rsi/inhand-left-base.png | Bin 0 -> 398 bytes .../Tools/blueprints.rsi/inhand-left-text.png | Bin 0 -> 267 bytes .../blueprints.rsi/inhand-right-base.png | Bin 0 -> 414 bytes .../blueprints.rsi/inhand-right-text.png | Bin 0 -> 273 bytes .../Objects/Tools/blueprints.rsi/meta.json | 33 ++ .../blueprint_printer.rsi/building.png | Bin 0 -> 2357 bytes .../Machines/blueprint_printer.rsi/icon.png | Bin 0 -> 1159 bytes .../Machines/blueprint_printer.rsi/meta.json | 42 ++ .../Machines/blueprint_printer.rsi/panel.png | Bin 0 -> 574 bytes .../Machines/blueprint_printer.rsi/unlit.png | Bin 0 -> 510 bytes 53 files changed, 1403 insertions(+), 25 deletions(-) create mode 100644 Resources/Locale/en-US/_NF/fax/fax.ftl create mode 100644 Resources/Prototypes/_NF/Catalog/Fills/Items/document_cases_expedition.yml create mode 100644 Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_armory.yml create mode 100644 Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_base.yml create mode 100644 Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_engineering.yml create mode 100644 Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_expedition_loot.yml create mode 100644 Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_medical.yml create mode 100644 Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_salvage.yml create mode 100644 Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_science.yml create mode 100644 Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_service.yml create mode 100644 Resources/Prototypes/_NF/Recipes/Lathes/blueprints.yml create mode 100644 Resources/Textures/_NF/Objects/Specific/Research/rped.rsi/icon.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Research/rped.rsi/inhand-left.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Research/rped.rsi/inhand-right.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Research/rped.rsi/meta.json create mode 100644 Resources/Textures/_NF/Objects/Storage/Cases/documentcaseshort.rsi/icon-open.png create mode 100644 Resources/Textures/_NF/Objects/Storage/Cases/documentcaseshort.rsi/icon.png create mode 100644 Resources/Textures/_NF/Objects/Storage/Cases/documentcaseshort.rsi/inhand-left.png create mode 100644 Resources/Textures/_NF/Objects/Storage/Cases/documentcaseshort.rsi/inhand-right.png create mode 100644 Resources/Textures/_NF/Objects/Storage/Cases/documentcaseshort.rsi/meta.json create mode 100644 Resources/Textures/_NF/Objects/Storage/Cases/documentcaseshort.rsi/unshaded.png create mode 100644 Resources/Textures/_NF/Objects/Tools/blueprints.rsi/icon-base.png create mode 100644 Resources/Textures/_NF/Objects/Tools/blueprints.rsi/icon-text.png create mode 100644 Resources/Textures/_NF/Objects/Tools/blueprints.rsi/inhand-left-base.png create mode 100644 Resources/Textures/_NF/Objects/Tools/blueprints.rsi/inhand-left-text.png create mode 100644 Resources/Textures/_NF/Objects/Tools/blueprints.rsi/inhand-right-base.png create mode 100644 Resources/Textures/_NF/Objects/Tools/blueprints.rsi/inhand-right-text.png create mode 100644 Resources/Textures/_NF/Objects/Tools/blueprints.rsi/meta.json create mode 100644 Resources/Textures/_NF/Structures/Machines/blueprint_printer.rsi/building.png create mode 100644 Resources/Textures/_NF/Structures/Machines/blueprint_printer.rsi/icon.png create mode 100644 Resources/Textures/_NF/Structures/Machines/blueprint_printer.rsi/meta.json create mode 100644 Resources/Textures/_NF/Structures/Machines/blueprint_printer.rsi/panel.png create mode 100644 Resources/Textures/_NF/Structures/Machines/blueprint_printer.rsi/unlit.png diff --git a/Content.Server/Fax/FaxSystem.cs b/Content.Server/Fax/FaxSystem.cs index 0a3a294f92b..38b781970f2 100644 --- a/Content.Server/Fax/FaxSystem.cs +++ b/Content.Server/Fax/FaxSystem.cs @@ -477,6 +477,13 @@ public void Copy(EntityUid uid, FaxMachineComponent? component, FaxCopyMessage a // Don't play component.SendSound - it clashes with the printing sound, which // will start immediately. + // Frontier: check if paper should be destroyed on sending. + if (paper.DestroyOnFax) + { + DeleteFax(uid, sendEntity.Value, paper); + } + // End Frontier + UpdateUserInterface(uid, component); _adminLogger.Add(LogType.Action, @@ -550,6 +557,13 @@ public void Send(EntityUid uid, FaxMachineComponent? component, FaxSendMessage a _audioSystem.PlayPvs(component.SendSound, uid); + // Frontier: check if paper should be destroyed on sending. + if (paper.DestroyOnFax) + { + DeleteFax(uid, sendEntity.Value, paper); + } + // End Frontier + UpdateUserInterface(uid, component); } @@ -616,4 +630,16 @@ private void NotifyAdmins(string faxName) _chat.SendAdminAnnouncement(Loc.GetString("fax-machine-chat-notify", ("fax", faxName))); _audioSystem.PlayGlobal("/Audio/Machines/high_tech_confirm.ogg", Filter.Empty().AddPlayers(_adminManager.ActiveAdmins), false, AudioParams.Default.WithVolume(-8f)); } + + // Frontier: delete sensitive items on fax to prevent duplication + private void DeleteFax(EntityUid faxMachine, EntityUid itemToFax, PaperComponent paper) + { + if (paper.DestroyMessage != null) + { + _popupSystem.PopupEntity(Loc.GetString(paper.DestroyMessage), faxMachine); + } + + Del(itemToFax); + } + // End Frontier } diff --git a/Content.Shared/Paper/PaperComponent.cs b/Content.Shared/Paper/PaperComponent.cs index cd0758589db..1bb98d93f40 100644 --- a/Content.Shared/Paper/PaperComponent.cs +++ b/Content.Shared/Paper/PaperComponent.cs @@ -32,6 +32,17 @@ public sealed partial class PaperComponent : Component [DataField("sound")] public SoundSpecifier? Sound { get; private set; } = new SoundCollectionSpecifier("PaperScribbles", AudioParams.Default.WithVariation(0.1f)); + // Frontier: + /// + /// Sound played after writing to the paper. + /// + [DataField] + public bool DestroyOnFax { get; private set; } + + [DataField] + public string? DestroyMessage { get; private set; } + // End Frontier + [Serializable, NetSerializable] public sealed class PaperBoundUserInterfaceState : BoundUserInterfaceState { diff --git a/Resources/Locale/en-US/_NF/fax/fax.ftl b/Resources/Locale/en-US/_NF/fax/fax.ftl new file mode 100644 index 00000000000..c89eef5d443 --- /dev/null +++ b/Resources/Locale/en-US/_NF/fax/fax.ftl @@ -0,0 +1 @@ +fax-delete-paper-intellectual-property = NT intellectual property detected, destroying original document. diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 6408d3e2f86..e68f3203159 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -505,6 +505,7 @@ - StationAnchorCircuitboard - SalvageMagnetMachineCircuitboard - SalvageTechFabCircuitboardNF # Frontier + - BlueprintLithographMachineCircuitboard # Frontier dynamicRecipes: - ThermomachineFreezerMachineCircuitBoard - HellfireFreezerMachineCircuitBoard @@ -971,7 +972,7 @@ - type: entity id: MedicalTechFab - parent: BaseLatheLube + parent: [ BaseLatheLube, BlueprintReceiverBase ] # Frontier: added BlueprintReceiverBase name: medical techfab description: Prints equipment for use by the medbay. components: diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Nyanotrasen/Entities/Structures/Machines/lathe.yml index 55383245a78..aa924743276 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Structures/Machines/lathe.yml @@ -1,5 +1,5 @@ - type: entity - parent: BaseLatheLube # Frontier: ProtolatheEX>4Tx04R}tkv&MmP!xqvQ?;TM5sQd8WT;LSL`5963Pq?8YK2xEOkVm2O&XFE z7e~Rh;NZ_<)xpJCR|i)?5c~mgbaGO3krMAq3N2#2@OU5R-E(;FK0v4znP#<(1DbA| ziC9!jrB}tkD}3m{0Q%4^Gs~Ehq&QmE*FAMp-9>m->%Kp$N6lCa@QK8;%rI@@4dUrd z+u*!U9AbG{B|aw}GwFiFk6c$ge&d{TS>Tx=Gntqt4iSsFCRUo5*{h@IUxHTPr&`;Uxv5K>Lg1e2f5rU7%KRobO}Dsht4+XW&Y2_)Aq_=9BbF zLkk}Pz1zUWbwgA3fXf|V@X3%(*_HgXglragKcjC-1O2x^*P1uC`Z-P?fF#W-eghmF z0;4&~UT^X4&gQxO+f$$45B-^Pcu$Us)c^njJV``BR9J=WRzXV}K^T1-gjPhO^)g!v z+t$klEY=dFQ1z;WDxP|gLZN>l6$J4R0tN9XZM}KXgSiwBK@Wn0r?4Q>;O?bO_mbph zVh?REogU(hJG(QxG3lkS@3Q;7nQz{k`DVWah!G>k|A;ql-_gyF1^WEOOWN&PiB81R z=}A~tsax&a8~E4a0HB2p65XH=A3p&Am}Ux0+;QxV1;2m$f_ly6x=I5?H|U2?yF6ZB zf6w2SmsdhX_V+(yVPP@Au?-v)_qd53mH6t~2CCJnz?)_Yj$;RSFD$Esbb3;l!#K+- z!L~1i`GNtW8x#Om*ET|T7$q*_Wa5CQ1Z>y&To!YgR~;E}92=&YlEz+fw^9~Mz{FLH zhQTY?4%|vvhbD#ZK*4vRb5Y-Wj`pPed`qZW@cW;_}TaKcw`SlrRrm*52%xk-#F zi~kZvp{-VInkl}p|0%=vgDvG)z4ldzg%j|XfHj^da{-)O0i!|Mt(4I}FeF?;ZeTXE zM0Nc>&d=Hqh`?OmYvtIz;Sv0}y5w;JX!U{l`9)>YZ9xc;^0G@P+yQ?ZWssF2tTYG3 zy-0skk4h6|852chuY#8o<5sVj(OWKAo)2axNyBpd)V zn@z!3qj8C3GI{;p2#8A!FcZoxbOFD3j2Hm$7f)UF-AjFT)c^nh07*qoM6N<$g7Ssk A2LJ#7 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Specific/Research/rped.rsi/inhand-left.png b/Resources/Textures/_NF/Objects/Specific/Research/rped.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..25702f772a80db358d9b9863a119b60208a228f6 GIT binary patch literal 996 zcmVEX>4Tx04R}tkv&MmP!xqvQ?;TM5sQd8WT;LSL`5963Pq?8YK2xEOkVm2O&XFE z7e~Rh;NZ_<)xpJCR|i)?5c~mgbaGO3krMAq3N2#2@OU5R-E(;FK0v4znP#<(1DbA| ziC9!jrB}tkD}3m{0Q%4^Gs~Ehq&QmE*FAMp-9>m->%Kp$N6lCa@QK8;%rI@@4dUrd z+u*!U9AbG{B|aw}GwFiFk6c$ge&d{TS>Tx=Gntqt4iSsFCRUo5*{h@IUxHTPr&`;Uxv5K>Lg1e2f5rU7%KRobO}Dsht4+XW&Y2_)Aq_=9BbF zLkk}Pz1zUWbwgA3fXf|V@X3%(*_HgXglragKcjC-1O2x^*P1uC`Z-P?fF#W-eghmF z0;4&~UT^X4&gQxO+f$$45B-^Pcu$Us)c^nj8c9S!RCt{2+ObO;aTEveZ%Uzd%9?<1 zwUY(A1(jwIx=5=r2yqYs2M#ro)&E40Zh~Xr$R+Jq=yIi%YzE_GJdj`WAGDobr;{Y! zh1}&`XyyCa@(aB8?&X)?Z+Hg~5fKp)5fKp)5&eVggJVe}?i1~R!-dXTbXpHRETb80 zy}0$D;MD#I8v(u5>>y({?rE}kts2LSx}{R`I83jBUot5g6fG@#XL z;_H_NHr`fdj%6*aC{#3=dIJiD)%#u0>0HbdD{Kd7Q)|HO%_XwgEZXfRwztb@x07%G zz&v(<>WP}mTcOuh(px|)77-B<5fKp)5fKqlO6D=qos=tXe)aMA|3-Dlu=eKtNcVqy z`<%)UBPvg@?)SS>4^UKRgVm}%^4afqV~xe9k;_{$o~K&1rPH}Up|A=7I6prFrX0zu zHNZYNmat){<9f2YQ&ee!<9c#*xF0%ny}s@ximAE-hKmSZmN3SsG{JE_F~&^Hm4x~s zI9^P>R>^4WfZd&9re3Rz#2L?Zw)io2T-62y1q~PGxSpJxHfFvWPfi=+xZZu7uw3@t zhuCq|{sM!+AavargYjQ3iF&P)2^txdD{6fbwG%pQo}bn%KkD6qdE_Q~Wc~vD7uCza SB`6;N0000EX>4Tx04R}tkv&MmP!xqvQ?;TM5sQd8WT;LSL`5963Pq?8YK2xEOkVm2O&XFE z7e~Rh;NZ_<)xpJCR|i)?5c~mgbaGO3krMAq3N2#2@OU5R-E(;FK0v4znP#<(1DbA| ziC9!jrB}tkD}3m{0Q%4^Gs~Ehq&QmE*FAMp-9>m->%Kp$N6lCa@QK8;%rI@@4dUrd z+u*!U9AbG{B|aw}GwFiFk6c$ge&d{TS>Tx=Gntqt4iSsFCRUo5*{h@IUxHTPr&`;Uxv5K>Lg1e2f5rU7%KRobO}Dsht4+XW&Y2_)Aq_=9BbF zLkk}Pz1zUWbwgA3fXf|V@X3%(*_HgXglragKcjC-1O2x^*P1uC`Z-P?fF#W-eghmF z0;4&~UT^X4&gQxO+f$$45B-^Pcu$Us)c^njAW1|)RCt{2+RtkfK@6cmarrh=_=Yh=_=Y?y&m$mL!>fZ`zk7eeo=qCg)7p zjcm@6$4{P3jDL5(gg$fIO6BE=1^0U$jD~~IobLw>W^C993C|A@>R`DrYVbCuwQHeip9mtQ*d(f)pBrfwMMjxhin zAMIxVVCnhmu^rLlrllDtwl@e|Eq-mS4ge?=o=UN}I5BTE>v+`!jTo?YQ!0wQQsaw&Ti&_irbfvi0>X+55C@Bu1hF_<0MV|D2$dGExNF zaYZQ=8Owyk1=xG^5vA^nv1Gi-ZEngRd%WJ(8-W{mJxMPd=$1)+&2^ft=f!AJ2DI=#~bEB5gg$#>jLZZ)L+?=%f@IkTJ^CvRm Y5AEC7FtIj)O8@`>07*qoM6N<$f|jn^BLDyZ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Specific/Research/rped.rsi/meta.json b/Resources/Textures/_NF/Objects/Specific/Research/rped.rsi/meta.json new file mode 100644 index 00000000000..99acaed8489 --- /dev/null +++ b/Resources/Textures/_NF/Objects/Specific/Research/rped.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/40d89d11ea4a5cb81d61dc1018b46f4e7d32c62a, inhands created by EmoGarbage404", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_NF/Objects/Storage/Cases/documentcaseshort.rsi/icon-open.png b/Resources/Textures/_NF/Objects/Storage/Cases/documentcaseshort.rsi/icon-open.png new file mode 100644 index 0000000000000000000000000000000000000000..59ee3fc0b3b4aa79f0fc7af4e61e6b47225a17d6 GIT binary patch literal 760 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 Hu0mjfy|^+R literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Storage/Cases/documentcaseshort.rsi/meta.json b/Resources/Textures/_NF/Objects/Storage/Cases/documentcaseshort.rsi/meta.json new file mode 100644 index 00000000000..a8107eefdfb --- /dev/null +++ b/Resources/Textures/_NF/Objects/Storage/Cases/documentcaseshort.rsi/meta.json @@ -0,0 +1,31 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/blob/master/icons/obj/storage/case.dmi , held sprites and open sprite made by erhardsteinhauer", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "icon" + }, + { + "name": "icon-open" + }, + { + "name": "unshaded", + "delays": [ + [ 0.2, 0.1, 0.1, 0.2 ] + ] + } + ] +} diff --git a/Resources/Textures/_NF/Objects/Storage/Cases/documentcaseshort.rsi/unshaded.png b/Resources/Textures/_NF/Objects/Storage/Cases/documentcaseshort.rsi/unshaded.png new file mode 100644 index 0000000000000000000000000000000000000000..d598b670413157f0259516fe86eaad1df968563e GIT binary patch literal 5576 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Tools/blueprints.rsi/icon-text.png b/Resources/Textures/_NF/Objects/Tools/blueprints.rsi/icon-text.png new file mode 100644 index 0000000000000000000000000000000000000000..0780b0c5d50fe7e3b556e8b64c5a8e1931183d46 GIT binary patch literal 246 zcmVPx#ut`KgR9J=WlTix9APhvur3drqo+ut+`q34#qG_bEKh1+u(dbMx0fHb1-cDKx zCP@HDDJ1|XrMULxoTqCa&jBJrl5E1wh;^_RmjU3)y1#+H!7u&TgZG(CM8p*D=T{86 z(Aj(9R&dvV7U_lhCmQ`98_-=aDne`Rv4L9aPZ!)7U3rSb8wkv^)AM?)Z*3b^7g)8i wOPc`NHxC*VxV_s=C}}si0h>v3#Xhv zVIb(JxwMm`AzkpDk#Wa~)dKTmRsYB;D6KzknzUJo>3_7Vyxko8PnOT~=a=VfPTMDt zf7)_;uHd4g#^(=}iz{;(P0#&)2H{d;k7nUf-B|F7DmLeZjV`wEQa#Wpuw)*!Zn2 p-^%@F=iuNyfEGqxVn#m%xv-vw;JusXZJYD@<);T3K0RTF3vW@@% literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Tools/blueprints.rsi/inhand-left-text.png b/Resources/Textures/_NF/Objects/Tools/blueprints.rsi/inhand-left-text.png new file mode 100644 index 0000000000000000000000000000000000000000..744a664bc47a070b721c1b2b47460e255005cc21 GIT binary patch literal 267 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=mpok@Ln`LHy=BPNVj$4^@T6GT zy#treL_U`Z12UqD7_DdLh=!|hMG8ku|If_H@!5zoqE`v15eRnV$6fo-;v+aQ{N;hD z-fQRFJpF&MbiMv<_vU*1*)^xmbeTsf3qzEGRBQ4X^}oK`6B4Io9a?BGDwmbW_uH^i9b4!I(``b&)3U|!W3g5{PTAC)d z=lh~n=c?z=-MHR#^MX}+`}!w83dy_kea7dni9kyl{(oVUN!uVM{mj+?WV5HMpUXO@ GgeCy}eQ?GA literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Tools/blueprints.rsi/inhand-right-base.png b/Resources/Textures/_NF/Objects/Tools/blueprints.rsi/inhand-right-base.png new file mode 100644 index 0000000000000000000000000000000000000000..a123c9de25678cc98b19e77a4739d27fab25bc8c GIT binary patch literal 414 zcmV;P0b%}$P)3i+osfi``M*mD1F{e#mxl-d00000 zXfd;FX8F^792xENtGDRmEqz9B&s_r$5t-+CN-14>7-p7JN;1#$)O*h10KBM($g(Vx zZ(mVLNtR`qe7omnefJbq)ol=}dPc7=p{f#N%-&@j*dh|#>> z*DT*j@cm`ovs4G*5wpl~;~txPgkHX+u&=qUYgbe2x>lp@THTi@Q`VkDxE#>_C8bBx z+H(EcI%jE4G=z|Ew_EkD-S79wj~Q9a&+E~uJyHVz003zF0lRV)4%SHV5&!@I07*qo IM6N<$g2r3Ij{pDw literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Tools/blueprints.rsi/inhand-right-text.png b/Resources/Textures/_NF/Objects/Tools/blueprints.rsi/inhand-right-text.png new file mode 100644 index 0000000000000000000000000000000000000000..649d495c3e005d83d2e0b72fee5bc90ed5608340 GIT binary patch literal 273 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=H#}V&Ln`LHy|t0I#el~lu!vPw z+MqZ6tIWz5HyWf;8Lei;q_!+Nz{te7>%U4%^P?j!CCfB``hZ}&JBS{8ge52zN6K}=TF>E`pC}tzV^+nv|D!`-PvQZt@^szML8 zwcF+%T*ssQrSI4(4hX+K_RwWh;I!NWDa6U9%E?Kp=U`K-lcS)cF`Na0!$R!C2ol^Z zsS7QUn9r#ZO!){pD6sQ*Gck%UzcC!VOc4@_Y?n zTB9<#HRzL+M`Rf|JjsXXG1{`Lr9Zo>DT;(@wko%Zw*JHaqd*d}rZ|$-RzoXq)ZOc? zVra8lacAS zur(LZ`}Stx$$5)@Y%>)-y}2*sz_eOC;S!&N@BNGDbtLQWPim*EBP|QI^|HUAknfCo zG_Mm&!}5Cl>(+a?xWLJ8Z(kp{(Kxe1Yu&5;*^-suULmXx$As)3;@AE zOEcrMkvZRU+yprS)?Ui1)p7W4LOd)etucqcGb1g4z zfWdC`4Y?7Dp76Szot-{`P`Cv*5mMxZM2&&r!06yu`pw`QSl^TyLpVwD7>$rRQE6DL zx>Cd_sY+wYAHxNNLji`_H_GZB;~t30$DnRi#Q#M*^#;;-a|jWKt>iowaK|ikmH-d| zUF-_HmSnI`>`g>ZztV9Jn&Xsa4FHqtWj3Wj^a|AG{9N*`dn5EA0!?ky+c1SVwzfK; zEV2D7CT`Rjb=fLm20w@QxPrzz*DN+$JS2XGTl|j`Y3W@>`Nr$ z2fvj|#Bd)xU?rzXjJqkiOFX42^8F-?+sra)4(NEuFifRAv&EpeL6$b|BtqHKk0Cl(cmAIL*glV zB6$6K+PVhn>BgC{{{F%hx-+`%D}wyjF6$no(j%cXi!hIBO}t6~zXC_QMb7JJH0fHuXNQ8Q%bZ9i#|=JiiTqp-qc6=DHBFjw_!xR^g^9#a>{Y5K%}Yw)jwOh)jC) z9<87uLp{0-i`KW7Mn@+F=p}zK6$GHhnS8OH+gI`_=mr!O%W-C`u_7{q9?Rv}G=0U$ z)P@`4Ih-_<0cxSTM3Q&cS#{8MFBJsjlrz8Ady3#L_1;JcVwZCH$U)CCy#k|^qE*Bp z+{)l~uL>syXMAiUIcacY?B;T^rHba%ck=Zs5=neiHqCLdpV{2Wd+^4ho3WAz=wVD?|_^XN1j;0I>g7>namG9&PypR^0&`~w0{tA572+u zdB`;^V5D3C+^->Uo0W2{zcSrom$qrqlo0GYtb0S?D`vQEyt-IAWpSsN@AwYTW^mWR zr8*Ts%c3J1gzApwnrmc1;HsOsNSjQ~`}IADM!d-0+3zprqt09%*O1(t+4|EJvhLlk zOY?NwRA1cx`|$}Wa`lJB@@q(J@Mvp<2Pgq(TwH%n-O@&+uIcL-r~`I)MeLrln{nS@ zA2<2#ZiInip84WYDBaJdBbJD`!2Hjh+|O zn(gO9br*K#rRu9@7-vw|L0SERE%^s>i2Ibclfc zJHjX5X+k@_-O)H@3ZcNBGafV7TYr=k&jxqchn6+MR7TZj=^VP!eKwH(8C18LHOF%o zzVr``zZw5a{eOde(tqulCmaoI@xAOVkywMACAuA15-hZ*sQtl&oOkMAEDtU@#$nJ# zHBl=jyx~wl|MhqHae17&&jAX-*c^>3M1ma@24QhdbC)9b`@ql-rF}bf9c^xsAl2{B)xf)M9G1b z6F!N7X`cc0Bgmi+wg)IjOm(81+Djz-*kC*}Ip3 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Structures/Machines/blueprint_printer.rsi/icon.png b/Resources/Textures/_NF/Structures/Machines/blueprint_printer.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..99ebfbe0d1d254261affa8f1bbaa4737ac827a83 GIT binary patch literal 1159 zcmV;21bF+2P)EX>4Tx04R}tkv&MmKpe$iQ$>-ALpz9c$WWau_=PxX6^c+H)C#RSm|Xe=O&XFE z7e~Rh;NZt%)xpJCR|i)?5c~jfbaGO3krMxx6k5c1aNLh~_a1le0HIM~n$)S(glehxvqHp#<}RSz%wIeCOuCaAr^}rtaLCdnHupFaZJ^8$``U8 ztDLtuYn2*n-IKpCl-F05xlS{RBo?s*2_h8KP(}qd;8RapT*I-SPnD;K%ggc{EnqcvejZRghQ zJHp*`-GR2Y6I*%>twM@HD4?dcmYZFd0Qfnb>-;?};@7aMvVxl0TJu?e*zhO-;d4P^ z!=pTX@|cUAUBv~YQVYBo7&7N;uYIOnemdj2n!dhXqR~M#O(W9N4S@c8#j*ZE0RR&d zZ%sS%&QgLZ_Yz2wL`TPYqR~M{;^VHqt^#0VCjc@_76GZ^Jz(sBv4~V^0Zr3Tlz=w@ z$+>AXO*7}~E4gMW(^iTKaKg;Y2Oi#!l&ESfk1s8B{Fs<30Z^0xiV{E$R}FO`46})8KF>`Fb2;w7Y+`!H1h~QJr$OC!;K)cz zODh1$WCFR)hpy}Bt3C|gz^cB{bj{7p0HhXk2Uaqf;My){|7O* ZkH0@i-fd!KSLy%&002ovPDHLkV1kxFB!U0{ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Structures/Machines/blueprint_printer.rsi/meta.json b/Resources/Textures/_NF/Structures/Machines/blueprint_printer.rsi/meta.json new file mode 100644 index 00000000000..68647e8f754 --- /dev/null +++ b/Resources/Textures/_NF/Structures/Machines/blueprint_printer.rsi/meta.json @@ -0,0 +1,42 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/40d89d11ea4a5cb81d61dc1018b46f4e7d32c62a | Resprited by ErhardSteinhauer (discord/github)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "panel" + }, + { + "name": "unlit" + }, + { + "name": "building", + "delays": [ + [ + 0.16, + 0.16, + 0.16, + 0.16, + 0.16, + 0.16, + 0.16, + 0.16, + 0.16, + 0.16, + 0.16, + 0.16, + 0.16, + 0.16, + 0.16 + ] + ] + } + ] +} diff --git a/Resources/Textures/_NF/Structures/Machines/blueprint_printer.rsi/panel.png b/Resources/Textures/_NF/Structures/Machines/blueprint_printer.rsi/panel.png new file mode 100644 index 0000000000000000000000000000000000000000..c866a0c4566f210131adf1e768058f62e96204f5 GIT binary patch literal 574 zcmV-E0>S->P)EX>4Tx04R}tkv&MmKpe$iQ$>-AU^|F7WT*~eK~%(1t5Adrp;l;qmz@OipZjz4syT}R0g-r?8KzCVK|H-_ z8=UuvBdjQ^#OK6gCS8#Dk?V@bZ=4G*3p_Jorc?985n{2>#!4HrqNx#25l2-`r+gvf zvC4UivsSLM<~{ifLpgnAnd>x%kia6AAVGwJDoQBBMvPXS6bmWZkNfxsUB5&wg;V;Jb#1sXNS`95}>#t9I72Cnp$zfuQgK1r{& zwCEAgw+&oew=`uBxZD8-o($QPT`5RY$mfCgGy0}15WWR^*1X=D`#607($rP*1~@nb zMhcX@?(^>M_TK(I)9mjDK*MsA#Uc_f0001WNklJA6olc!Da0i#WCs&h zuxBWGS1@r0EF6O=o}B?DbYOE|a|t1NKR`r8L`2lcysVOY?`jGitX2j{Bf*Fhdss;48RJ_dt-j01Mh7kSc2D}Lwd%)MM*8l(j M07*qoM6N<$f+L9fWB>pF literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Structures/Machines/blueprint_printer.rsi/unlit.png b/Resources/Textures/_NF/Structures/Machines/blueprint_printer.rsi/unlit.png new file mode 100644 index 0000000000000000000000000000000000000000..58528c802d2c3cb33152632e84b5190e4bd9892f GIT binary patch literal 510 zcmVEX>4Tx04R}tkv&MmKpe$iQ$>-ALpz9c$WWau_=PxX6^c+H)C#RSm|Xe=O&XFE z7e~Rh;NZt%)xpJCR|i)?5c~jfbaGO3krMxx6k5c1aNLh~_a1le0HIM~n$)S(glehxvqHp#<}RSz%wIeCOuCaAr^}rtaLCdnHupFaZJ^8$``U8 ztDLtuYn2*n-IKpCl-F05xlS{RBo?s*2_h8KP(}qd;