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: + /// <summary> + /// Sound played after writing to the paper. + /// </summary> + [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/Changelog/Frontier.yml b/Resources/Changelog/Frontier.yml index a6878b971d1..624858b3cef 100644 --- a/Resources/Changelog/Frontier.yml +++ b/Resources/Changelog/Frontier.yml @@ -4238,3 +4238,18 @@ Entries: optionally disable jetpacks being usable in zero gravity. id: 5358 time: '2024-10-03T00:17:24.0000000+00:00' +- author: erhardsteinhauer + changes: + - type: Add + message: >- + 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). + - type: Add + message: >- + Added the Blueprint Lithograph, a new lathe available from the + FlatpackVend, science bundle, or circuit imprinter. It prints + blueprints from stacks of paper. + id: 5359 + time: '2024-10-03T19:53:08.0000000+00:00' 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: Protolathe<BaseLatheLube + parent: [ BaseLatheLube, BlueprintReceiverBase ] # Frontier: Protolathe<BaseLatheLube, added BlueprintReceiverBase id: ScienceTechFab name: science techfab description: Prints equipment for use by the epistemics department. @@ -109,7 +109,7 @@ - Ingot - type: entity - parent: BaseLatheLube # Frontier: Protolathe<BaseLatheLube + parent: [ BaseLatheLube, BlueprintReceiverBase ] # Frontier: Protolathe<BaseLatheLube, added BlueprintReceiverBase id: ServiceTechFab name: service techfab description: Prints equipment for service staff. @@ -268,7 +268,7 @@ - Ingot - type: entity - parent: BaseLatheLube # Frontier: Protolathe<BaseLatheLube + parent: [ BaseLatheLube, BlueprintReceiverBase ] # Frontier: Protolathe<BaseLatheLube, added BlueprintReceiverBase id: EngineeringTechFab name: engineering techfab description: Prints equipment for engineers. diff --git a/Resources/Prototypes/Research/arsenal.yml b/Resources/Prototypes/Research/arsenal.yml index 481d780e829..fb4af9818fa 100644 --- a/Resources/Prototypes/Research/arsenal.yml +++ b/Resources/Prototypes/Research/arsenal.yml @@ -124,6 +124,7 @@ - FlashPayload - ExplosivePayload - ChemicalPayload + - NFBlueprintSignallerAdvanced # Frontier - type: technology id: SpecialMeans @@ -197,9 +198,11 @@ tier: 3 cost: 15000 recipeUnlocks: - - WeaponAntiqueLaserNF # Frontier - WeaponAdvancedLaser - PortableRecharger + - WeaponAntiqueLaserNF # Frontier + - NFBlueprintWeaponAntiqueLaser # Frontier + - NFBlueprintPortableRecharger # Frontier - type: technology id: ExperimentalBatteryAmmo @@ -212,6 +215,7 @@ cost: 15000 recipeUnlocks: - WeaponLaserSvalinn + - NFBlueprintWeaponLaserSvalinn # Frontier - type: technology id: AdvancedShuttleWeapon diff --git a/Resources/Prototypes/Research/civilianservices.yml b/Resources/Prototypes/Research/civilianservices.yml index 9951466eaae..b9a97db51c1 100644 --- a/Resources/Prototypes/Research/civilianservices.yml +++ b/Resources/Prototypes/Research/civilianservices.yml @@ -17,6 +17,8 @@ - HydroponicsTrayMachineCircuitboard - ReagentGrinderIndustrialMachineCircuitboard - PlantAnalyzer # Frontier + - NFBlueprintPlantAnalyzerEmpty # Frontier + - NFBlueprintPlantBagOfHolding # Frontier - type: technology id: CritterMechs @@ -177,6 +179,7 @@ recipeUnlocks: - AdvMopItem - MegaSprayBottle + - NFBlueprintAdvMopItem # Frontier - type: technology id: HONKMech @@ -250,3 +253,6 @@ - BluespaceBeaker - SyringeBluespace - VialBluespace # Frontier + - NFBlueprintBluespaceBeaker # Frontier + - NFBlueprintSyringeBluespace # Frontier + - NFBlueprintVialBluespace # Frontier diff --git a/Resources/Prototypes/Research/experimental.yml b/Resources/Prototypes/Research/experimental.yml index 56787a8afdc..dafb1e04f81 100644 --- a/Resources/Prototypes/Research/experimental.yml +++ b/Resources/Prototypes/Research/experimental.yml @@ -126,18 +126,6 @@ technologyPrerequisites: - BasicAnomalousResearch -- type: technology - id: RapidPartExchange - name: research-technology-rped - icon: - sprite: Objects/Specific/Research/rped.rsi - state: icon - discipline: Experimental - tier: 2 - cost: 7500 - recipeUnlocks: - - RPED - # - type: technology # id: DeterrenceTechnologies # name: research-technology-deterrence diff --git a/Resources/Prototypes/Research/industrial.yml b/Resources/Prototypes/Research/industrial.yml index 98b0c973de9..bee26c204f5 100644 --- a/Resources/Prototypes/Research/industrial.yml +++ b/Resources/Prototypes/Research/industrial.yml @@ -173,6 +173,9 @@ - UtilityBeltChiefEngineer - BorgModuleAdvancedTool - BorgModuleRCD + - NFBlueprintPowerDrill # Frontier + - NFBlueprintJawsOfLife # Frontier + - NFBlueprintWelderExperimental # Frontier - type: technology id: MassExcavation @@ -187,6 +190,9 @@ - OreBagOfHolding - MiningDrillDiamond - AdvancedMineralScannerEmpty + - NFBlueprintOreBagOfHolding # Frontier + - NFBlueprintMiningDrillDiamond # Frontier + - NFBlueprintAdvancedMineralScannerEmpty # Frontier # Tier 3 @@ -204,6 +210,10 @@ - ClothingBackpackSatchelHolding - ClothingBackpackDuffelHolding - ClothingBackpackMessengerHolding # Frontier + - NFBlueprintClothingBackpackHolding # Frontier + - NFBlueprintClothingBackpackSatchelHolding # Frontier + - NFBlueprintClothingBackpackDuffelHolding # Frontier + - NFBlueprintClothingBackpackMessengerHolding # Frontier - type: technology id: PortableFission @@ -216,6 +226,7 @@ cost: 10000 recipeUnlocks: - PowerCellMicroreactor + - NFBlueprintPowerCellMicroreactor # Frontier technologyPrerequisites: - AdvancedPowercells @@ -229,5 +240,6 @@ tier: 2 cost: 10000 recipeUnlocks: - - ShipyardRCD - - ShipyardRCDAmmo + - ShipyardRCD # Frontier + - ShipyardRCDAmmo # Frontier + - NFBlueprintShipyardRCDAmmo # Frontier diff --git a/Resources/Prototypes/_NF/Catalog/Fills/Crates/science.yml b/Resources/Prototypes/_NF/Catalog/Fills/Crates/science.yml index 3b9dd654044..ff639156957 100644 --- a/Resources/Prototypes/_NF/Catalog/Fills/Crates/science.yml +++ b/Resources/Prototypes/_NF/Catalog/Fills/Crates/science.yml @@ -9,6 +9,7 @@ - id: ExosuitFabricatorFlatpack - id: MachineAnomalyVesselFlatpack - id: CircuitImprinterFlatpack + - id: BlueprintLithographFlatpack - id: ResearchAndDevelopmentServerFlatpack - id: ComputerResearchAndDevelopmentFlatpack - id: MachineArtifactAnalyzerFlatpack diff --git a/Resources/Prototypes/_NF/Catalog/Fills/Items/document_cases_expedition.yml b/Resources/Prototypes/_NF/Catalog/Fills/Items/document_cases_expedition.yml new file mode 100644 index 00000000000..c48f04862a8 --- /dev/null +++ b/Resources/Prototypes/_NF/Catalog/Fills/Items/document_cases_expedition.yml @@ -0,0 +1,39 @@ + +- type: entity + parent: WeaponCaseShortDocuments + id: WeaponCaseShortDocumentsFilled + suffix: Dungeon, Blueprints + categories: [ HideSpawnMenu ] + components: + - type: StorageFill + contents: + # - id: NFBlueprintBoxShotgunUranium # While funny I think we should move this to events + # prob: 0.2 + # orGroup: Blueprints + # - id: NFBlueprintMagazineBoxRifleUranium + # prob: 0.2 + # orGroup: Blueprints + # - id: NFBlueprintMagazineBoxLightRifleUranium + # prob: 0.2 + # orGroup: Blueprints + # - id: NFBlueprintMagazineBoxMagnumUranium + # prob: 0.2 + # orGroup: Blueprints + # - id: NFBlueprintMagazineBoxPistolUranium + # prob: 0.2 + # orGroup: Blueprints + # - id: NFBlueprintBoxShotgunIncendiary + # prob: 0.2 + # orGroup: Blueprints + # - id: NFBlueprintMagazineBoxRifleIncendiary + # prob: 0.2 + # orGroup: Blueprints + # - id: NFBlueprintMagazineBoxMagnumIncendiary + # prob: 0.2 + # orGroup: Blueprints + - id: NFBlueprintWeaponLaserCannon + prob: 0.2 + orGroup: Blueprints + - id: NFBlueprintWeaponXrayCannon + prob: 0.2 + orGroup: Blueprints diff --git a/Resources/Prototypes/_NF/Catalog/VendingMachines/Inventories/flatpackvend.yml b/Resources/Prototypes/_NF/Catalog/VendingMachines/Inventories/flatpackvend.yml index bc64e23b7e6..a12a179ac06 100644 --- a/Resources/Prototypes/_NF/Catalog/VendingMachines/Inventories/flatpackvend.yml +++ b/Resources/Prototypes/_NF/Catalog/VendingMachines/Inventories/flatpackvend.yml @@ -10,6 +10,7 @@ CircuitImprinterFlatpack: 4294967295 # Infinite ResearchAndDevelopmentServerFlatpack: 4294967295 # Infinite ComputerResearchAndDevelopmentFlatpack: 4294967295 # Infinite + BlueprintLithographFlatpack: 4294967295 # Infinite ScienceTechFabFlatpack: 4294967295 # Infinite EngineeringTechFabFlatpack: 4294967295 # Infinite SalvageTechfabNFFlatpack: 4294967295 # Infinite diff --git a/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/dungeon_items_research.yml b/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/dungeon_items_research.yml index ef96d2f4b67..aaa453c02b7 100644 --- a/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/dungeon_items_research.yml +++ b/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/dungeon_items_research.yml @@ -223,6 +223,7 @@ rarePrototypes: - TechnologyDiskRare - ResearchDisk10000 + - WeaponCaseShortDocumentsFilled rareChance: 0.05 - type: entity diff --git a/Resources/Prototypes/_NF/Entities/Objects/Devices/flatpacks.yml b/Resources/Prototypes/_NF/Entities/Objects/Devices/flatpacks.yml index b80e3c0da3c..582470b85d9 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Devices/flatpacks.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Devices/flatpacks.yml @@ -294,6 +294,15 @@ - type: Flatpack entity: MachineAnomalyGenerator +- type: entity + parent: ExosuitFabricatorFlatpack + id: BlueprintLithographFlatpack + name: blueprint lithograph flatpack + description: A flatpack used for constructing a blueprint lithograph. + components: + - type: Flatpack + entity: BlueprintLithograph + # Service - type: entity parent: BaseNFFlatpack diff --git a/Resources/Prototypes/_NF/Entities/Objects/Devices/production.yml b/Resources/Prototypes/_NF/Entities/Objects/Devices/production.yml index f8dc9b41b33..b1f0a2c0a6f 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Devices/production.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Devices/production.yml @@ -228,6 +228,23 @@ - type: StaticPrice price: 40 +- type: entity + id: BlueprintLithographMachineCircuitboard + parent: BaseMachineCircuitboard + name: blueprint lithograph machine board + components: + - type: Sprite + state: science + - type: MachineBoard + prototype: BlueprintLithograph + requirements: + MatterBin: 1 + Manipulator: 1 + tagRequirements: + GlassBeaker: + amount: 2 + defaultPrototype: Beaker + # Removed from upstream definitions - type: entity id: MaterialReclaimerMachineCircuitboard diff --git a/Resources/Prototypes/_NF/Entities/Objects/Specific/Research/rped.yml b/Resources/Prototypes/_NF/Entities/Objects/Specific/Research/rped.yml index 53b7eb1c31d..cceb4e2fa4d 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Specific/Research/rped.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Specific/Research/rped.yml @@ -5,10 +5,10 @@ description: A Rapid Part Exchange Device, perfect for quickly upgrading machines. components: - type: Sprite - sprite: Objects/Specific/Research/rped.rsi + sprite: _NF/Objects/Specific/Research/rped.rsi state: icon - type: Item - sprite: Objects/Specific/Research/rped.rsi + sprite: _NF/Objects/Specific/Research/rped.rsi size: Normal - type: PartExchanger - type: Storage diff --git a/Resources/Prototypes/_NF/Entities/Objects/Storage/weapon_cases.yml b/Resources/Prototypes/_NF/Entities/Objects/Storage/weapon_cases.yml index 526ae330d4a..7dbefb77548 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Storage/weapon_cases.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Storage/weapon_cases.yml @@ -92,6 +92,27 @@ - type: Item sprite: _NF/Objects/Storage/Cases/explosivescaseshort.rsi +- type: entity + name: document case + parent: WeaponCaseShortExplosives + id: WeaponCaseShortDocuments + description: A reinforced casing for storing important documents. + suffix: Short + components: + - type: Sprite + sprite: _NF/Objects/Storage/Cases/documentcaseshort.rsi + - type: Item + sprite: _NF/Objects/Storage/Cases/documentcaseshort.rsi + - type: Storage + maxItemSize: Normal + grid: + - 0,0,1,1 + whitelist: + tags: + - BlueprintAutolathe + - Document + - Paper + - type: entity name: weapon case parent: WeaponCaseLong diff --git a/Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_armory.yml b/Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_armory.yml new file mode 100644 index 00000000000..183f64c64e8 --- /dev/null +++ b/Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_armory.yml @@ -0,0 +1,40 @@ + +- type: entity + parent: NFBaseBlueprintArmory + id: NFBlueprintWeaponAntiqueLaser + name: antique laser blueprint + description: A blueprint with a schematic of an antique laser. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - WeaponAntiqueLaserNF + +- type: entity + parent: NFBaseBlueprintArmory + id: NFBlueprintWeaponLaserSvalinn + name: svalinn pistol blueprint + description: A blueprint with a schematic of a svalinn pistol. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - WeaponLaserSvalinn + +- type: entity + parent: NFBaseBlueprintArmory + id: NFBlueprintPortableRecharger + name: portable recharger blueprint + description: A blueprint with a schematic of a portable recharger. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - PortableRecharger + +- type: entity + parent: NFBaseBlueprintArmory + id: BlueprintClothingOuterHardsuitScaf + name: scaf hardsuit blueprint + description: A blueprint with a schematic of a scaf hardsuit. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - ClothingOuterHardsuitScaf diff --git a/Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_base.yml b/Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_base.yml new file mode 100644 index 00000000000..72368939bfa --- /dev/null +++ b/Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_base.yml @@ -0,0 +1,378 @@ +- type: entity + parent: BaseBlueprint + id: NFBaseBlueprint + abstract: true + components: + - type: Sprite + layers: + - sprite: _NF/Objects/Tools/blueprints.rsi + state: icon-base + color: "#7da0ba" + - sprite: _NF/Objects/Tools/blueprints.rsi + state: icon-text + - sprite: Objects/Misc/bureaucracy.rsi + state: paper_stamp-generic + offset: 0.15,-0.1 + map: ["enum.PaperVisualLayers.Stamp"] + visible: false + - sprite: Objects/Misc/bureaucracy.rsi # Need for PaperVisuals otherwise it wont stop complaining + state: paper_words + map: ["enum.PaperVisualLayers.Writing"] + visible: false + - type: Item + size: Normal + sprite: _NF/Objects/Tools/blueprints.rsi + inhandVisuals: + left: + - state: inhand-left-base + color: "#7da0ba" + - state: inhand-left-text + right: + - state: inhand-right-base + color: "#7da0ba" + - state: inhand-right-text + - type: Tag + tags: + - BlueprintAutolathe + - Document + - Paper + - type: StaticPrice + price: 5 # Should be sold to players, not market console + - type: PhysicalComposition + materialComposition: + Paper: 100 + # Paper stuff + - type: Paper + - type: PaperVisuals + - type: Flammable + fireSpread: true + canResistFire: false + alwaysCombustible: true + canExtinguish: false + damage: + types: + Heat: 1 + - type: Appearance + - type: FireVisuals + sprite: Effects/fire.rsi + normalState: fire + - type: Damageable + damageModifierSet: Wood + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 15 + behaviors: + - !type:SpawnEntitiesBehavior + spawn: + Ash: + min: 1 + max: 1 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Food + solution: food + delay: 7 + forceFeedDelay: 7 + - type: FlavorProfile + flavors: + - paper + - type: BadFood + - type: SolutionContainerManager + solutions: + food: + maxVol: 1 + reagents: + - ReagentId: Fiber + Quantity: 0.1 + +- type: entity + parent: NFBaseBlueprint + id: BaseBlueprintFaxable + abstract: true + components: + - type: FaxableObject # Not sure about it, but why not? If someone wants to waste their time printing free copies of blueprints for cash they can have their spesos + - type: Paper + destroyOnFax: true + destroyMessage: fax-delete-paper-intellectual-property + +# Faxable variants (obtainable from research) + +- type: entity # Engineering + parent: BaseBlueprintFaxable + id: NFBaseBlueprintEngineering + abstract: true + components: + - type: Sprite + layers: + - sprite: _NF/Objects/Tools/blueprints.rsi + state: icon-base + color: "#fff87c" + - sprite: _NF/Objects/Tools/blueprints.rsi + state: icon-text + - sprite: Objects/Misc/bureaucracy.rsi + state: paper_stamp-generic + offset: 0.15,-0.1 + map: ["enum.PaperVisualLayers.Stamp"] + visible: false + - sprite: Objects/Misc/bureaucracy.rsi # Need for PaperVisuals otherwise it wont stop complaining + state: paper_words + map: ["enum.PaperVisualLayers.Writing"] + visible: false + - type: Item + size: Normal + inhandVisuals: + left: + - state: inhand-left-base + color: "#fff87c" + - state: inhand-left-text + right: + - state: inhand-right-base + color: "#fff87c" + - state: inhand-right-text + +- type: entity # Salvage / Cargo + parent: BaseBlueprintFaxable + id: NFBaseBlueprintSalvage + abstract: true + components: + - type: Sprite + layers: + - sprite: _NF/Objects/Tools/blueprints.rsi + state: icon-base + color: "#e1ba8b" + - sprite: _NF/Objects/Tools/blueprints.rsi + state: icon-text + - sprite: Objects/Misc/bureaucracy.rsi + state: paper_stamp-generic + offset: 0.15,-0.1 + map: ["enum.PaperVisualLayers.Stamp"] + visible: false + - sprite: Objects/Misc/bureaucracy.rsi # Need for PaperVisuals otherwise it wont stop complaining + state: paper_words + map: ["enum.PaperVisualLayers.Writing"] + visible: false + - type: Item + size: Normal + inhandVisuals: + left: + - state: inhand-left-base + color: "#e1ba8b" + - state: inhand-left-text + right: + - state: inhand-right-base + color: "#e1ba8b" + - state: inhand-right-text + +- type: entity # Science + parent: BaseBlueprintFaxable + id: NFBaseBlueprintScience + abstract: true + components: + - type: Sprite + layers: + - sprite: _NF/Objects/Tools/blueprints.rsi + state: icon-base + color: "#e18bd5" + - sprite: _NF/Objects/Tools/blueprints.rsi + state: icon-text + - sprite: Objects/Misc/bureaucracy.rsi + state: paper_stamp-generic + offset: 0.15,-0.1 + map: ["enum.PaperVisualLayers.Stamp"] + visible: false + - sprite: Objects/Misc/bureaucracy.rsi # Need for PaperVisuals otherwise it wont stop complaining + state: paper_words + map: ["enum.PaperVisualLayers.Writing"] + visible: false + - type: Item + size: Normal + inhandVisuals: + left: + - state: inhand-left-base + color: "#e18bd5" + - state: inhand-left-text + right: + - state: inhand-right-base + color: "#e18bd5" + - state: inhand-right-text + +- type: entity # Service + parent: BaseBlueprintFaxable + id: NFBaseBlueprintService + abstract: true + components: + - type: Sprite + layers: + - sprite: _NF/Objects/Tools/blueprints.rsi + state: icon-base + color: "#94e18b" + - sprite: _NF/Objects/Tools/blueprints.rsi + state: icon-text + - sprite: Objects/Misc/bureaucracy.rsi + state: paper_stamp-generic + offset: 0.15,-0.1 + map: ["enum.PaperVisualLayers.Stamp"] + visible: false + - sprite: Objects/Misc/bureaucracy.rsi # Need for PaperVisuals otherwise it wont stop complaining + state: paper_words + map: ["enum.PaperVisualLayers.Writing"] + visible: false + - type: Item + size: Normal + inhandVisuals: + left: + - state: inhand-left-base + color: "#94e18b" + - state: inhand-left-text + right: + - state: inhand-right-base + color: "#94e18b" + - state: inhand-right-text + +- type: entity # Medical + parent: BaseBlueprintFaxable + id: NFBaseBlueprintMedical + abstract: true + components: + - type: Sprite + layers: + - sprite: _NF/Objects/Tools/blueprints.rsi + state: icon-base + color: "#97cae1" + - sprite: _NF/Objects/Tools/blueprints.rsi + state: icon-text + - sprite: Objects/Misc/bureaucracy.rsi + state: paper_stamp-generic + offset: 0.15,-0.1 + map: ["enum.PaperVisualLayers.Stamp"] + visible: false + - sprite: Objects/Misc/bureaucracy.rsi # Need for PaperVisuals otherwise it wont stop complaining + state: paper_words + map: ["enum.PaperVisualLayers.Writing"] + visible: false + - type: Item + size: Normal + inhandVisuals: + left: + - state: inhand-left-base + color: "#97cae1" + - state: inhand-left-text + right: + - state: inhand-right-base + color: "#97cae1" + - state: inhand-right-text + +- type: entity # Armory + parent: BaseBlueprintFaxable + id: NFBaseBlueprintArmory + abstract: true + components: + - type: Sprite + layers: + - sprite: _NF/Objects/Tools/blueprints.rsi + state: icon-base + color: "#e18b8b" + - sprite: _NF/Objects/Tools/blueprints.rsi + state: icon-text + - sprite: Objects/Misc/bureaucracy.rsi + state: paper_stamp-generic + offset: 0.15,-0.1 + map: ["enum.PaperVisualLayers.Stamp"] + visible: false + - sprite: Objects/Misc/bureaucracy.rsi # Need for PaperVisuals otherwise it wont stop complaining + state: paper_words + map: ["enum.PaperVisualLayers.Writing"] + visible: false + - type: Item + size: Normal + inhandVisuals: + left: + - state: inhand-left-base + color: "#e18b8b" + - state: inhand-left-text + right: + - state: inhand-right-base + color: "#e18b8b" + - state: inhand-right-text + +- type: entity # Church + parent: BaseBlueprintFaxable + id: NFBaseBlueprintChurch + abstract: true + components: + - type: Sprite + layers: + - sprite: _NF/Objects/Tools/blueprints.rsi + state: icon-base + color: "#525252" + - sprite: _NF/Objects/Tools/blueprints.rsi + state: icon-text + color: "#cbab00" + - sprite: Objects/Misc/bureaucracy.rsi + state: paper_stamp-generic + offset: 0.15,-0.1 + map: ["enum.PaperVisualLayers.Stamp"] + visible: false + - sprite: Objects/Misc/bureaucracy.rsi # Need for PaperVisuals otherwise it wont stop complaining + state: paper_words + map: ["enum.PaperVisualLayers.Writing"] + visible: false + - type: Item + size: Normal + inhandVisuals: + left: + - state: inhand-left-base + color: "#525252" + - state: inhand-left-text + color: "#cbab00" + right: + - state: inhand-right-base + color: "#525252" + - state: inhand-right-text + color: "#cbab00" + +# Non-faxable variants (obtainable from expeditions) + +- type: entity # Armory + parent: [ BaseC3Contraband, NFBaseBlueprint ] + id: BaseBlueprintExpedition + abstract: true + components: + - type: Sprite + layers: + - sprite: _NF/Objects/Tools/blueprints.rsi + state: icon-base + color: "#d70601" + - sprite: _NF/Objects/Tools/blueprints.rsi + state: icon-text + - sprite: Objects/Misc/bureaucracy.rsi + state: paper_stamp-generic + offset: 0.15,-0.1 + map: ["enum.PaperVisualLayers.Stamp"] + visible: false + - sprite: Objects/Misc/bureaucracy.rsi # Need for PaperVisuals otherwise it wont stop complaining + state: paper_words + map: ["enum.PaperVisualLayers.Writing"] + visible: false + - type: Item + size: Normal + inhandVisuals: + left: + - state: inhand-left-base + color: "#d70601" + - state: inhand-left-text + right: + - state: inhand-right-base + color: "#d70601" + - state: inhand-right-text + - type: Paper + stampState: paper_stamp-rd + stampedBy: + - reapply: False + stampType: RubberStamp + stampedColor: '#1F66A0FF' + stampedName: stamp-component-stamped-name-rd + - type: StaticPrice + price: 1000 diff --git a/Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_engineering.yml b/Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_engineering.yml new file mode 100644 index 00000000000..f786df26b81 --- /dev/null +++ b/Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_engineering.yml @@ -0,0 +1,122 @@ +# Advanced Tools +- type: entity + parent: NFBaseBlueprintEngineering + id: NFBlueprintPowerDrill + name: power drill blueprint + description: A blueprint with a schematic of a power drill. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - PowerDrill + +- type: entity + parent: NFBaseBlueprintEngineering + id: NFBlueprintJawsOfLife + name: jaws of life blueprint + description: A blueprint with a schematic of a jaws of life. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - JawsOfLife + +- type: entity + parent: NFBaseBlueprintEngineering + id: NFBlueprintWelderExperimental + name: experimental welder blueprint + description: A blueprint with a schematic of an experimental welder. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - WelderExperimental + +- type: entity + parent: NFBaseBlueprintEngineering + id: NFBlueprintShipyardRCDAmmo + name: shipyard compressed matter blueprint + description: A blueprint with a schematic of a shipyard compressed matter. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - ShipyardRCDAmmo + +# Power cells +- type: entity + parent: NFBaseBlueprintEngineering + id: NFBlueprintPowerCellMediumPrinted + name: medium-capacity power cell blueprint + description: A blueprint with a schematic of a medium-capacity power cell. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - PowerCellMedium + +- type: entity + parent: NFBaseBlueprintEngineering + id: NFBlueprintPowerCellMicroreactor + name: microreactor blueprint + description: A blueprint with a schematic of a microreactor. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - PowerCellMicroreactor + +# Devices +- type: entity + parent: NFBaseBlueprintEngineering + id: NFBlueprintSignallerAdvanced + name: advanced signaller blueprint + description: A blueprint with a schematic of an advanced signaller. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - SignallerAdvanced + +- type: entity + parent: NFBaseBlueprintEngineering + id: NFBlueprintClothingBackpackHolding + name: bluespace backpack blueprint + description: A blueprint with a schematic of a bluespace backpack. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - ClothingBackpackHolding + +- type: entity + parent: NFBaseBlueprintEngineering + id: NFBlueprintClothingBackpackSatchelHolding + name: bluespace satchel blueprint + description: A blueprint with a schematic of a bluespace satchel. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - ClothingBackpackSatchelHolding + +- type: entity + parent: NFBaseBlueprintEngineering + id: NFBlueprintClothingBackpackMessengerHolding + name: bluespace messenger bag blueprint + description: A blueprint with a schematic of a bluespace messenger bag. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - ClothingBackpackMessengerHolding + +- type: entity + parent: NFBaseBlueprintEngineering + id: NFBlueprintClothingBackpackDuffelHolding + name: bluespace duffel blueprint + description: A blueprint with a schematic of a bluespace duffel. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - ClothingBackpackDuffelHolding + +- type: entity + parent: NFBaseBlueprintEngineering + id: NFBlueprintConstructionBagOfHolding + name: bluespace construction bag blueprint + description: A blueprint with a schematic of a bluespace construction bag. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - ConstructionBagOfHolding diff --git a/Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_expedition_loot.yml b/Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_expedition_loot.yml new file mode 100644 index 00000000000..2fa455a60c9 --- /dev/null +++ b/Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_expedition_loot.yml @@ -0,0 +1,127 @@ + +# Ammo +## Uranium + +- type: entity + parent: BaseBlueprintExpedition + id: NFBlueprintBoxShotgunUranium + name: uranium shotgun ammo blueprint + description: A blueprint with a schematic of an uranium shotgun ammo. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - BoxShotgunUranium + +- type: entity + parent: BaseBlueprintExpedition + id: NFBlueprintMagazineBoxRifleUranium + name: uranium .20 ammo blueprint + description: A blueprint with a schematic of an uranium .20 rifle ammo. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - MagazineBoxRifleUranium + +- type: entity + parent: BaseBlueprintExpedition + id: NFBlueprintMagazineBoxLightRifleUranium + name: uranium .30 ammo blueprint + description: A blueprint with a schematic of an uranium .30 rifle ammo. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - MagazineBoxLightRifleUranium + +- type: entity + parent: BaseBlueprintExpedition + id: NFBlueprintMagazineBoxMagnumUranium + name: uranium .45 ammo blueprint + description: A blueprint with a schematic of an uranium .45 ammo. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - MagazineBoxMagnumUranium + +- type: entity + parent: BaseBlueprintExpedition + id: NFBlueprintMagazineBoxPistolUranium + name: uranium .35 ammo blueprint + description: A blueprint with a schematic of an uranium .35 ammo. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - MagazineBoxPistolUranium + +## Incendiary + +- type: entity + parent: BaseBlueprintExpedition + id: NFBlueprintBoxShotgunIncendiary + name: incendiary shotgun ammo blueprint + description: A blueprint with a schematic of an incendiary shotgun ammo. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - BoxShotgunIncendiary + +- type: entity + parent: BaseBlueprintExpedition + id: NFBlueprintMagazineBoxRifleIncendiary + name: incendiary .20 ammo blueprint + description: A blueprint with a schematic of an incendiary .20 rifle ammo. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - MagazineBoxRifleIncendiary + +- type: entity + parent: BaseBlueprintExpedition + id: NFBlueprintMagazineBoxLightRifleIncendiary + name: incendiary .30 ammo blueprint + description: A blueprint with a schematic of an incendiary .30 rifle ammo. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - MagazineBoxLightRifleIncendiary + +- type: entity + parent: BaseBlueprintExpedition + id: NFBlueprintMagazineBoxMagnumIncendiary + name: incendiary .45 ammo blueprint + description: A blueprint with a schematic of an incendiary .45 ammo. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - MagazineBoxMagnumIncendiary + +- type: entity + parent: BaseBlueprintExpedition + id: NFBlueprintMagazineBoxPistolIncendiary + name: incendiary .35 ammo blueprint + description: A blueprint with a schematic of an incendiary .35 ammo. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - MagazineBoxPistolIncendiary + +# Guns + +- type: entity + parent: BaseBlueprintExpedition + id: NFBlueprintWeaponLaserCannon + name: laser cannon blueprint + description: A blueprint with a schematic of a laser cannon. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - WeaponLaserCannon + +- type: entity + parent: BaseBlueprintExpedition + id: NFBlueprintWeaponXrayCannon + name: x-ray cannon blueprint + description: A blueprint with a schematic of a x-ray cannon. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - WeaponXrayCannon diff --git a/Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_medical.yml b/Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_medical.yml new file mode 100644 index 00000000000..acaed0fc6b9 --- /dev/null +++ b/Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_medical.yml @@ -0,0 +1,30 @@ + +- type: entity + parent: NFBaseBlueprintMedical + id: NFBlueprintBluespaceBeaker + name: bluespace beaker blueprint + description: A blueprint with a schematic of a bluespace beaker. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - BluespaceBeaker + +- type: entity + parent: NFBaseBlueprintMedical + id: NFBlueprintSyringeBluespace + name: bluespace syringe blueprint + description: A blueprint with a schematic of a bluespace syringe. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - SyringeBluespace + +- type: entity + parent: NFBaseBlueprintMedical + id: NFBlueprintVialBluespace + name: bluespace vial blueprint + description: A blueprint with a schematic of a bluespace vial. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - VialBluespace diff --git a/Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_salvage.yml b/Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_salvage.yml new file mode 100644 index 00000000000..e0658147e90 --- /dev/null +++ b/Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_salvage.yml @@ -0,0 +1,40 @@ + +- type: entity + parent: NFBaseBlueprintSalvage + id: NFBlueprintOreBagOfHolding + name: bluespace ore bag blueprint + description: A blueprint with a schematic of a bluespace ore bag. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - OreBagOfHolding + +- type: entity + parent: NFBaseBlueprintSalvage + id: NFBlueprintMiningDrillDiamond + name: diamond tipped mining drill blueprint + description: A blueprint with a schematic of a diamond tipped mining drill. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - MiningDrillDiamond + +- type: entity + parent: NFBaseBlueprintSalvage + id: NFBlueprintAdvancedMineralScannerEmpty + name: advanced mineral scanner blueprint + description: A blueprint with a schematic of an advanced mineral scanner. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - AdvancedMineralScannerEmpty + +- type: entity + parent: NFBaseBlueprintSalvage + id: NFBlueprintClothingOuterHardsuitMaximPrototype + name: experimental salvager hardsuit blueprint + description: A blueprint with a schematic of an experimental salvager hardsuit. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - ClothingOuterHardsuitMaximPrototype diff --git a/Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_science.yml b/Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_science.yml new file mode 100644 index 00000000000..4a6f8163132 --- /dev/null +++ b/Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_science.yml @@ -0,0 +1,50 @@ + +- type: entity + parent: NFBaseBlueprintScience + id: NFBlueprintRped + name: RPED blueprint + description: A blueprint with a schematic of a RPED. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - RPED + +- type: entity + parent: NFBaseBlueprintScience + id: NFBlueprintSuperCapacitorStockPart + name: super capacitor blueprint + description: A blueprint with a schematic of a super capacitor. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - SuperCapacitorStockPart + +- type: entity + parent: NFBaseBlueprintScience + id: NFBlueprintPicoManipulatorStockPart + name: super manipulator blueprint + description: A blueprint with a schematic of a super manipulator. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - PicoManipulatorStockPart + +- type: entity + parent: NFBaseBlueprintScience + id: NFBlueprintSuperMatterBinStockPart + name: super matter bin blueprint + description: A blueprint with a schematic of a super matter bin. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - SuperMatterBinStockPart + +- type: entity + parent: NFBaseBlueprintScience + id: NFBlueprintClothingShoesBootsMagAdv + name: advanced magboots blueprint + description: A blueprint with a schematic of an advanced magboots. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - ClothingShoesBootsMagAdv diff --git a/Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_service.yml b/Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_service.yml new file mode 100644 index 00000000000..821b57de609 --- /dev/null +++ b/Resources/Prototypes/_NF/Entities/Objects/Tools/blueprints/blueprints_service.yml @@ -0,0 +1,30 @@ + +- type: entity + parent: NFBaseBlueprintService + id: NFBlueprintAdvMopItem + name: advanced mop blueprint + description: A blueprint with a schematic of an advanced mop. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - AdvMopItem + +- type: entity + parent: NFBaseBlueprintService + id: NFBlueprintPlantAnalyzerEmpty + name: plant analyzer blueprint + description: A blueprint with a schematic of a plant analyzer. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - PlantAnalyzer + +- type: entity + parent: NFBaseBlueprintService + id: NFBlueprintPlantBagOfHolding + name: bluespace plant bag blueprint + description: A blueprint with a schematic of a bluespace plant bag. It can be inserted into an autolathe or a techfab. + components: + - type: Blueprint + providedRecipes: + - PlantBagOfHolding diff --git a/Resources/Prototypes/_NF/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/_NF/Entities/Structures/Machines/lathe.yml index 7be9a0eba89..33bf22ba2e7 100644 --- a/Resources/Prototypes/_NF/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/_NF/Entities/Structures/Machines/lathe.yml @@ -1,3 +1,20 @@ +- type: entity + id: BlueprintReceiverBase + abstract: true + components: + - type: BlueprintReceiver + whitelist: + tags: + - BlueprintAutolathe + - type: ContainerContainer + containers: + machine_board: !type:Container + machine_parts: !type:Container + blueprint: !type:Container + - type: EmptyOnMachineDeconstruct + containers: + - blueprint + - type: entity parent: [BaseStructureDisableToolUse, BaseLathe] id: PrizeCounter @@ -137,7 +154,7 @@ - PrizeTicket - type: entity - parent: BaseLatheLube + parent: [ BaseLatheLube, BlueprintReceiverBase ] id: SalvageTechfabNF name: salvage techfab description: Prints equipment for salvagers. @@ -271,7 +288,7 @@ - type: entity id: NfsdTechFab - parent: SecurityTechFab + parent: [ SecurityTechFab, BlueprintReceiverBase ] name: nfsd techfab description: Prints equipment for use by nfsd. components: @@ -293,7 +310,7 @@ - type: entity id: MercenaryTechFab - parent: BaseLatheLube + parent: [ BaseLatheLube, BlueprintReceiverBase ] name: mercenary techfab description: Prints the bare minimum of tools of the trade that any budget mercenary or private security could need. Nothing fancy. components: @@ -512,7 +529,7 @@ parent: - MercenaryTechFab - BaseHyperlathe - - PunkHoloGraffitiOverlay # Prototype can be located at \Resources\Prototypes\_NF\Entities\Structures\Holographic\graffiti.yml + - PunkHoloGraffitiOverlay # Prototype can be located at /Resources/Prototypes/_NF/Entities/Structures/Holographic/graffiti.yml name: hacked mercenary techfab description: Prints the bare minimum of tools of the trade that any budget mercenary or private security could need. Nothing fancy. components: @@ -708,3 +725,74 @@ - MagazineBoxMagnumUranium - MagazineBoxPistolUranium - MagazineBoxRifleUranium + +- type: entity + id: BlueprintLithograph + parent: BaseLatheLube + name: blueprint lithograph + description: Prints blueprints. + components: + - type: Sprite + sprite: _NF/Structures/Machines/blueprint_printer.rsi + snapCardinals: true + layers: + - state: icon + map: ["enum.LatheVisualLayers.IsRunning"] + - state: unlit + shader: unshaded + map: ["enum.PowerDeviceVisualLayers.Powered"] + - state: panel + map: ["enum.WiresVisualLayers.MaintenancePanel"] + - type: Machine + board: CircuitImprinterMachineCircuitboard + - type: Lathe + producingSound: /Audio/Machines/circuitprinter.ogg + idleState: icon + runningState: building + staticRecipes: + - NFBlueprintPowerCellMediumPrinted + dynamicRecipes: + # Engineering + - NFBlueprintPowerDrill + - NFBlueprintJawsOfLife + - NFBlueprintWelderExperimental + - NFBlueprintShipyardRCDAmmo + - NFBlueprintPowerCellMicroreactor + - NFBlueprintSignallerAdvanced + - NFBlueprintClothingBackpackHolding + - NFBlueprintClothingBackpackSatchelHolding + - NFBlueprintClothingBackpackMessengerHolding + - NFBlueprintClothingBackpackDuffelHolding + - NFBlueprintConstructionBagOfHolding + - NFBlueprintPortableRecharger + # Medical + - NFBlueprintBluespaceBeaker + - NFBlueprintSyringeBluespace + - NFBlueprintVialBluespace + # Salvage + - NFBlueprintOreBagOfHolding + - NFBlueprintMiningDrillDiamond + - NFBlueprintAdvancedMineralScannerEmpty + - NFBlueprintClothingOuterHardsuitMaximPrototype + # Science + - NFBlueprintRped + - NFBlueprintSuperCapacitorStockPart + - NFBlueprintPicoManipulatorStockPart + - NFBlueprintSuperMatterBinStockPart + - NFBlueprintClothingShoesBootsMagAdv + # Service + - NFBlueprintAdvMopItem + - NFBlueprintPlantAnalyzerEmpty + - NFBlueprintPlantBagOfHolding + # Armory + - NFBlueprintWeaponAntiqueLaser + - NFBlueprintWeaponLaserSvalinn + - NFBlueprintPortableRecharger + - BlueprintClothingOuterHardsuitScaf + - type: MaterialStorage + whitelist: + tags: + - Sheet + - RawMaterial + - Ingot + - type: RequireProjectileTarget diff --git a/Resources/Prototypes/_NF/Recipes/Lathes/blueprints.yml b/Resources/Prototypes/_NF/Recipes/Lathes/blueprints.yml new file mode 100644 index 00000000000..de7cc1a26c4 --- /dev/null +++ b/Resources/Prototypes/_NF/Recipes/Lathes/blueprints.yml @@ -0,0 +1,176 @@ +# Base + +- type: latheRecipe + abstract: true + id: NFBaseBlueprintLatheRecipe + completetime: 4 + materials: + Paper: 500 + +# Recipes +## Engineering + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: NFBlueprintPowerDrill + result: NFBlueprintPowerDrill + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: NFBlueprintJawsOfLife + result: NFBlueprintJawsOfLife + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: NFBlueprintWelderExperimental + result: NFBlueprintWelderExperimental + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: NFBlueprintShipyardRCDAmmo + result: NFBlueprintShipyardRCDAmmo + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: NFBlueprintPowerCellMicroreactor + result: NFBlueprintPowerCellMicroreactor + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: NFBlueprintPowerCellMediumPrinted + result: NFBlueprintPowerCellMediumPrinted + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: NFBlueprintSignallerAdvanced + result: NFBlueprintSignallerAdvanced + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: NFBlueprintClothingBackpackHolding + result: NFBlueprintClothingBackpackHolding + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: NFBlueprintClothingBackpackSatchelHolding + result: NFBlueprintClothingBackpackSatchelHolding + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: NFBlueprintClothingBackpackMessengerHolding + result: NFBlueprintClothingBackpackMessengerHolding + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: NFBlueprintClothingBackpackDuffelHolding + result: NFBlueprintClothingBackpackDuffelHolding + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: NFBlueprintConstructionBagOfHolding + result: NFBlueprintConstructionBagOfHolding + +## Medical + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: NFBlueprintBluespaceBeaker + result: NFBlueprintBluespaceBeaker + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: NFBlueprintSyringeBluespace + result: NFBlueprintSyringeBluespace + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: NFBlueprintVialBluespace + result: NFBlueprintVialBluespace + +## Salvage + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: NFBlueprintOreBagOfHolding + result: NFBlueprintOreBagOfHolding + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: NFBlueprintMiningDrillDiamond + result: NFBlueprintMiningDrillDiamond + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: NFBlueprintAdvancedMineralScannerEmpty + result: NFBlueprintAdvancedMineralScannerEmpty + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: NFBlueprintClothingOuterHardsuitMaximPrototype + result: NFBlueprintClothingOuterHardsuitMaximPrototype + +## Science + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: NFBlueprintRped + result: NFBlueprintRped + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: NFBlueprintSuperCapacitorStockPart + result: NFBlueprintSuperCapacitorStockPart + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: NFBlueprintPicoManipulatorStockPart + result: NFBlueprintPicoManipulatorStockPart + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: NFBlueprintSuperMatterBinStockPart + result: NFBlueprintSuperMatterBinStockPart + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: NFBlueprintClothingShoesBootsMagAdv + result: NFBlueprintClothingShoesBootsMagAdv + +## Service + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: NFBlueprintAdvMopItem + result: NFBlueprintAdvMopItem + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: NFBlueprintPlantAnalyzerEmpty + result: NFBlueprintPlantAnalyzerEmpty + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: NFBlueprintPlantBagOfHolding + result: NFBlueprintPlantBagOfHolding + +## Armory + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: NFBlueprintWeaponAntiqueLaser + result: NFBlueprintWeaponAntiqueLaser + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: NFBlueprintWeaponLaserSvalinn + result: NFBlueprintWeaponLaserSvalinn + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: NFBlueprintPortableRecharger + result: NFBlueprintPortableRecharger + +- type: latheRecipe + parent: NFBaseBlueprintLatheRecipe + id: BlueprintClothingOuterHardsuitScaf + result: BlueprintClothingOuterHardsuitScaf diff --git a/Resources/Prototypes/_NF/Recipes/Lathes/electronics.yml b/Resources/Prototypes/_NF/Recipes/Lathes/electronics.yml index 8a31eb5f40d..a4f2939b860 100644 --- a/Resources/Prototypes/_NF/Recipes/Lathes/electronics.yml +++ b/Resources/Prototypes/_NF/Recipes/Lathes/electronics.yml @@ -7,6 +7,15 @@ Steel: 800 Glass: 900 +- type: latheRecipe + id: BlueprintLithographMachineCircuitboard + result: BlueprintLithographMachineCircuitboard + category: Circuitry + completetime: 4 + materials: + Steel: 800 + Glass: 900 + # Thrusters - type: latheRecipe id: ThrusterSecurityMachineCircuitboard diff --git a/Resources/Prototypes/_NF/Research/arsenal.yml b/Resources/Prototypes/_NF/Research/arsenal.yml index 052168e9570..4bf0ced9362 100644 --- a/Resources/Prototypes/_NF/Research/arsenal.yml +++ b/Resources/Prototypes/_NF/Research/arsenal.yml @@ -107,5 +107,6 @@ - ClothingOuterHardsuitWarden - ClothingOuterHardsuitBrigmedic - ClothingOuterHardsuitScaf + - BlueprintClothingOuterHardsuitScaf technologyPrerequisites: - HardsuitsArmored diff --git a/Resources/Prototypes/_NF/Research/experimental.yml b/Resources/Prototypes/_NF/Research/experimental.yml index 882949c9dcb..405e6f5bddb 100644 --- a/Resources/Prototypes/_NF/Research/experimental.yml +++ b/Resources/Prototypes/_NF/Research/experimental.yml @@ -1,3 +1,18 @@ +# Tier 2 + +- type: technology + id: RapidPartExchange + name: research-technology-rped + icon: + sprite: _NF/Objects/Specific/Research/rped.rsi + state: icon + discipline: Experimental + tier: 2 + cost: 7500 + recipeUnlocks: + - RPED + - NFBlueprintRped + # Tier 3 - type: technology @@ -13,6 +28,9 @@ - SuperCapacitorStockPart - SuperMatterBinStockPart - PicoManipulatorStockPart + - NFBlueprintSuperCapacitorStockPart + - NFBlueprintPicoManipulatorStockPart + - NFBlueprintSuperMatterBinStockPart - type: technology id: MagnetsTechAdvanced @@ -25,6 +43,7 @@ cost: 10000 recipeUnlocks: - ClothingShoesBootsMagAdv + - NFBlueprintClothingShoesBootsMagAdv technologyPrerequisites: - MagnetsTech diff --git a/Resources/Prototypes/_NF/Research/industrial.yml b/Resources/Prototypes/_NF/Research/industrial.yml index 3bb1d58fbfe..ad7b57bb82e 100644 --- a/Resources/Prototypes/_NF/Research/industrial.yml +++ b/Resources/Prototypes/_NF/Research/industrial.yml @@ -11,6 +11,7 @@ cost: 5000 recipeUnlocks: - ConstructionBagOfHolding + - NFBlueprintConstructionBagOfHolding - type: technology id: HardsuitsBasic @@ -78,5 +79,6 @@ - ClothingOuterHardsuitMaximPrototype - ClothingHeadHelmetAncient - ClothingOuterHardsuitAncientEVA + - NFBlueprintClothingOuterHardsuitMaximPrototype technologyPrerequisites: - HardsuitsAdvanced diff --git a/Resources/Textures/_NF/Objects/Specific/Research/rped.rsi/icon.png b/Resources/Textures/_NF/Objects/Specific/Research/rped.rsi/icon.png new file mode 100644 index 00000000000..cd57f65eb31 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Specific/Research/rped.rsi/icon.png differ 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 00000000000..25702f772a8 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Specific/Research/rped.rsi/inhand-left.png differ diff --git a/Resources/Textures/_NF/Objects/Specific/Research/rped.rsi/inhand-right.png b/Resources/Textures/_NF/Objects/Specific/Research/rped.rsi/inhand-right.png new file mode 100644 index 00000000000..31843e50818 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Specific/Research/rped.rsi/inhand-right.png differ 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 00000000000..59ee3fc0b3b Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Cases/documentcaseshort.rsi/icon-open.png differ diff --git a/Resources/Textures/_NF/Objects/Storage/Cases/documentcaseshort.rsi/icon.png b/Resources/Textures/_NF/Objects/Storage/Cases/documentcaseshort.rsi/icon.png new file mode 100644 index 00000000000..4000d69ec8f Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Cases/documentcaseshort.rsi/icon.png differ diff --git a/Resources/Textures/_NF/Objects/Storage/Cases/documentcaseshort.rsi/inhand-left.png b/Resources/Textures/_NF/Objects/Storage/Cases/documentcaseshort.rsi/inhand-left.png new file mode 100644 index 00000000000..ee691780b16 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Cases/documentcaseshort.rsi/inhand-left.png differ diff --git a/Resources/Textures/_NF/Objects/Storage/Cases/documentcaseshort.rsi/inhand-right.png b/Resources/Textures/_NF/Objects/Storage/Cases/documentcaseshort.rsi/inhand-right.png new file mode 100644 index 00000000000..952ca2da6f3 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Cases/documentcaseshort.rsi/inhand-right.png differ 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 00000000000..d598b670413 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/Cases/documentcaseshort.rsi/unshaded.png differ diff --git a/Resources/Textures/_NF/Objects/Tools/blueprints.rsi/icon-base.png b/Resources/Textures/_NF/Objects/Tools/blueprints.rsi/icon-base.png new file mode 100644 index 00000000000..26526970dfd Binary files /dev/null and b/Resources/Textures/_NF/Objects/Tools/blueprints.rsi/icon-base.png differ 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 00000000000..0780b0c5d50 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Tools/blueprints.rsi/icon-text.png differ diff --git a/Resources/Textures/_NF/Objects/Tools/blueprints.rsi/inhand-left-base.png b/Resources/Textures/_NF/Objects/Tools/blueprints.rsi/inhand-left-base.png new file mode 100644 index 00000000000..3d204ca7e9c Binary files /dev/null and b/Resources/Textures/_NF/Objects/Tools/blueprints.rsi/inhand-left-base.png differ 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 00000000000..744a664bc47 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Tools/blueprints.rsi/inhand-left-text.png differ 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 00000000000..a123c9de256 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Tools/blueprints.rsi/inhand-right-base.png differ 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 00000000000..649d495c3e0 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Tools/blueprints.rsi/inhand-right-text.png differ diff --git a/Resources/Textures/_NF/Objects/Tools/blueprints.rsi/meta.json b/Resources/Textures/_NF/Objects/Tools/blueprints.rsi/meta.json new file mode 100644 index 00000000000..8511331d7ab --- /dev/null +++ b/Resources/Textures/_NF/Objects/Tools/blueprints.rsi/meta.json @@ -0,0 +1,33 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Icon sprite is taken from Baystation12 at https://github.com/Baystation12/Baystation12/blob/dev/icons/obj/tools/blueprints.dmi | Split into layers and grayscaled by ErhardSteinhauer (discord/github); Inhand sprites are taken from https://github.com/vgstation-coders/vgstation13/commit/dd749c36c416a6960782732cecf25e5ebac326e8 | Split into layers and grayscaled by ErhardSteinhauer (discord/github)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "inhand-left-base", + "directions": 4 + }, + { + "name": "inhand-left-text", + "directions": 4 + }, + { + "name": "inhand-right-base", + "directions": 4 + }, + { + "name": "inhand-right-text", + "directions": 4 + }, + { + "name": "icon-base" + }, + { + "name": "icon-text" + } + ] +} diff --git a/Resources/Textures/_NF/Structures/Machines/blueprint_printer.rsi/building.png b/Resources/Textures/_NF/Structures/Machines/blueprint_printer.rsi/building.png new file mode 100644 index 00000000000..32b081a8430 Binary files /dev/null and b/Resources/Textures/_NF/Structures/Machines/blueprint_printer.rsi/building.png differ 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 00000000000..99ebfbe0d1d Binary files /dev/null and b/Resources/Textures/_NF/Structures/Machines/blueprint_printer.rsi/icon.png differ 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 00000000000..c866a0c4566 Binary files /dev/null and b/Resources/Textures/_NF/Structures/Machines/blueprint_printer.rsi/panel.png differ 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 00000000000..58528c802d2 Binary files /dev/null and b/Resources/Textures/_NF/Structures/Machines/blueprint_printer.rsi/unlit.png differ