;#@>wXi1Xv}wJDhQg#m2LQd1
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
Z{kT65Jzel|`M;>-Z+o;iR#cM${||7Ja3cT!
literal 0
HcmV?d00001
diff --git a/Resources/Locale/en-US/research/technologies.ftl b/Resources/Locale/en-US/research/technologies.ftl
index 26cd4f83155..88cd0be3974 100644
--- a/Resources/Locale/en-US/research/technologies.ftl
+++ b/Resources/Locale/en-US/research/technologies.ftl
@@ -53,6 +53,8 @@ research-technology-advanced-anomaly-research = Advanced Anomaly Research
research-technology-rped = Rapid Part Exchange
research-technology-super-parts = Super Parts
research-technology-deterrence = Deterrence Technologies
+research-technology-night-vision = Night vision
+research-technology-thermal-vision = Thermal vision
research-technology-janitorial-equipment = Janitorial Equipment
research-technology-laundry-tech = Laundry Tech
diff --git a/Resources/Locale/en-US/store/uplink-catalog.ftl b/Resources/Locale/en-US/store/uplink-catalog.ftl
index 7eaacc50267..214a2592967 100644
--- a/Resources/Locale/en-US/store/uplink-catalog.ftl
+++ b/Resources/Locale/en-US/store/uplink-catalog.ftl
@@ -329,6 +329,12 @@ uplink-hardsuit-syndieelite-desc = An elite version of the blood-red hardsuit, w
uplink-clothing-outer-hardsuit-juggernaut-name = Cybersun Juggernaut Suit
uplink-clothing-outer-hardsuit-juggernaut-desc = Hyper resilient armor made of materials tested in the Tau chromosphere facility. The only thing that's going to be slowing you down is this suit... and tasers.
+uplink-night-vision-name = Night vision goggles
+uplink-night-vision-desc = They allow you to see in the dark, all while looking like normal sunglasses!
+
+uplink-thermal-vision-name = Thermal vision goggles
+uplink-thermal-vision-desc = They allow you to see living creatures regardless of obstacles, all while looking like normal sunglasses!
+
# Misc
uplink-cyberpen-name = Cybersun Pen
uplink-cyberpen-desc = Cybersun's legal department pen, invaluable for forging documents and escaping prisons. Smells vaguely of hard-light and war profiteering.
diff --git a/Resources/Locale/ru-RU/prototypes/actions/types.ftl b/Resources/Locale/ru-RU/prototypes/actions/types.ftl
new file mode 100644
index 00000000000..57aa426632f
--- /dev/null
+++ b/Resources/Locale/ru-RU/prototypes/actions/types.ftl
@@ -0,0 +1,8 @@
+ent-ActivateSmokeImplant = Переключить ночное зрение
+ .desc = Переключает ночное зрение.
+
+ent-ActivateSmokeImplant = Переключить тепловизионное зрение
+ .desc = Переключает тепловизионное зрение.
+
+ent-PulseThermalVision = Подать термальный импульт
+ .desc = Временно активируйте тепловизионное зрение.
\ No newline at end of file
diff --git a/Resources/Locale/ru-RU/prototypes/entities/clothing/eyes/goggles.ftl b/Resources/Locale/ru-RU/prototypes/entities/clothing/eyes/goggles.ftl
new file mode 100644
index 00000000000..050e373c862
--- /dev/null
+++ b/Resources/Locale/ru-RU/prototypes/entities/clothing/eyes/goggles.ftl
@@ -0,0 +1,23 @@
+# Night Vision Goggles
+ent-ClothingEyesNightVisionGoggles = ПНВ
+ .desc = Усовершенствованный дисплей, который обеспечивает видимость в полной темноте.
+ent-ClothingEyesNightVisionSecurityGoggles = ПНВ службы безопасности
+ .desc = { ent-ClothingEyesNightVisionGoggles.desc }
+ent-ClothingEyesNightVisionMedicalGoggles = ПНВ медицинский
+ .desc = { ent-ClothingEyesNightVisionGoggles.desc }
+ent-ClothingEyesNightVisionDiagnosticGoggles = ПНВ диагностический
+ .desc = { ent-ClothingEyesNightVisionGoggles.desc }
+ent-ClothingEyesNightVisionGogglesSyndie = { ent-ClothingEyesNightVisionGoggles }
+ .desc = { ent-ClothingEyesNightVisionGoggles.desc }
+ent-ClothingEyesNightVisionGogglesNukie = { ent-ClothingEyesNightVisionGoggles }
+ .desc = { ent-ClothingEyesNightVisionGoggles.desc }
+
+# Thermal Vision Goggles
+ent-ClothingEyesThermalVisionGoggles = ПТВ
+ .desc = Термальность - это как отношения, важно не только наличие тепла, но и его распределение.
+ent-ClothingEyesThermalVisionMonocle = термонокль
+ .desc = Видение сквозь стены ещё никогда не было таким нежным и личностным.
+ent-ClothingEyesThermalVisionGogglesSyndie = { ent-ClothingEyesThermalVisionGoggles }
+ .desc = { ent-ClothingEyesThermalVisionGoggles.desc }
+ent-ClothingEyesThermalVisionGogglesNukie = { ent-ClothingEyesThermalVisionGoggles }
+ .desc = { ent-ClothingEyesThermalVisionGoggles.desc }
diff --git a/Resources/Locale/ru-RU/entities/objects/tools/empflashlight.ftl b/Resources/Locale/ru-RU/prototypes/objects/tools/empflashlight.ftl
similarity index 100%
rename from Resources/Locale/ru-RU/entities/objects/tools/empflashlight.ftl
rename to Resources/Locale/ru-RU/prototypes/objects/tools/empflashlight.ftl
diff --git a/Resources/Locale/ru-RU/research/techologies.ftl b/Resources/Locale/ru-RU/research/techologies.ftl
new file mode 100644
index 00000000000..54f38992551
--- /dev/null
+++ b/Resources/Locale/ru-RU/research/techologies.ftl
@@ -0,0 +1,2 @@
+research-technology-night-vision = Ночное видение
+research-technology-thermal-vision = Термальное видение
\ No newline at end of file
diff --git a/Resources/Locale/ru-RU/store/uplink-catalog.ftl b/Resources/Locale/ru-RU/store/uplink-catalog.ftl
index 5bb4067557f..a5ccaace17d 100644
--- a/Resources/Locale/ru-RU/store/uplink-catalog.ftl
+++ b/Resources/Locale/ru-RU/store/uplink-catalog.ftl
@@ -1,2 +1,9 @@
uplink-emp-flashlight-name = Электромагнитный фонарик
uplink-emp-flashlight-desc = Замаскированное под фонарик устройство. При ударе выпускает ЭМИ, поражающий электрические устройства.
+
+#Armor
+uplink-night-vision-name = Прибор ночного видения
+uplink-night-vision-desc = Позволяет вам видеть в темноте, при этом выглядя как обычные солнцезащитные очки!
+
+uplink-thermal-vision-name = Прибор термального видения
+uplink-thermal-vision-desc = Позволяет вам видеть живых существ независимо от преград, при этом выглядя как обычные солнцезащитные очки!
diff --git a/Resources/Prototypes/Actions/types.yml b/Resources/Prototypes/Actions/types.yml
index 43aaef47364..0a57157f1b2 100644
--- a/Resources/Prototypes/Actions/types.yml
+++ b/Resources/Prototypes/Actions/types.yml
@@ -404,4 +404,43 @@
useDelay: 40
event:
!type:FabricateActionEvent
- fabrication: FoodGumball
\ No newline at end of file
+ fabrication: FoodGumball
+
+- type: entity
+ id: ToggleNightVision
+ name: Switch night vision
+ description: Switches night vision.
+ categories: [ HideSpawnMenu ]
+ components:
+ - type: InstantAction
+ itemIconStyle: BigAction
+ priority: -20
+ icon:
+ sprite: Clothing/Eyes/Goggles/nightvision.rsi
+ state: icon
+ event: !type:ToggleNightVisionEvent
+
+- type: entity
+ id: ToggleThermalVision
+ name: Switch Thermal vision
+ description: Switches Thermal vision.
+ categories: [ HideSpawnMenu ]
+ components:
+ - type: InstantAction
+ itemIconStyle: BigAction
+ priority: -20
+ icon:
+ sprite: Clothing/Eyes/Goggles/thermal.rsi
+ state: icon
+ event: !type:ToggleThermalVisionEvent
+
+- type: entity
+ id: PulseThermalVision
+ parent: ToggleThermalVision
+ name: Pulse Thermal Vision
+ description: Activate thermal vision temporarily.
+ categories: [ HideSpawnMenu ]
+ components:
+ - type: InstantAction
+ useDelay: 4
+
diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/misc.yml b/Resources/Prototypes/Catalog/Fills/Lockers/misc.yml
index 756f295d129..65916a84b99 100644
--- a/Resources/Prototypes/Catalog/Fills/Lockers/misc.yml
+++ b/Resources/Prototypes/Catalog/Fills/Lockers/misc.yml
@@ -44,7 +44,7 @@
prob: 0.2
- !type:EntSelector
id: WeaponFlareGun
- prob: 0.1
+ prob: 0.05
- !type:EntSelector
id: BoxMRE
prob: 0.1
@@ -165,6 +165,10 @@
- !type:EntSelector
id: WeaponSniperMosin
weight: 2
+ - !type:EntSelector
+ id: ClothingEyesNightVisionGogglesSyndie
+ - !type:EntSelector
+ id: ClothingEyesThermalVisionGogglesSyndie
- type: entityTable
id: MaintenanceLockerLoot
@@ -235,4 +239,4 @@
- !type:EntSelector
id: GeigerCounter
amount: !type:ConstantNumberSelector
- value: 2
\ No newline at end of file
+ value: 2
diff --git a/Resources/Prototypes/Catalog/uplink_catalog.yml b/Resources/Prototypes/Catalog/uplink_catalog.yml
index 7f9088a3d06..cc0e0bb0f36 100644
--- a/Resources/Prototypes/Catalog/uplink_catalog.yml
+++ b/Resources/Prototypes/Catalog/uplink_catalog.yml
@@ -1532,6 +1532,78 @@
components:
- SurplusBundle
+- type: listing
+ id: UplinkNightGoggles
+ name: uplink-night-vision-name
+ description: uplink-night-vision-desc
+ productEntity: ClothingEyesNightVisionGogglesSyndie
+ discountCategory: rareDiscounts
+ discountDownTo:
+ Telecrystal: 1
+ cost:
+ Telecrystal: 3
+ categories:
+ - UplinkWearables
+ conditions:
+ - !type:StoreWhitelistCondition
+ blacklist:
+ tags:
+ - NukeOpsUplink
+
+- type: listing
+ id: UplinkNightGogglesNukie
+ name: uplink-night-vision-name
+ description: uplink-night-vision-desc
+ productEntity: ClothingEyesNightVisionGogglesNukie
+ discountCategory: rareDiscounts
+ discountDownTo:
+ Telecrystal: 1
+ cost:
+ Telecrystal: 3
+ categories:
+ - UplinkWearables
+ conditions:
+ - !type:StoreWhitelistCondition
+ whitelist:
+ tags:
+ - NukeOpsUplink
+
+- type: listing
+ id: UplinkThermalGoggles
+ name: uplink-thermal-vision-name
+ description: uplink-thermal-vision-desc
+ productEntity: ClothingEyesThermalVisionGogglesSyndie
+ discountCategory: rareDiscounts
+ discountDownTo:
+ Telecrystal: 1
+ cost:
+ Telecrystal: 3
+ categories:
+ - UplinkWearables
+ conditions:
+ - !type:StoreWhitelistCondition
+ blacklist:
+ tags:
+ - NukeOpsUplink
+
+- type: listing
+ id: UplinkThermalGogglesNukie
+ name: uplink-thermal-vision-name
+ description: uplink-thermal-vision-desc
+ productEntity: ClothingEyesThermalVisionGogglesNukie
+ discountCategory: rareDiscounts
+ discountDownTo:
+ Telecrystal: 1
+ cost:
+ Telecrystal: 3
+ categories:
+ - UplinkWearables
+ conditions:
+ - !type:StoreWhitelistCondition
+ whitelist:
+ tags:
+ - NukeOpsUplink
+
# Tools
- type: listing
diff --git a/Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml b/Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml
index f50b0dbca54..59817932c79 100644
--- a/Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml
+++ b/Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml
@@ -232,6 +232,7 @@
- type: Clothing
sprite: Clothing/Eyes/Glasses/ninjavisor.rsi
- type: FlashImmunity
+ - type: NightVision
- type: entity #Fake goggles, the latest in anti-valid hunting technology
parent: ClothingEyesBase
diff --git a/Resources/Prototypes/Entities/Clothing/Eyes/goggles.yml b/Resources/Prototypes/Entities/Clothing/Eyes/goggles.yml
new file mode 100644
index 00000000000..4348c87227d
--- /dev/null
+++ b/Resources/Prototypes/Entities/Clothing/Eyes/goggles.yml
@@ -0,0 +1,114 @@
+# Night Vision Goggles
+
+- type: entity
+ parent: ClothingEyesBase
+ id: ClothingEyesNightVisionGoggles
+ name: night vision goggles
+ description: An advanced heads-up display which provides id data and vision in complete darkness.
+ components:
+ - type: Sprite
+ sprite: Clothing/Eyes/Goggles/nightvision.rsi
+ - type: Clothing
+ sprite: Clothing/Eyes/Goggles/nightvision.rsi
+ - type: NightVision
+ - type: IdentityBlocker
+ coverage: EYES
+
+- type: entity
+ parent: [ClothingEyesNightVisionGoggles, ShowSecurityIcons]
+ id: ClothingEyesNightVisionSecurityGoggles
+ name: night vision security goggles
+ components:
+ - type: Sprite
+ sprite: Clothing/Eyes/Goggles/security_nightvision.rsi
+ - type: Clothing
+ sprite: Clothing/Eyes/Goggles/security_nightvision.rsi
+
+- type: entity
+ parent: [ClothingEyesNightVisionGoggles, ClothingEyesHudMedical]
+ id: ClothingEyesNightVisionMedicalGoggles
+ name: night vision medical goggles
+ components:
+ - type: Sprite
+ sprite: Clothing/Eyes/Goggles/medical_nightvision.rsi
+ - type: Clothing
+ sprite: Clothing/Eyes/Goggles/medical_nightvision.rsi
+
+- type: entity
+ parent: [ClothingEyesNightVisionGoggles, ClothingEyesHudDiagnostic]
+ id: ClothingEyesNightVisionDiagnosticGoggles
+ name: night vision diagnostic goggles
+ components:
+ - type: Sprite
+ sprite: Clothing/Eyes/Goggles/diagnostic_nightvision.rsi
+ - type: Clothing
+ sprite: Clothing/Eyes/Goggles/diagnostic_nightvision.rsi
+
+- type: entity
+ parent: ClothingEyesNightVisionGoggles
+ id: ClothingEyesNightVisionGogglesSyndie
+ suffix: "Chameleon"
+ components:
+ - type: ChameleonClothing
+ slot: [eyes]
+ default: ClothingEyesNightVisionGoggles
+ - type: UserInterface
+ interfaces:
+ enum.ChameleonUiKey.Key:
+ type: ChameleonBoundUserInterface
+
+- type: entity
+ parent: [ClothingEyesNightVisionGogglesSyndie, ShowSecurityIcons]
+ id: ClothingEyesNightVisionGogglesNukie
+ suffix: "Chameleon, NukeOps"
+ components:
+ - type: ShowSyndicateIcons
+
+# Thermal Vision Goggles
+
+- type: entity
+ parent: ClothingEyesBase
+ id: ClothingEyesThermalVisionGoggles
+ name: thermal vision goggles
+ description: Thermals in the shape of glasses.
+ components:
+ - type: Sprite
+ sprite: Clothing/Eyes/Goggles/thermal.rsi
+ - type: Clothing
+ sprite: Clothing/Eyes/Goggles/thermal.rsi
+ - type: ThermalVision
+ pulseTime: 2
+ toggleAction: PulseThermalVision
+ - type: IdentityBlocker
+ coverage: EYES
+
+- type: entity
+ parent: ClothingEyesThermalVisionGoggles
+ id: ClothingEyesThermalVisionMonocle
+ name: thermonocle
+ description: Never before has seeing through walls felt so gentlepersonly.
+ components:
+ - type: Sprite
+ sprite: Clothing/Eyes/Goggles/monocle_thermal.rsi
+ - type: Clothing
+ sprite: Clothing/Eyes/Goggles/monocle_thermal.rsi
+
+- type: entity
+ parent: ClothingEyesThermalVisionGoggles
+ id: ClothingEyesThermalVisionGogglesSyndie
+ suffix: "Chameleon"
+ components:
+ - type: ChameleonClothing
+ slot: [eyes]
+ default: ClothingEyesThermalVisionGoggles
+ - type: UserInterface
+ interfaces:
+ enum.ChameleonUiKey.Key:
+ type: ChameleonBoundUserInterface
+
+- type: entity
+ parent: [ClothingEyesThermalVisionGogglesSyndie, ShowSecurityIcons]
+ id: ClothingEyesThermalVisionGogglesNukie
+ suffix: "Chameleon, NukeOps"
+ components:
+ - type: ShowSyndicateIcons
diff --git a/Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml b/Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml
index caccdd8745e..04f796591f8 100644
--- a/Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml
+++ b/Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml
@@ -744,6 +744,9 @@
Heat: 0.80
Radiation: 0.80
Caustic: 0.95
+ - type: ThermalVision
+ color: "#98EEFB"
+ lightRadius: 15
#MISC. HARDSUITS
#Clown Hardsuit
diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml
index b8ff03abcad..ada65ad33f5 100644
--- a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml
+++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml
@@ -126,6 +126,7 @@
cell_slot:
name: power-cell-slot-component-slot-name-default
- type: Body
+ thermalVisibility: false
- type: StatusEffects
allowed:
- Stun
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
index f1932e3ece2..faa7fbc22bf 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
@@ -70,6 +70,12 @@
barkType: mouse
minTime: 10 # Mice like to squeak, I think. You can always put your pet mouse to sleep if it gets annoying
maxTime: 160
+ - type: NightVision
+ isActive: true
+ toggleAction: null
+ color: "#808080"
+ activateSound: null
+ deactivateSound: null
- type: entity
name: bee
@@ -1792,6 +1798,12 @@
Taco: RatTaco
Burger: RatBurger
Skewer: RatSkewer
+ - type: NightVision
+ isActive: true
+ toggleAction: null
+ color: "#808080"
+ activateSound: null
+ deactivateSound: null
- type: entity
parent: MobMouse
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml b/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml
index d241173f2e6..356615d2e98 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml
@@ -88,6 +88,12 @@
interfaces:
enum.SurgeryUIKey.Key:
type: SurgeryBui
+ - type: NightVision
+ isActive: true
+ toggleAction: null
+ color: "#808080"
+ activateSound: null
+ deactivateSound: null
- type: entity
parent: BaseMobCarp
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml b/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml
index abe602037f4..9e4f72bb0c5 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml
@@ -132,6 +132,12 @@
interfaces:
enum.SurgeryUIKey.Key:
type: SurgeryBui
+ - type: NightVision
+ isActive: true
+ toggleAction: null
+ color: "#808080"
+ activateSound: null
+ deactivateSound: null
- type: entity
id: MobRatKingBuff
@@ -317,6 +323,12 @@
- type: FireVisuals
sprite: Mobs/Effects/onfire.rsi
normalState: Mouse_burning
+ - type: NightVision
+ isActive: true
+ toggleAction: null
+ color: "#808080"
+ activateSound: null
+ deactivateSound: null
- type: weightedRandomEntity
id: RatKingLoot
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml
index 7358d072360..db8287e13e2 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml
@@ -140,6 +140,12 @@
- Xeno
understands:
- Xeno
+ - type: ThermalVision
+ isActive: true
+ lightRadius: 15
+ color: "#808080"
+ activateSound: null
+ deactivateSound: null
- type: entity
name: Praetorian
diff --git a/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml b/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml
index c91b209e8c3..a0a0d1ed2eb 100644
--- a/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml
+++ b/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml
@@ -35,6 +35,7 @@
bodyType: Kinematic
- type: Body
prototype: Aghost
+ thermalVisibility: false
- type: Access
groups:
- AllAccess
diff --git a/Resources/Prototypes/Entities/Mobs/Player/dragon.yml b/Resources/Prototypes/Entities/Mobs/Player/dragon.yml
index 0f24313712a..4c03c6c688b 100644
--- a/Resources/Prototypes/Entities/Mobs/Player/dragon.yml
+++ b/Resources/Prototypes/Entities/Mobs/Player/dragon.yml
@@ -140,6 +140,11 @@
tags:
- CannotSuicide
- DoorBumpOpener
+ - type: NightVision
+ isActive: true
+ color: "#808080"
+ activateSound: null
+ deactivateSound: null
- type: entity
parent: BaseMobDragon
diff --git a/Resources/Prototypes/Entities/Mobs/Player/silicon_base.yml b/Resources/Prototypes/Entities/Mobs/Player/silicon_base.yml
index 7c65b89a762..b8de17a55fb 100644
--- a/Resources/Prototypes/Entities/Mobs/Player/silicon_base.yml
+++ b/Resources/Prototypes/Entities/Mobs/Player/silicon_base.yml
@@ -233,6 +233,7 @@
- type: Body
prototype: IPC
requiredLegs: 2
+ thermalVisibility: false
- type: Ensnareable
sprite: Objects/Misc/ensnare.rsi
- type: Speech
diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml
index 850b2c0d74f..366a4b2166c 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml
@@ -16,7 +16,7 @@
mask:
- MachineMask
layer:
- - MachineLayer
+ - MachineLayer
- type: Lathe
- type: MaterialStorage
- type: Destructible
@@ -109,118 +109,118 @@
- type: MaterialStorage
whitelist:
tags:
- - Sheet
- - RawMaterial
- - Ingot
+ - Sheet
+ - RawMaterial
+ - Ingot
- type: Lathe
idleState: icon
runningState: building
staticRecipes:
- - Wirecutter
- - Igniter
- - Signaller
- - Screwdriver
- - Welder
- - Wrench
- - Crowbar
- - Multitool
- - NetworkConfigurator
- - SprayPainter
- - FlashlightLantern
- - CableStack
- - CableMVStack
- - CableHVStack
- - HandheldGPSBasic
- - TRayScanner
- - AirTank
- - GasAnalyzer
- - UtilityBelt
- - Fulton
- - FultonBeacon
- - Pickaxe
- - ModularReceiver
- - AppraisalTool
- - SheetRGlass
- - Beaker
- - Syringe
- - HandLabeler
- - LightTube
- - LedLightTube
- - SodiumLightTube
- - ExteriorLightTube
- - LightBulb
- - LedLightBulb
- - Bucket
- - DrinkMug
- - DrinkMugMetal
- - DrinkGlass
- - DrinkShotGlass
- - DrinkGlassCoupeShaped
- - CustomDrinkJug
- - FoodPlate
- - FoodPlateSmall
- - FoodPlatePlastic
- - FoodPlateSmallPlastic
- - FoodBowlBig
- - FoodPlateTin
- - FoodKebabSkewer
- - SprayBottle
- - MopItem
- - Holoprojector
- - Mousetrap
- - LightReplacer
- - TrashBag
- - PowerCellSmall
- - PowerCellMedium
- - RollerBedSpawnFolded
- - CheapRollerBedSpawnFolded
- - EmergencyRollerBedSpawnFolded
- - MicroManipulatorStockPart
- - MatterBinStockPart
- - CapacitorStockPart
- - ConveyorBeltAssembly
- - IntercomElectronics
- - FirelockElectronics
- - DoorElectronics
- - AirAlarmElectronics
- - StationMapElectronics
- - FireAlarmElectronics
- - MailingUnitElectronics
- - SignalTimerElectronics
- - APCElectronics
- - SMESMachineCircuitboard
- - SubstationMachineCircuitboard
- - WallmountSubstationElectronics
- - CellRechargerCircuitboard
- - BorgChargerCircuitboard
- - WeaponCapacitorRechargerCircuitboard
- - HandheldStationMap
- - ClothingHeadHatWelding
+ - Wirecutter
+ - Igniter
+ - Signaller
+ - Screwdriver
+ - Welder
+ - Wrench
+ - Crowbar
+ - Multitool
+ - NetworkConfigurator
+ - SprayPainter
+ - FlashlightLantern
+ - CableStack
+ - CableMVStack
+ - CableHVStack
+ - HandheldGPSBasic
+ - TRayScanner
+ - AirTank
+ - GasAnalyzer
+ - UtilityBelt
+ - Fulton
+ - FultonBeacon
+ - Pickaxe
+ - ModularReceiver
+ - AppraisalTool
+ - SheetRGlass
+ - Beaker
+ - Syringe
+ - HandLabeler
+ - LightTube
+ - LedLightTube
+ - SodiumLightTube
+ - ExteriorLightTube
+ - LightBulb
+ - LedLightBulb
+ - Bucket
+ - DrinkMug
+ - DrinkMugMetal
+ - DrinkGlass
+ - DrinkShotGlass
+ - DrinkGlassCoupeShaped
+ - CustomDrinkJug
+ - FoodPlate
+ - FoodPlateSmall
+ - FoodPlatePlastic
+ - FoodPlateSmallPlastic
+ - FoodBowlBig
+ - FoodPlateTin
+ - FoodKebabSkewer
+ - SprayBottle
+ - MopItem
+ - Holoprojector
+ - Mousetrap
+ - LightReplacer
+ - TrashBag
+ - PowerCellSmall
+ - PowerCellMedium
+ - RollerBedSpawnFolded
+ - CheapRollerBedSpawnFolded
+ - EmergencyRollerBedSpawnFolded
+ - MicroManipulatorStockPart
+ - MatterBinStockPart
+ - CapacitorStockPart
+ - ConveyorBeltAssembly
+ - IntercomElectronics
+ - FirelockElectronics
+ - DoorElectronics
+ - AirAlarmElectronics
+ - StationMapElectronics
+ - FireAlarmElectronics
+ - MailingUnitElectronics
+ - SignalTimerElectronics
+ - APCElectronics
+ - SMESMachineCircuitboard
+ - SubstationMachineCircuitboard
+ - WallmountSubstationElectronics
+ - CellRechargerCircuitboard
+ - BorgChargerCircuitboard
+ - WeaponCapacitorRechargerCircuitboard
+ - HandheldStationMap
+ - ClothingHeadHatWelding
- type: EmagLatheRecipes
emagStaticRecipes:
- - BoxLethalshot
- - BoxShotgunFlare
- - BoxShotgunSlug
- - MagazineBoxLightRifle
- - MagazineBoxMagnum
- - MagazineBoxPistol
- - MagazineBoxRifle
- - MagazineLightRifle
- - MagazineLightRifleEmpty
- - MagazinePistol
- - MagazinePistolEmpty
- - MagazinePistolSubMachineGun
- - MagazinePistolSubMachineGunEmpty
- - MagazinePistolSubMachineGunTopMounted
- - MagazinePistolSubMachineGunTopMountedEmpty
- - MagazineRifle
- - MagazineRifleEmpty
- - MagazineShotgun
- - MagazineShotgunEmpty
- - MagazineShotgunSlug
- - RiotShield
- - SpeedLoaderMagnum
- - SpeedLoaderMagnumEmpty
+ - BoxLethalshot
+ - BoxShotgunFlare
+ - BoxShotgunSlug
+ - MagazineBoxLightRifle
+ - MagazineBoxMagnum
+ - MagazineBoxPistol
+ - MagazineBoxRifle
+ - MagazineLightRifle
+ - MagazineLightRifleEmpty
+ - MagazinePistol
+ - MagazinePistolEmpty
+ - MagazinePistolSubMachineGun
+ - MagazinePistolSubMachineGunEmpty
+ - MagazinePistolSubMachineGunTopMounted
+ - MagazinePistolSubMachineGunTopMountedEmpty
+ - MagazineRifle
+ - MagazineRifleEmpty
+ - MagazineShotgun
+ - MagazineShotgunEmpty
+ - MagazineShotgunSlug
+ - RiotShield
+ - SpeedLoaderMagnum
+ - SpeedLoaderMagnumEmpty
- type: entity
id: AutolatheHyperConvection
@@ -257,9 +257,9 @@
- type: MaterialStorage
whitelist:
tags:
- - Sheet
- - RawMaterial
- - Ingot
+ - Sheet
+ - RawMaterial
+ - Ingot
- type: Lathe
idleState: icon
runningState: building
@@ -268,150 +268,153 @@
- Dropper
- ClothingEyesGlassesChemical
dynamicRecipes:
- - PowerDrill
- - MiningDrill
- - MiningDrillDiamond
- - AnomalyScanner
- - AnomalyLocator
- - AnomalyLocatorWide
- - HandheldCrewMonitor
- - Scalpel
- - Retractor
- - Cautery
- - Drill
- - WeaponParticleDecelerator
- - HoloprojectorField
- - Saw
- - Hemostat
- - CryostasisBeaker
- - SyringeCryostasis
- - Syringe
- - Implanter
- - PillCanister
- - ChemistryEmptyBottle01
- - AdvancedCapacitorStockPart
- - AdvancedMatterBinStockPart
- - NanoManipulatorStockPart
- - SuperCapacitorStockPart
- - SuperMatterBinStockPart
- - PicoManipulatorStockPart
- - BluespaceCapacitorStockPart
- - BluespaceManipulatorStockPart
- - BluespaceMatterBinStockPart
- - AdvMopItem
- - WeaponSprayNozzle
- - ClothingBackpackWaterTank
- - MegaSprayBottle
- - TimerTrigger
- - ChemicalPayload
- - FlashPayload
- - Signaller
- - SignallerAdvanced
- - SignalTrigger
- - VoiceTrigger
- - Igniter
- - HandHeldMassScanner
- - PowerCellMicroreactor
- - PowerCellHigh
- - WeaponPistolCHIMP
- - ClothingMaskWeldingGas
- - WeaponGauntletGorilla
- - SynthesizerInstrument
- - RPED
- - ClothingShoesBootsMagSci
- - ClothingShoesBootsMoon
- - ClothingShoesBootsSpeed
- - NodeScanner
- - HolofanProjector
- - BluespaceBeaker
- - SyringeBluespace
- - WeaponForceGun
- - WeaponLaserSvalinn
- - WeaponProtoKineticAccelerator
- - WeaponTetherGun
- - WeaponGrapplingGun
- - ClothingBackpackHolding
- - ClothingBackpackSatchelHolding
- - ClothingBackpackDuffelHolding
- - WelderExperimental
- - JawsOfLife
- - CoreSilver # Nyanotrasen - Silver Golem core
- - FauxTileAstroGrass
- - FauxTileMowedAstroGrass
- - FauxTileJungleAstroGrass
- - FauxTileAstroIce
- - FauxTileAstroSnow
- - OreBagOfHolding
- - DeviceQuantumSpinInverter
- - CanilunztTranslator
- - BubblishTranslator
- - NekomimeticTranslator
- - DraconicTranslator
- - SolCommonTranslator
- - RootSpeakTranslator
- - XenoTranslator
- - BasicGalaticCommonTranslatorImplanter
- - AdvancedGalaticCommonTranslatorImplanter
- - BubblishTranslatorImplanter
- - NekomimeticTranslatorImplanter
- - DraconicTranslatorImplanter
- - CanilunztTranslatorImplanter
- - SolCommonTranslatorImplanter
- - RootSpeakTranslatorImplanter
- - AnimalTranslator
- - MofficTranslatorImplanter
- - MofficTranslator
- - RCDAmmo #DeltaV
- - RCD #EE
- # Shitmed Change
- - EnergyScalpel
- - EnergyCautery
- - AdvancedRetractor
+ - PowerDrill
+ - MiningDrill
+ - MiningDrillDiamond
+ - AnomalyScanner
+ - AnomalyLocator
+ - AnomalyLocatorWide
+ - HandheldCrewMonitor
+ - Scalpel
+ - Retractor
+ - Cautery
+ - Drill
+ - WeaponParticleDecelerator
+ - HoloprojectorField
+ - Saw
+ - Hemostat
+ - CryostasisBeaker
+ - SyringeCryostasis
+ - Syringe
+ - Implanter
+ - PillCanister
+ - ChemistryEmptyBottle01
+ - AdvancedCapacitorStockPart
+ - AdvancedMatterBinStockPart
+ - NanoManipulatorStockPart
+ - SuperCapacitorStockPart
+ - SuperMatterBinStockPart
+ - PicoManipulatorStockPart
+ - BluespaceCapacitorStockPart
+ - BluespaceManipulatorStockPart
+ - BluespaceMatterBinStockPart
+ - AdvMopItem
+ - WeaponSprayNozzle
+ - ClothingBackpackWaterTank
+ - MegaSprayBottle
+ - TimerTrigger
+ - ChemicalPayload
+ - FlashPayload
+ - Signaller
+ - SignallerAdvanced
+ - SignalTrigger
+ - VoiceTrigger
+ - Igniter
+ - HandHeldMassScanner
+ - PowerCellMicroreactor
+ - PowerCellHigh
+ - WeaponPistolCHIMP
+ - ClothingMaskWeldingGas
+ - WeaponGauntletGorilla
+ - SynthesizerInstrument
+ - RPED
+ - ClothingShoesBootsMagSci
+ - ClothingShoesBootsMoon
+ - ClothingShoesBootsSpeed
+ - NodeScanner
+ - HolofanProjector
+ - BluespaceBeaker
+ - SyringeBluespace
+ - WeaponForceGun
+ - WeaponLaserSvalinn
+ - WeaponProtoKineticAccelerator
+ - WeaponTetherGun
+ - WeaponGrapplingGun
+ - ClothingBackpackHolding
+ - ClothingBackpackSatchelHolding
+ - ClothingBackpackDuffelHolding
+ - WelderExperimental
+ - JawsOfLife
+ - CoreSilver # Nyanotrasen - Silver Golem core
+ - FauxTileAstroGrass
+ - FauxTileMowedAstroGrass
+ - FauxTileJungleAstroGrass
+ - FauxTileAstroIce
+ - FauxTileAstroSnow
+ - OreBagOfHolding
+ - DeviceQuantumSpinInverter
+ - CanilunztTranslator
+ - BubblishTranslator
+ - NekomimeticTranslator
+ - DraconicTranslator
+ - SolCommonTranslator
+ - RootSpeakTranslator
+ - XenoTranslator
+ - BasicGalaticCommonTranslatorImplanter
+ - AdvancedGalaticCommonTranslatorImplanter
+ - BubblishTranslatorImplanter
+ - NekomimeticTranslatorImplanter
+ - DraconicTranslatorImplanter
+ - CanilunztTranslatorImplanter
+ - SolCommonTranslatorImplanter
+ - RootSpeakTranslatorImplanter
+ - AnimalTranslator
+ - MofficTranslatorImplanter
+ - MofficTranslator
+ - ClothingEyesNightVisionGoggles
+ - ClothingEyesNightVisionDiagnosticGoggles
+ - ClothingEyesThermalVisionGoggles
+ - RCDAmmo #DeltaV
+ - RCD #EE
+ # Shitmed Change
+ - EnergyScalpel
+ - EnergyCautery
+ - AdvancedRetractor
- type: EmagLatheRecipes
emagDynamicRecipes:
- - BoxBeanbag
- - BoxShotgunIncendiary
- - BoxShotgunUranium
- - ExplosivePayload
- - GrenadeBlast
- - GrenadeEMP
- - GrenadeFlash
- - HoloprojectorSecurity
- - MagazineBoxLightRifleIncendiary
- - MagazineBoxLightRifleUranium
- - MagazineBoxMagnumIncendiary
- - MagazineBoxMagnumUranium
- - MagazineBoxPistolIncendiary
- - MagazineBoxPistolUranium
- - MagazineBoxRifleIncendiary
- - MagazineBoxRifleUranium
- - MagazineGrenadeEmpty
- - MagazineLightRifleIncendiary
- - MagazineLightRifleUranium
- - MagazinePistolIncendiary
- - MagazinePistolUranium
- - MagazineRifleIncendiary
- - MagazineRifleUranium
- - MagazineShotgunBeanbag
- - MagazineShotgunIncendiary
- - MagazineShotgunIncendiary
- - PortableRecharger
- - PowerCageHigh
- - PowerCageMedium
- - PowerCageSmall
- - ShellTranquilizer
- - SpeedLoaderMagnumIncendiary
- - SpeedLoaderMagnumUranium
- - TelescopicShield
- - Truncheon
- - WeaponAdvancedLaser
- - WeaponLaserCannon
- - WeaponLaserCarbine
- - WeaponXrayCannon
- - WeaponEnergyGun # DeltaV - Energy Gun
- - WeaponEnergyGunMini # DeltaV - Miniature Energy Gun
- - WeaponEnergyGunPistol # DeltaV - PDW-9 Energy Pistol
- - WeaponGunLaserCarbineAutomatic # DeltaV - IK-60 Laser Carbine
+ - BoxBeanbag
+ - BoxShotgunIncendiary
+ - BoxShotgunUranium
+ - ExplosivePayload
+ - GrenadeBlast
+ - GrenadeEMP
+ - GrenadeFlash
+ - HoloprojectorSecurity
+ - MagazineBoxLightRifleIncendiary
+ - MagazineBoxLightRifleUranium
+ - MagazineBoxMagnumIncendiary
+ - MagazineBoxMagnumUranium
+ - MagazineBoxPistolIncendiary
+ - MagazineBoxPistolUranium
+ - MagazineBoxRifleIncendiary
+ - MagazineBoxRifleUranium
+ - MagazineGrenadeEmpty
+ - MagazineLightRifleIncendiary
+ - MagazineLightRifleUranium
+ - MagazinePistolIncendiary
+ - MagazinePistolUranium
+ - MagazineRifleIncendiary
+ - MagazineRifleUranium
+ - MagazineShotgunBeanbag
+ - MagazineShotgunIncendiary
+ - MagazineShotgunIncendiary
+ - PortableRecharger
+ - PowerCageHigh
+ - PowerCageMedium
+ - PowerCageSmall
+ - ShellTranquilizer
+ - SpeedLoaderMagnumIncendiary
+ - SpeedLoaderMagnumUranium
+ - TelescopicShield
+ - Truncheon
+ - WeaponAdvancedLaser
+ - WeaponLaserCannon
+ - WeaponLaserCarbine
+ - WeaponXrayCannon
+ - WeaponEnergyGun # DeltaV - Energy Gun
+ - WeaponEnergyGunMini # DeltaV - Miniature Energy Gun
+ - WeaponEnergyGunPistol # DeltaV - PDW-9 Energy Pistol
+ - WeaponGunLaserCarbineAutomatic # DeltaV - IK-60 Laser Carbine
- type: entity
id: ProtolatheHyperConvection
@@ -471,102 +474,102 @@
- SpaceHeaterMachineCircuitBoard
- StationAnchorCircuitboard
dynamicRecipes:
- - ThermomachineFreezerMachineCircuitBoard
- - HellfireFreezerMachineCircuitBoard
- - PortableScrubberMachineCircuitBoard
- - CloningPodMachineCircuitboard
- - MedicalScannerMachineCircuitboard
- - CryoPodMachineCircuitboard
- - VaccinatorMachineCircuitboard
- - DiagnoserMachineCircuitboard
- - BiomassReclaimerMachineCircuitboard
- - BiofabricatorMachineCircuitboard
- - SurveillanceCameraRouterCircuitboard
- - SurveillanceCameraMonitorCircuitboard
- - SurveillanceWirelessCameraMonitorCircuitboard
- - SurveillanceCameraWirelessRouterCircuitboard
- - ComputerTelevisionCircuitboard
- - JukeboxCircuitBoard
- - SurveillanceWirelessCameraMovableCircuitboard
- - SurveillanceWirelessCameraAnchoredCircuitboard
- - HydroponicsTrayMachineCircuitboard
- - SolarControlComputerCircuitboard
- - SolarTrackerElectronics
- - TurboItemRechargerCircuitboard
- - PowerComputerCircuitboard
- - AlertsComputerCircuitboard
- - AutolatheHyperConvectionMachineCircuitboard
- - ProtolatheHyperConvectionMachineCircuitboard
- - CircuitImprinterHyperConvectionMachineCircuitboard
- - FatExtractorMachineCircuitboard
- - FlatpackerMachineCircuitboard
- - SheetifierMachineCircuitboard
- - ShuttleConsoleCircuitboard
- - RadarConsoleCircuitboard
- - TechDiskComputerCircuitboard
- - DawInstrumentMachineCircuitboard
- - CloningConsoleComputerCircuitboard
- - StasisBedMachineCircuitboard
- - OreProcessorIndustrialMachineCircuitboard
- - CargoTelepadMachineCircuitboard
- - RipleyCentralElectronics
- - RipleyPeripheralsElectronics
- - HonkerCentralElectronics
- - HonkerPeripheralsElectronics
- - HonkerTargetingElectronics
- - HamtrCentralElectronics
- - HamtrPeripheralsElectronics
- - PortableGeneratorPacmanMachineCircuitboard
- - PortableGeneratorSuperPacmanMachineCircuitboard
- - PortableGeneratorJrPacmanMachineCircuitboard
- - WallmountGeneratorElectronics
- - WallmountGeneratorAPUElectronics
- - WallmountSubstationElectronics
- - PowerCageRechargerCircuitboard
- - EmitterCircuitboard
- - ThrusterMachineCircuitboard
- - GyroscopeMachineCircuitboard
- - MiniGravityGeneratorCircuitboard
- - ShuttleGunKineticCircuitboard
- - GasRecyclerMachineCircuitboard
- - SeedExtractorMachineCircuitboard
- - AnalysisComputerCircuitboard
- - ExosuitFabricatorMachineCircuitboard
- - AnomalyVesselCircuitboard
- - AnomalyVesselExperimentalCircuitboard
- - AnomalySynchronizerCircuitboard
- - APECircuitboard
- - ArtifactAnalyzerMachineCircuitboard
- - ArtifactCrusherMachineCircuitboard
- - TelecomServerCircuitboard
- - MassMediaCircuitboard
- - ReagentGrinderIndustrialMachineCircuitboard
- - ReverseEngineeringMachineCircuitboard
- - CrewMonitoringComputerCircuitboard
- - DoorElectronics
- - FireAlarmElectronics
- - FirelockElectronics
- - IntercomElectronics
- - MailingUnitElectronics
- - SalvageMagnetMachineCircuitboard
- - StationMapElectronics
- - MetempsychoticMachineCircuitboard
- - SalvageExpeditionsComputerCircuitboard
- - JukeboxCircuitBoard
- - AutodocCircuitboard # Shitmed Change
- - OperatingTableCircuitboard # Shitmed Change
+ - ThermomachineFreezerMachineCircuitBoard
+ - HellfireFreezerMachineCircuitBoard
+ - PortableScrubberMachineCircuitBoard
+ - CloningPodMachineCircuitboard
+ - MedicalScannerMachineCircuitboard
+ - CryoPodMachineCircuitboard
+ - VaccinatorMachineCircuitboard
+ - DiagnoserMachineCircuitboard
+ - BiomassReclaimerMachineCircuitboard
+ - BiofabricatorMachineCircuitboard
+ - SurveillanceCameraRouterCircuitboard
+ - SurveillanceCameraMonitorCircuitboard
+ - SurveillanceWirelessCameraMonitorCircuitboard
+ - SurveillanceCameraWirelessRouterCircuitboard
+ - ComputerTelevisionCircuitboard
+ - JukeboxCircuitBoard
+ - SurveillanceWirelessCameraMovableCircuitboard
+ - SurveillanceWirelessCameraAnchoredCircuitboard
+ - HydroponicsTrayMachineCircuitboard
+ - SolarControlComputerCircuitboard
+ - SolarTrackerElectronics
+ - TurboItemRechargerCircuitboard
+ - PowerComputerCircuitboard
+ - AlertsComputerCircuitboard
+ - AutolatheHyperConvectionMachineCircuitboard
+ - ProtolatheHyperConvectionMachineCircuitboard
+ - CircuitImprinterHyperConvectionMachineCircuitboard
+ - FatExtractorMachineCircuitboard
+ - FlatpackerMachineCircuitboard
+ - SheetifierMachineCircuitboard
+ - ShuttleConsoleCircuitboard
+ - RadarConsoleCircuitboard
+ - TechDiskComputerCircuitboard
+ - DawInstrumentMachineCircuitboard
+ - CloningConsoleComputerCircuitboard
+ - StasisBedMachineCircuitboard
+ - OreProcessorIndustrialMachineCircuitboard
+ - CargoTelepadMachineCircuitboard
+ - RipleyCentralElectronics
+ - RipleyPeripheralsElectronics
+ - HonkerCentralElectronics
+ - HonkerPeripheralsElectronics
+ - HonkerTargetingElectronics
+ - HamtrCentralElectronics
+ - HamtrPeripheralsElectronics
+ - PortableGeneratorPacmanMachineCircuitboard
+ - PortableGeneratorSuperPacmanMachineCircuitboard
+ - PortableGeneratorJrPacmanMachineCircuitboard
+ - WallmountGeneratorElectronics
+ - WallmountGeneratorAPUElectronics
+ - WallmountSubstationElectronics
+ - PowerCageRechargerCircuitboard
+ - EmitterCircuitboard
+ - ThrusterMachineCircuitboard
+ - GyroscopeMachineCircuitboard
+ - MiniGravityGeneratorCircuitboard
+ - ShuttleGunKineticCircuitboard
+ - GasRecyclerMachineCircuitboard
+ - SeedExtractorMachineCircuitboard
+ - AnalysisComputerCircuitboard
+ - ExosuitFabricatorMachineCircuitboard
+ - AnomalyVesselCircuitboard
+ - AnomalyVesselExperimentalCircuitboard
+ - AnomalySynchronizerCircuitboard
+ - APECircuitboard
+ - ArtifactAnalyzerMachineCircuitboard
+ - ArtifactCrusherMachineCircuitboard
+ - TelecomServerCircuitboard
+ - MassMediaCircuitboard
+ - ReagentGrinderIndustrialMachineCircuitboard
+ - ReverseEngineeringMachineCircuitboard
+ - CrewMonitoringComputerCircuitboard
+ - DoorElectronics
+ - FireAlarmElectronics
+ - FirelockElectronics
+ - IntercomElectronics
+ - MailingUnitElectronics
+ - SalvageMagnetMachineCircuitboard
+ - StationMapElectronics
+ - MetempsychoticMachineCircuitboard
+ - SalvageExpeditionsComputerCircuitboard
+ - JukeboxCircuitBoard
+ - AutodocCircuitboard # Shitmed Change
+ - OperatingTableCircuitboard # Shitmed Change
- type: EmagLatheRecipes
emagDynamicRecipes:
- - ShuttleGunDusterCircuitboard
- - ShuttleGunFriendshipCircuitboard
- - ShuttleGunPerforatorCircuitboard
- - ShuttleGunSvalinnMachineGunCircuitboard
+ - ShuttleGunDusterCircuitboard
+ - ShuttleGunFriendshipCircuitboard
+ - ShuttleGunPerforatorCircuitboard
+ - ShuttleGunSvalinnMachineGunCircuitboard
- type: MaterialStorage
whitelist:
tags:
- - Sheet
- - RawMaterial
- - Ingot
+ - Sheet
+ - RawMaterial
+ - Ingot
- type: RequireProjectileTarget
- type: entity
@@ -694,7 +697,7 @@
- HamtrLLeg
- HamtrRLeg
- VimHarness
- # Begin Nyano additions
+ # Begin Nyano additions
- JetpackBlue
- JetpackMini
# End Nyano additions
@@ -732,8 +735,8 @@
- type: MaterialStorage
whitelist:
tags:
- - Sheet
- - RawMaterial
+ - Sheet
+ - RawMaterial
- type: Lathe
idleState: icon
runningState: building
@@ -910,6 +913,7 @@
- WeaponDisablerSMG
- WeaponLaserCannon
- WeaponLaserCarbine
+ - ClothingEyesNightVisionSecurityGoggles
- ClothingHeadHelmetInsulated # Nyanotrasen - Insulative headgear
- ClothingHeadCage # Nyanotrasen - Insulative headgear
- ShockCollar # Nyanotrasen - Shock Collar
@@ -932,9 +936,9 @@
- type: MaterialStorage
whitelist:
tags:
- - Sheet
- - RawMaterial
- - Ingot
+ - Sheet
+ - RawMaterial
+ - Ingot
- type: entity
id: AmmoTechFab
@@ -942,52 +946,52 @@
name: ammo techfab
description: Prints the bare minimum of bullets that any budget military or armory could need. Nothing fancy.
components:
- - type: Sprite
- sprite: Structures/Machines/techfab.rsi
- layers:
- - state: icon
- map: ["enum.LatheVisualLayers.IsRunning"]
- - state: ammo
- - state: unlit
- shader: unshaded
- map: ["enum.PowerDeviceVisualLayers.Powered"]
- - state: inserting
- map: ["enum.MaterialStorageVisualLayers.Inserting"]
- - state: panel
- map: ["enum.WiresVisualLayers.MaintenancePanel"]
- - type: Machine
- board: AmmoTechFabCircuitboard
- - type: Lathe
- idleState: icon
- runningState: icon
- staticRecipes:
- - BoxLethalshot
- - BoxShotgunFlare
- - BoxShotgunSlug
- - MagazineBoxLightRifle
- - MagazineBoxMagnum
- - MagazineBoxPistol
- - MagazineBoxRifle
- - MagazineLightRifle
- - MagazineLightRifleEmpty
- - MagazinePistol
- - MagazinePistolEmpty
- - MagazineRifle
- - MagazineRifleEmpty
- - MagazineShotgun
- - MagazineShotgunEmpty
- - MagazineShotgunSlug
- - ShellTranquilizer
- - SpeedLoaderMagnum
- - SpeedLoaderMagnumEmpty
- - CartridgeSpecial
- - MagazineBoxSpecial
- - type: MaterialStorage
- whitelist:
- tags:
- - Sheet
- - RawMaterial
- - Ingot
+ - type: Sprite
+ sprite: Structures/Machines/techfab.rsi
+ layers:
+ - state: icon
+ map: ["enum.LatheVisualLayers.IsRunning"]
+ - state: ammo
+ - state: unlit
+ shader: unshaded
+ map: ["enum.PowerDeviceVisualLayers.Powered"]
+ - state: inserting
+ map: ["enum.MaterialStorageVisualLayers.Inserting"]
+ - state: panel
+ map: ["enum.WiresVisualLayers.MaintenancePanel"]
+ - type: Machine
+ board: AmmoTechFabCircuitboard
+ - type: Lathe
+ idleState: icon
+ runningState: icon
+ staticRecipes:
+ - BoxLethalshot
+ - BoxShotgunFlare
+ - BoxShotgunSlug
+ - MagazineBoxLightRifle
+ - MagazineBoxMagnum
+ - MagazineBoxPistol
+ - MagazineBoxRifle
+ - MagazineLightRifle
+ - MagazineLightRifleEmpty
+ - MagazinePistol
+ - MagazinePistolEmpty
+ - MagazineRifle
+ - MagazineRifleEmpty
+ - MagazineShotgun
+ - MagazineShotgunEmpty
+ - MagazineShotgunSlug
+ - ShellTranquilizer
+ - SpeedLoaderMagnum
+ - SpeedLoaderMagnumEmpty
+ - CartridgeSpecial
+ - MagazineBoxSpecial
+ - type: MaterialStorage
+ whitelist:
+ tags:
+ - Sheet
+ - RawMaterial
+ - Ingot
- type: entity
id: MedicalTechFab
@@ -1012,58 +1016,59 @@
idleState: icon
runningState: icon
staticRecipes:
- - Brutepack
- - Ointment
- - Gauze
- - HandLabeler
- - Defibrillator
- - HandheldHealthAnalyzer
- - ClothingHandsGlovesLatex
- - ClothingHandsGlovesNitrile
- - ClothingMaskSterile
- - DiseaseSwab
- - Beaker
- - LargeBeaker
- - Dropper
- - Jug
- - Syringe
- - Implanter
- - PillCanister
- - BodyBag
- - ChemistryEmptyBottle01
- - RollerBedSpawnFolded
- - CheapRollerBedSpawnFolded
- - EmergencyRollerBedSpawnFolded
- - Medkit
- - MedkitBurn
- - MedkitToxin
- - MedkitO2
- - MedkitBrute
- - MedkitAdvanced
- - MedkitRadiation
- - MedkitCombat
- - Scalpel
- - Retractor
- - Cautery
- - Drill
- - Saw
- - Hemostat
- - ClothingEyesGlassesChemical
- - BoneGel # Shitmed Change
+ - Brutepack
+ - Ointment
+ - Gauze
+ - HandLabeler
+ - Defibrillator
+ - HandheldHealthAnalyzer
+ - ClothingHandsGlovesLatex
+ - ClothingHandsGlovesNitrile
+ - ClothingMaskSterile
+ - DiseaseSwab
+ - Beaker
+ - LargeBeaker
+ - Dropper
+ - Jug
+ - Syringe
+ - Implanter
+ - PillCanister
+ - BodyBag
+ - ChemistryEmptyBottle01
+ - RollerBedSpawnFolded
+ - CheapRollerBedSpawnFolded
+ - EmergencyRollerBedSpawnFolded
+ - Medkit
+ - MedkitBurn
+ - MedkitToxin
+ - MedkitO2
+ - MedkitBrute
+ - MedkitAdvanced
+ - MedkitRadiation
+ - MedkitCombat
+ - Scalpel
+ - Retractor
+ - Cautery
+ - Drill
+ - Saw
+ - Hemostat
+ - ClothingEyesGlassesChemical
+ - BoneGel # Shitmed Change
dynamicRecipes:
- - ChemicalPayload
- - CryostasisBeaker
- - BluespaceBeaker
- - SyringeBluespace
- - ClothingEyesHudMedical # Nyano
- - ChemicalPayload # Nyano
- - SyringeCryostasis
- # Shitmed Change
- - EnergyScalpel
- - EnergyCautery
- - AdvancedRetractor
- - OmnimedTool
- - MedicalCyberneticEyes
+ - ChemicalPayload
+ - CryostasisBeaker
+ - BluespaceBeaker
+ - SyringeBluespace
+ - ClothingEyesHudMedical # Nyano
+ - ChemicalPayload # Nyano
+ - SyringeCryostasis
+ - ClothingEyesNightVisionMedicalGoggles
+ # Shitmed Change
+ - EnergyScalpel
+ - EnergyCautery
+ - AdvancedRetractor
+ - OmnimedTool
+ - MedicalCyberneticEyes
- type: Machine
board: MedicalTechFabCircuitboard
- type: StealTarget
@@ -1090,209 +1095,209 @@
idleState: icon
runningState: building
staticRecipes:
- - ClothingUniformJumpsuitColorGrey
- - ClothingUniformJumpskirtColorGrey
- - ClothingUniformJumpsuitBartender
- - ClothingUniformJumpskirtBartender
- - ClothingHeadHatCapcap
- - ClothingHeadHatCaptain
- - ClothingUniformJumpsuitCaptain
- - ClothingUniformJumpskirtCaptain
- - ClothingUniformJumpsuitCapFormal
- - ClothingUniformJumpskirtCapFormalDress
- - ClothingUniformJumpsuitCargo
- - ClothingUniformJumpskirtCargo
- - ClothingUniformJumpsuitSalvageSpecialist
- - ClothingHeadHatBeretEngineering
- - ClothingUniformJumpsuitChiefEngineer
- - ClothingUniformJumpskirtChiefEngineer
- - ClothingUniformJumpsuitChiefEngineerTurtle
- - ClothingUniformJumpskirtChiefEngineerTurtle
- - ClothingUniformJumpsuitChaplain
- - ClothingUniformJumpskirtChaplain
- - ClothingUniformJumpsuitChef
- - ClothingUniformJumpskirtChef
- - ClothingUniformJumpsuitChemistry
- - ClothingUniformJumpskirtChemistry
- - ClothingUniformJumpsuitClown
- - ClothingHeadHatBeretCmo
- - ClothingUniformJumpsuitCMO
- - ClothingUniformJumpskirtCMO
- - ClothingUniformJumpsuitCMOTurtle
- - ClothingUniformJumpskirtCMOTurtle
- - ClothingUniformJumpsuitDetective
- - ClothingUniformJumpskirtDetective
- - ClothingUniformJumpsuitEngineering
- - ClothingUniformJumpskirtEngineering
- - ClothingUniformJumpsuitSeniorEngineer
- - ClothingUniformJumpskirtSeniorEngineer
- - ClothingHeadHatHopcap
- - ClothingUniformJumpsuitHoP
- - ClothingUniformJumpskirtHoP
- - ClothingHeadHatBeretHoS
- - ClothingHeadHatHoshat
- - ClothingUniformJumpsuitHoS
- - ClothingUniformJumpskirtHoS
- - ClothingUniformJumpsuitHoSBlue # DeltaV - alternate sec uniforms
- - ClothingUniformJumpskirtHoSBlue # DeltaV - alternate sec uniforms
- - ClothingUniformJumpsuitHoSGrey # DeltaV - alternate sec uniforms
- - ClothingUniformJumpskirtHoSGrey # DeltaV - alternate sec uniforms
- - ClothingUniformJumpsuitHosFormal
- - ClothingUniformJumpskirtHosFormal
- - ClothingUniformJumpsuitHoSAlt
- - ClothingUniformJumpskirtHoSAlt
- - ClothingUniformJumpsuitHoSBlue
- - ClothingUniformJumpsuitHoSGrey
- - ClothingUniformJumpsuitHoSParadeMale
- - ClothingUniformJumpskirtHoSParadeMale
- - ClothingUniformJumpsuitHydroponics
- - ClothingUniformJumpskirtHydroponics
- - ClothingUniformJumpsuitJanitor
- - ClothingUniformJumpskirtJanitor
- - ClothingUniformJumpsuitLawyerBlack
- - ClothingUniformJumpsuitLibrarian
- - ClothingUniformJumpskirtColorLightBrown
- - ClothingUniformCourier # DeltaV - Courier Uniform
- - ClothingUniformSkirtCourier # DeltaV - Courier Uniform
- - ClothingUniformJumpsuitMantis # Nyanotrasen - Forensic Mantis
- - ClothingUniformSkirtMantis # Nyanotrasen - Forensic Mantis
- - ClothingHeadHatBeretSeniorPhysician
- - ClothingUniformJumpsuitMedicalDoctor
- - ClothingUniformJumpskirtMedicalDoctor
- - ClothingUniformJumpsuitSeniorPhysician
- - ClothingUniformJumpskirtSeniorPhysician
- - ClothingUniformJumpsuitMime
- - ClothingUniformJumpskirtMime
- - ClothingUniformJumpsuitMusician
- - ClothingUniformJumpsuitParamedic
- - ClothingUniformJumpskirtParamedic
- - ClothingUniformJumpsuitSeniorOfficer
- - ClothingUniformJumpskirtSeniorOfficer
- - ClothingUniformJumpsuitPrisoner
- - ClothingUniformJumpskirtPrisoner
- - ClothingHeadHatQMsoft
- - ClothingHeadHatBeretQM
- - ClothingUniformJumpsuitQM
- - ClothingUniformJumpskirtQM
- - ClothingUniformJumpsuitQMTurtleneck
- - ClothingUniformJumpskirtQMTurtleneck
- - ClothingUniformJumpsuitQMFormal
- - ClothingHeadHatBeretRND
- - ClothingUniformJumpsuitResearchDirector
- - ClothingUniformJumpskirtResearchDirector
- - ClothingUniformJumpsuitScientist
- - ClothingUniformJumpskirtScientist
- - ClothingUniformJumpsuitSeniorResearcher
- - ClothingUniformJumpskirtSeniorResearcher
- - ClothingHeadHatBeretSecurity
- - ClothingUniformJumpsuitSec
- - ClothingUniformJumpskirtSec
- - ClothingUniformJumpsuitSecBlue # DeltaV - alternate sec uniforms
- - ClothingUniformJumpskirtSecBlue # DeltaV - alternate sec uniforms
- - ClothingUniformJumpsuitSecGrey # DeltaV - alternate sec uniforms
- - ClothingUniformJumpskirtSecGrey # DeltaV - alternate sec uniforms
- - ClothingHeadHatBeretBrigmedic
- - ClothingUniformJumpsuitBrigmedic
- - ClothingUniformJumpskirtBrigmedic
- - ClothingHeadHatBeretWarden
- - ClothingHeadHatWarden
- - ClothingUniformJumpsuitWarden
- - ClothingUniformJumpskirtWarden
- - ClothingUniformJumpsuitWardenBlue # DeltaV - alternate sec uniforms
- - ClothingUniformJumpskirtWardenBlue # DeltaV - alternate sec uniforms
- - ClothingUniformJumpsuitWardenGrey # DeltaV - alternate sec uniforms
- - ClothingUniformJumpskirtWardenGrey # DeltaV - alternate sec uniforms
- - ClothingHeadHatParamedicsoft
- # Winter outfits
- - ClothingOuterWinterCap
- - ClothingOuterWinterCE
- - ClothingOuterWinterCMO
- - ClothingOuterWinterHoP
- - ClothingOuterWinterHoSUnarmored
- - ClothingOuterWinterWardenUnarmored
- - ClothingOuterWinterQM
- - ClothingOuterWinterRD
- - ClothingNeckMantleCap
- - ClothingNeckMantleCE
- - ClothingNeckMantleCMO
- - ClothingNeckMantleHOP
- - ClothingNeckMantleHOS
- - ClothingNeckMantleRD
- - ClothingNeckMantleQM
- - ClothingOuterStasecSweater # DeltaV - added stasec sweater to uniform printer.
- - ClothingOuterWinterMusician
- - ClothingOuterWinterClown
- - ClothingOuterWinterMime
- - ClothingOuterWinterCoat
- - ClothingOuterWinterJani
- - ClothingOuterWinterBar
- - ClothingOuterWinterChef
- - ClothingOuterWinterHydro
- - ClothingOuterWinterAtmos
- - ClothingOuterWinterEngi
- - ClothingOuterWinterCargo
- - ClothingOuterWinterMiner
- - ClothingOuterWinterMed
- - ClothingOuterWinterPara
- - ClothingOuterWinterChem
- - ClothingOuterWinterGen
- - ClothingOuterWinterViro
- - ClothingOuterWinterSci
- - ClothingOuterWinterRobo
- - ClothingOuterWinterSec
- # Ties
- - ClothingNeckTieRed
- - ClothingNeckTieDet
- - ClothingNeckTieSci
- # Scarfs - All scarfs avaible in winterdrobe
- - ClothingNeckScarfStripedGreen
- - ClothingNeckScarfStripedBlue
- - ClothingNeckScarfStripedRed
- - ClothingNeckScarfStripedBrown
- - ClothingNeckScarfStripedLightBlue
- - ClothingNeckScarfStripedOrange
- - ClothingNeckScarfStripedBlack
- - ClothingNeckScarfStripedPurple
- # Carpets
- - Carpet
- - CarpetBlack
- - CarpetPink
- - CarpetBlue
- - CarpetGreen
- - CarpetOrange
- - CarpetPurple
- - CarpetCyan
- - CarpetWhite
+ - ClothingUniformJumpsuitColorGrey
+ - ClothingUniformJumpskirtColorGrey
+ - ClothingUniformJumpsuitBartender
+ - ClothingUniformJumpskirtBartender
+ - ClothingHeadHatCapcap
+ - ClothingHeadHatCaptain
+ - ClothingUniformJumpsuitCaptain
+ - ClothingUniformJumpskirtCaptain
+ - ClothingUniformJumpsuitCapFormal
+ - ClothingUniformJumpskirtCapFormalDress
+ - ClothingUniformJumpsuitCargo
+ - ClothingUniformJumpskirtCargo
+ - ClothingUniformJumpsuitSalvageSpecialist
+ - ClothingHeadHatBeretEngineering
+ - ClothingUniformJumpsuitChiefEngineer
+ - ClothingUniformJumpskirtChiefEngineer
+ - ClothingUniformJumpsuitChiefEngineerTurtle
+ - ClothingUniformJumpskirtChiefEngineerTurtle
+ - ClothingUniformJumpsuitChaplain
+ - ClothingUniformJumpskirtChaplain
+ - ClothingUniformJumpsuitChef
+ - ClothingUniformJumpskirtChef
+ - ClothingUniformJumpsuitChemistry
+ - ClothingUniformJumpskirtChemistry
+ - ClothingUniformJumpsuitClown
+ - ClothingHeadHatBeretCmo
+ - ClothingUniformJumpsuitCMO
+ - ClothingUniformJumpskirtCMO
+ - ClothingUniformJumpsuitCMOTurtle
+ - ClothingUniformJumpskirtCMOTurtle
+ - ClothingUniformJumpsuitDetective
+ - ClothingUniformJumpskirtDetective
+ - ClothingUniformJumpsuitEngineering
+ - ClothingUniformJumpskirtEngineering
+ - ClothingUniformJumpsuitSeniorEngineer
+ - ClothingUniformJumpskirtSeniorEngineer
+ - ClothingHeadHatHopcap
+ - ClothingUniformJumpsuitHoP
+ - ClothingUniformJumpskirtHoP
+ - ClothingHeadHatBeretHoS
+ - ClothingHeadHatHoshat
+ - ClothingUniformJumpsuitHoS
+ - ClothingUniformJumpskirtHoS
+ - ClothingUniformJumpsuitHoSBlue # DeltaV - alternate sec uniforms
+ - ClothingUniformJumpskirtHoSBlue # DeltaV - alternate sec uniforms
+ - ClothingUniformJumpsuitHoSGrey # DeltaV - alternate sec uniforms
+ - ClothingUniformJumpskirtHoSGrey # DeltaV - alternate sec uniforms
+ - ClothingUniformJumpsuitHosFormal
+ - ClothingUniformJumpskirtHosFormal
+ - ClothingUniformJumpsuitHoSAlt
+ - ClothingUniformJumpskirtHoSAlt
+ - ClothingUniformJumpsuitHoSBlue
+ - ClothingUniformJumpsuitHoSGrey
+ - ClothingUniformJumpsuitHoSParadeMale
+ - ClothingUniformJumpskirtHoSParadeMale
+ - ClothingUniformJumpsuitHydroponics
+ - ClothingUniformJumpskirtHydroponics
+ - ClothingUniformJumpsuitJanitor
+ - ClothingUniformJumpskirtJanitor
+ - ClothingUniformJumpsuitLawyerBlack
+ - ClothingUniformJumpsuitLibrarian
+ - ClothingUniformJumpskirtColorLightBrown
+ - ClothingUniformCourier # DeltaV - Courier Uniform
+ - ClothingUniformSkirtCourier # DeltaV - Courier Uniform
+ - ClothingUniformJumpsuitMantis # Nyanotrasen - Forensic Mantis
+ - ClothingUniformSkirtMantis # Nyanotrasen - Forensic Mantis
+ - ClothingHeadHatBeretSeniorPhysician
+ - ClothingUniformJumpsuitMedicalDoctor
+ - ClothingUniformJumpskirtMedicalDoctor
+ - ClothingUniformJumpsuitSeniorPhysician
+ - ClothingUniformJumpskirtSeniorPhysician
+ - ClothingUniformJumpsuitMime
+ - ClothingUniformJumpskirtMime
+ - ClothingUniformJumpsuitMusician
+ - ClothingUniformJumpsuitParamedic
+ - ClothingUniformJumpskirtParamedic
+ - ClothingUniformJumpsuitSeniorOfficer
+ - ClothingUniformJumpskirtSeniorOfficer
+ - ClothingUniformJumpsuitPrisoner
+ - ClothingUniformJumpskirtPrisoner
+ - ClothingHeadHatQMsoft
+ - ClothingHeadHatBeretQM
+ - ClothingUniformJumpsuitQM
+ - ClothingUniformJumpskirtQM
+ - ClothingUniformJumpsuitQMTurtleneck
+ - ClothingUniformJumpskirtQMTurtleneck
+ - ClothingUniformJumpsuitQMFormal
+ - ClothingHeadHatBeretRND
+ - ClothingUniformJumpsuitResearchDirector
+ - ClothingUniformJumpskirtResearchDirector
+ - ClothingUniformJumpsuitScientist
+ - ClothingUniformJumpskirtScientist
+ - ClothingUniformJumpsuitSeniorResearcher
+ - ClothingUniformJumpskirtSeniorResearcher
+ - ClothingHeadHatBeretSecurity
+ - ClothingUniformJumpsuitSec
+ - ClothingUniformJumpskirtSec
+ - ClothingUniformJumpsuitSecBlue # DeltaV - alternate sec uniforms
+ - ClothingUniformJumpskirtSecBlue # DeltaV - alternate sec uniforms
+ - ClothingUniformJumpsuitSecGrey # DeltaV - alternate sec uniforms
+ - ClothingUniformJumpskirtSecGrey # DeltaV - alternate sec uniforms
+ - ClothingHeadHatBeretBrigmedic
+ - ClothingUniformJumpsuitBrigmedic
+ - ClothingUniformJumpskirtBrigmedic
+ - ClothingHeadHatBeretWarden
+ - ClothingHeadHatWarden
+ - ClothingUniformJumpsuitWarden
+ - ClothingUniformJumpskirtWarden
+ - ClothingUniformJumpsuitWardenBlue # DeltaV - alternate sec uniforms
+ - ClothingUniformJumpskirtWardenBlue # DeltaV - alternate sec uniforms
+ - ClothingUniformJumpsuitWardenGrey # DeltaV - alternate sec uniforms
+ - ClothingUniformJumpskirtWardenGrey # DeltaV - alternate sec uniforms
+ - ClothingHeadHatParamedicsoft
+ # Winter outfits
+ - ClothingOuterWinterCap
+ - ClothingOuterWinterCE
+ - ClothingOuterWinterCMO
+ - ClothingOuterWinterHoP
+ - ClothingOuterWinterHoSUnarmored
+ - ClothingOuterWinterWardenUnarmored
+ - ClothingOuterWinterQM
+ - ClothingOuterWinterRD
+ - ClothingNeckMantleCap
+ - ClothingNeckMantleCE
+ - ClothingNeckMantleCMO
+ - ClothingNeckMantleHOP
+ - ClothingNeckMantleHOS
+ - ClothingNeckMantleRD
+ - ClothingNeckMantleQM
+ - ClothingOuterStasecSweater # DeltaV - added stasec sweater to uniform printer.
+ - ClothingOuterWinterMusician
+ - ClothingOuterWinterClown
+ - ClothingOuterWinterMime
+ - ClothingOuterWinterCoat
+ - ClothingOuterWinterJani
+ - ClothingOuterWinterBar
+ - ClothingOuterWinterChef
+ - ClothingOuterWinterHydro
+ - ClothingOuterWinterAtmos
+ - ClothingOuterWinterEngi
+ - ClothingOuterWinterCargo
+ - ClothingOuterWinterMiner
+ - ClothingOuterWinterMed
+ - ClothingOuterWinterPara
+ - ClothingOuterWinterChem
+ - ClothingOuterWinterGen
+ - ClothingOuterWinterViro
+ - ClothingOuterWinterSci
+ - ClothingOuterWinterRobo
+ - ClothingOuterWinterSec
+ # Ties
+ - ClothingNeckTieRed
+ - ClothingNeckTieDet
+ - ClothingNeckTieSci
+ # Scarfs - All scarfs avaible in winterdrobe
+ - ClothingNeckScarfStripedGreen
+ - ClothingNeckScarfStripedBlue
+ - ClothingNeckScarfStripedRed
+ - ClothingNeckScarfStripedBrown
+ - ClothingNeckScarfStripedLightBlue
+ - ClothingNeckScarfStripedOrange
+ - ClothingNeckScarfStripedBlack
+ - ClothingNeckScarfStripedPurple
+ # Carpets
+ - Carpet
+ - CarpetBlack
+ - CarpetPink
+ - CarpetBlue
+ - CarpetGreen
+ - CarpetOrange
+ - CarpetPurple
+ - CarpetCyan
+ - CarpetWhite
- type: EmagLatheRecipes
emagStaticRecipes:
- - ClothingHeadHatCentcomcap
- - ClothingHeadHatCentcom
- - ClothingUniformJumpsuitCentcomAgent
- - ClothingUniformJumpsuitCentcomFormal
- - ClothingUniformJumpskirtCentcomFormalDress
- - ClothingUniformJumpsuitCentcomOfficer
- - ClothingUniformJumpsuitCentcomOfficial
- - ClothingHeadHatSyndieMAA
- - ClothingHeadHatSyndie
- - ClothingUniformJumpsuitOperative
- - ClothingUniformJumpskirtOperative
- - ClothingUniformJumpsuitSyndieFormal
- - ClothingUniformJumpskirtSyndieFormalDress
- - ClothingHeadPyjamaSyndicateBlack
- - ClothingUniformJumpsuitPyjamaSyndicateBlack
- - ClothingHeadPyjamaSyndicatePink
- - ClothingUniformJumpsuitPyjamaSyndicatePink
- - ClothingHeadPyjamaSyndicateRed
- - ClothingUniformJumpsuitPyjamaSyndicateRed
- - ClothingOuterWinterCentcom
- - ClothingOuterWinterSyndie
- - ClothingOuterWinterSyndieCap
+ - ClothingHeadHatCentcomcap
+ - ClothingHeadHatCentcom
+ - ClothingUniformJumpsuitCentcomAgent
+ - ClothingUniformJumpsuitCentcomFormal
+ - ClothingUniformJumpskirtCentcomFormalDress
+ - ClothingUniformJumpsuitCentcomOfficer
+ - ClothingUniformJumpsuitCentcomOfficial
+ - ClothingHeadHatSyndieMAA
+ - ClothingHeadHatSyndie
+ - ClothingUniformJumpsuitOperative
+ - ClothingUniformJumpskirtOperative
+ - ClothingUniformJumpsuitSyndieFormal
+ - ClothingUniformJumpskirtSyndieFormalDress
+ - ClothingHeadPyjamaSyndicateBlack
+ - ClothingUniformJumpsuitPyjamaSyndicateBlack
+ - ClothingHeadPyjamaSyndicatePink
+ - ClothingUniformJumpsuitPyjamaSyndicatePink
+ - ClothingHeadPyjamaSyndicateRed
+ - ClothingUniformJumpsuitPyjamaSyndicateRed
+ - ClothingOuterWinterCentcom
+ - ClothingOuterWinterSyndie
+ - ClothingOuterWinterSyndieCap
- type: MaterialStorage
whitelist:
tags:
- - Sheet
- - RawMaterial
- - Ingot
+ - Sheet
+ - RawMaterial
+ - Ingot
- type: entity
parent: BaseLathe
@@ -1300,49 +1305,49 @@
name: ore processor
description: It produces sheets and ingots using ores.
components:
- - type: Sprite
- sprite: Structures/Machines/ore_processor.rsi
- layers:
- - state: icon
- map: ["enum.LatheVisualLayers.IsRunning"]
- - state: unlit
- shader: unshaded
- map: ["enum.PowerDeviceVisualLayers.Powered"]
- - state: inserting
- map: ["enum.MaterialStorageVisualLayers.Inserting"]
- - state: panel
- map: ["enum.WiresVisualLayers.MaintenancePanel"]
- - type: Machine
- board: OreProcessorMachineCircuitboard
- - type: MaterialStorage
- ignoreColor: true
- whitelist:
- tags:
- - Ore
- - type: Lathe
- idleState: icon
- runningState: building
- defaultProductionAmount: 10
- staticRecipes:
- - BluespaceCrystal
- - NormalityCrystal
- - SheetSteel
- - SheetGlass1
- - SheetRGlass
- - SheetPlasma1
- - SheetPGlass1
- - SheetRPGlass1
- - SheetUranium1
- - IngotGold1
- - IngotSilver1
- - MaterialBananium1
- - type: MaterialStorageMagnetPickup # Delta V - Summary: Adds magnet pull from Frontier
- magnetEnabled: True
- range: 0.30 # Delta V - End Magnet Pull
- - type: MiningPoints # DeltaV - Source of mining points for miners
- transferSound:
- path: /Audio/Effects/Cargo/ping.ogg
- - type: MiningPointsLathe # DeltaV
+ - type: Sprite
+ sprite: Structures/Machines/ore_processor.rsi
+ layers:
+ - state: icon
+ map: ["enum.LatheVisualLayers.IsRunning"]
+ - state: unlit
+ shader: unshaded
+ map: ["enum.PowerDeviceVisualLayers.Powered"]
+ - state: inserting
+ map: ["enum.MaterialStorageVisualLayers.Inserting"]
+ - state: panel
+ map: ["enum.WiresVisualLayers.MaintenancePanel"]
+ - type: Machine
+ board: OreProcessorMachineCircuitboard
+ - type: MaterialStorage
+ ignoreColor: true
+ whitelist:
+ tags:
+ - Ore
+ - type: Lathe
+ idleState: icon
+ runningState: building
+ defaultProductionAmount: 10
+ staticRecipes:
+ - BluespaceCrystal
+ - NormalityCrystal
+ - SheetSteel
+ - SheetGlass1
+ - SheetRGlass
+ - SheetPlasma1
+ - SheetPGlass1
+ - SheetRPGlass1
+ - SheetUranium1
+ - IngotGold1
+ - IngotSilver1
+ - MaterialBananium1
+ - type: MaterialStorageMagnetPickup # Delta V - Summary: Adds magnet pull from Frontier
+ magnetEnabled: True
+ range: 0.30 # Delta V - End Magnet Pull
+ - type: MiningPoints # DeltaV - Source of mining points for miners
+ transferSound:
+ path: /Audio/Effects/Cargo/ping.ogg
+ - type: MiningPointsLathe # DeltaV
- type: entity
parent: OreProcessor
@@ -1358,22 +1363,22 @@
materialUseMultiplier: 0.75
timeMultiplier: 0.5
staticRecipes:
- - BluespaceCrystal
- - NormalityCrystal
- - SheetSteel
- - SheetGlass1
- - SheetRGlass
- - SheetPlasma1
- - SheetPGlass1
- - SheetRPGlass1
- - SheetPlasteel1
- - SheetUranium1
- - SheetUGlass1
- - SheetRUGlass1
- - IngotGold1
- - IngotSilver1
- - MaterialBananium1
- - MaterialDiamond
+ - BluespaceCrystal
+ - NormalityCrystal
+ - SheetSteel
+ - SheetGlass1
+ - SheetRGlass
+ - SheetPlasma1
+ - SheetPGlass1
+ - SheetRPGlass1
+ - SheetPlasteel1
+ - SheetUranium1
+ - SheetUGlass1
+ - SheetRUGlass1
+ - IngotGold1
+ - IngotSilver1
+ - MaterialBananium1
+ - MaterialDiamond
- type: entity
parent: BaseLathe
@@ -1445,105 +1450,105 @@
idleState: icon
runningState: icon
staticRecipes:
- - PrizeBall
- - PlushieMothRandom
- - PlushieShadowkin
- - PlushieMothMusician
- - PlushieMothBartender
- - PlushieBee
- - PlushieHampter
- - PlushieRouny
- - PlushieLamp
- - PlushieArachind
- - PlushieLizard
- - PlushieSpaceLizard
- - PlushieSharkBlue
- - PlushieSharkPink
- - PlushieSharkGrey
- - PlushieCarp
- - PlushieMagicarp
- - PlushieHolocarp
- - PlushieSlime
- - PlushieSnake
- - ToyMouse
- - ToyRubberDuck
- - PlushieVox
- - PlushieAtmosian
- - PlushiePenguin
- - PlushieHuman
- - PlushieArachne
- - PlushieGnome
- - PlushieLoveable
- - PlushieDeer
- - PlushieIpc
- - PlushieGrey
- - PlushieRedFox
- - PlushiePurpleFox
- - PlushiePinkFox
- - PlushieOrangeFox
- - PlushieMarbleFox
- - PlushieCrimsonFox
- - PlushieCoffeeFox
- - PlushieBlueFox
- - PlushieBlackFox
- - PlushieVulp
- - PlushieCorgi
- - PlushieGirlyCorgi
- - PlushieRobotCorgi
- - PlushieCatBlack
- - PlushieCatGrey
- - PlushieCatOrange
- - PlushieCatSiames
- - PlushieCatTabby
- - PlushieCatTuxedo
- - PlushieCatWhite
- - ToyAi
- - ToyIan
- - BalloonNT
- - BalloonCorgi
- - CrayonBox
- - PetRockCarrier
- - PlushieXeno
- - FoamCrossbow
- - RevolverCapGun
- - PonderingOrb
- - ToyAmongPequeno
- - FoamCutlass
- - WhoopieCushion
- - ToyHammer
- - PlasticBanana
- - WeaponWaterPistol
- - WeaponWaterBlaster
- - NewtonCradle
- - SnapPopBox
- - MrDips
- - MrChips
- - CrazyGlue
- - PlushieRatvar
- - PlushieNar
+ - PrizeBall
+ - PlushieMothRandom
+ - PlushieShadowkin
+ - PlushieMothMusician
+ - PlushieMothBartender
+ - PlushieBee
+ - PlushieHampter
+ - PlushieRouny
+ - PlushieLamp
+ - PlushieArachind
+ - PlushieLizard
+ - PlushieSpaceLizard
+ - PlushieSharkBlue
+ - PlushieSharkPink
+ - PlushieSharkGrey
+ - PlushieCarp
+ - PlushieMagicarp
+ - PlushieHolocarp
+ - PlushieSlime
+ - PlushieSnake
+ - ToyMouse
+ - ToyRubberDuck
+ - PlushieVox
+ - PlushieAtmosian
+ - PlushiePenguin
+ - PlushieHuman
+ - PlushieArachne
+ - PlushieGnome
+ - PlushieLoveable
+ - PlushieDeer
+ - PlushieIpc
+ - PlushieGrey
+ - PlushieRedFox
+ - PlushiePurpleFox
+ - PlushiePinkFox
+ - PlushieOrangeFox
+ - PlushieMarbleFox
+ - PlushieCrimsonFox
+ - PlushieCoffeeFox
+ - PlushieBlueFox
+ - PlushieBlackFox
+ - PlushieVulp
+ - PlushieCorgi
+ - PlushieGirlyCorgi
+ - PlushieRobotCorgi
+ - PlushieCatBlack
+ - PlushieCatGrey
+ - PlushieCatOrange
+ - PlushieCatSiames
+ - PlushieCatTabby
+ - PlushieCatTuxedo
+ - PlushieCatWhite
+ - ToyAi
+ - ToyIan
+ - BalloonNT
+ - BalloonCorgi
+ - CrayonBox
+ - PetRockCarrier
+ - PlushieXeno
+ - FoamCrossbow
+ - RevolverCapGun
+ - PonderingOrb
+ - ToyAmongPequeno
+ - FoamCutlass
+ - WhoopieCushion
+ - ToyHammer
+ - PlasticBanana
+ - WeaponWaterPistol
+ - WeaponWaterBlaster
+ - NewtonCradle
+ - SnapPopBox
+ - MrDips
+ - MrChips
+ - CrazyGlue
+ - PlushieRatvar
+ - PlushieNar
- type: EmagLatheRecipes
emagStaticRecipes:
- - PlushieGhost
- - PlushieRGBee
- - PlushieRainbowCarp
- - PlushieJester
- - PlushieSlips
- - PlushieTrystan
- - PlushieAbductor
- - PlushieAbductorAgent
- - PlushieNuke
- - ToyNuke
- - FoamBlade
- - BalloonSyn
- - SingularityToy
- - TeslaToy
- - ToySword
- - BwoinkHammer
- - ThronglerToy
+ - PlushieGhost
+ - PlushieRGBee
+ - PlushieRainbowCarp
+ - PlushieJester
+ - PlushieSlips
+ - PlushieTrystan
+ - PlushieAbductor
+ - PlushieAbductorAgent
+ - PlushieNuke
+ - ToyNuke
+ - FoamBlade
+ - BalloonSyn
+ - SingularityToy
+ - TeslaToy
+ - ToySword
+ - BwoinkHammer
+ - ThronglerToy
- type: MaterialStorage
whitelist:
tags:
- - PrizeTicket
+ - PrizeTicket
- type: entity
id: MedicalBiofabricator
@@ -1557,20 +1562,20 @@
layers:
- state: limbgrower_idleoff
map: ["enum.LatheVisualLayers.IsRunning"]
-# - state: limbgrower_idleoff
-# shader: unshaded
-# map: ["enum.PowerDeviceVisualLayers.Powered"]
-# - state: inserting
-# map: ["enum.MaterialStorageVisualLayers.Inserting"]
-# - state: panel
-# map: ["enum.WiresVisualLayers.MaintenancePanel"]
+ # - state: limbgrower_idleoff
+ # shader: unshaded
+ # map: ["enum.PowerDeviceVisualLayers.Powered"]
+ # - state: inserting
+ # map: ["enum.MaterialStorageVisualLayers.Inserting"]
+ # - state: panel
+ # map: ["enum.WiresVisualLayers.MaintenancePanel"]
- type: Machine
board: MedicalBiofabMachineBoard
- type: MaterialStorage
whitelist:
tags:
- - Sheet
- - RawMaterial
+ - Sheet
+ - RawMaterial
- type: Lathe
idleState: limbgrower_idleoff
runningState: limbgrower_idleon
@@ -1589,5 +1594,5 @@
- SynthRightHand
- type: EmagLatheRecipes
emagStaticRecipes:
- - PizzaLeftArm
- - PizzaRightArm
+ - PizzaLeftArm
+ - PizzaRightArm
diff --git a/Resources/Prototypes/Procedural/salvage_loot.yml b/Resources/Prototypes/Procedural/salvage_loot.yml
index 7e7ddf6ff9f..1b941cd1a2c 100644
--- a/Resources/Prototypes/Procedural/salvage_loot.yml
+++ b/Resources/Prototypes/Procedural/salvage_loot.yml
@@ -106,6 +106,10 @@
- proto: WeaponTeslaGun
prob: 0.1
cost: 2
+ - proto: ClothingEyesNightVisionGoggles
+ cost: 8
+ - proto: ClothingEyesGlassesThermal
+ cost: 8
# Mob loot table
diff --git a/Resources/Prototypes/Recipes/Lathes/devices.yml b/Resources/Prototypes/Recipes/Lathes/devices.yml
index 2b0d6fa44fe..56e1739817a 100644
--- a/Resources/Prototypes/Recipes/Lathes/devices.yml
+++ b/Resources/Prototypes/Recipes/Lathes/devices.yml
@@ -234,3 +234,33 @@
Steel: 500
Glass: 400
Gold: 100
+
+- type: latheRecipe
+ id: ClothingEyesNightVisionGoggles
+ result: ClothingEyesNightVisionGoggles
+ completetime: 2
+ materials:
+ Steel: 200
+ Glass: 100
+ Silver: 100
+ Gold: 100
+
+- type: latheRecipe
+ id: ClothingEyesNightVisionDiagnosticGoggles
+ result: ClothingEyesNightVisionDiagnosticGoggles
+ completetime: 2
+ materials:
+ Steel: 200
+ Glass: 100
+ Silver: 100
+ Gold: 100
+
+- type: latheRecipe
+ id: ClothingEyesThermalVisionGoggles
+ result: ClothingEyesThermalVisionGoggles
+ completetime: 2
+ materials:
+ Steel: 200
+ Glass: 100
+ Silver: 100
+ Gold: 100
diff --git a/Resources/Prototypes/Recipes/Lathes/medical.yml b/Resources/Prototypes/Recipes/Lathes/medical.yml
index ba8f596d215..29f3fed247b 100644
--- a/Resources/Prototypes/Recipes/Lathes/medical.yml
+++ b/Resources/Prototypes/Recipes/Lathes/medical.yml
@@ -250,4 +250,15 @@
completetime: 2
materials:
Steel: 100
- Plastic: 100
\ No newline at end of file
+ Plastic: 100
+
+- type: latheRecipe
+ id: ClothingEyesNightVisionMedicalGoggles
+ result: ClothingEyesNightVisionMedicalGoggles
+ completetime: 7
+ materials:
+ Steel: 300
+ Glass: 300
+ Silver: 100
+ Gold: 100
+ Plasma: 200
diff --git a/Resources/Prototypes/Recipes/Lathes/security.yml b/Resources/Prototypes/Recipes/Lathes/security.yml
index 6d00f40ce21..e80ba6bbf94 100644
--- a/Resources/Prototypes/Recipes/Lathes/security.yml
+++ b/Resources/Prototypes/Recipes/Lathes/security.yml
@@ -995,4 +995,14 @@
completetime: 2
materials:
Plastic: 15
- Uranium: 10
\ No newline at end of file
+ Uranium: 10
+
+- type: latheRecipe
+ id: ClothingEyesNightVisionSecurityGoggles
+ result: ClothingEyesNightVisionSecurityGoggles
+ completetime: 5
+ materials:
+ Steel: 500
+ Glass: 300
+ Silver: 100
+ Gold: 100
diff --git a/Resources/Prototypes/Research/experimental.yml b/Resources/Prototypes/Research/experimental.yml
index 423ec0f84da..cf6493847ac 100644
--- a/Resources/Prototypes/Research/experimental.yml
+++ b/Resources/Prototypes/Research/experimental.yml
@@ -167,6 +167,33 @@
- MedicalScannerMachineCircuitboard
- MetempsychoticMachineCircuitboard
+- type: technology
+ id: NightVisionTech
+ name: research-technology-night-vision
+ icon:
+ sprite: Clothing/Eyes/Goggles/nightvision.rsi
+ state: icon
+ discipline: Experimental
+ tier: 2
+ cost: 10000
+ recipeUnlocks:
+ - ClothingEyesNightVisionGoggles
+ - ClothingEyesNightVisionSecurityGoggles
+ - ClothingEyesNightVisionMedicalGoggles
+ - ClothingEyesNightVisionDiagnosticGoggles
+
+- type: technology
+ id: ThermalVisionTech
+ name: research-technology-thermal-vision
+ icon:
+ sprite: Clothing/Eyes/Goggles/thermal.rsi
+ state: icon
+ discipline: Experimental
+ tier: 2
+ cost: 10000
+ recipeUnlocks:
+ - ClothingEyesThermalVisionGoggles
+
# Tier 3
- type: technology
diff --git a/Resources/Prototypes/Shaders/shaders.yml b/Resources/Prototypes/Shaders/shaders.yml
index 108b9f778b5..96c51d1a985 100644
--- a/Resources/Prototypes/Shaders/shaders.yml
+++ b/Resources/Prototypes/Shaders/shaders.yml
@@ -127,4 +127,9 @@
- type: shader
id: Ethereal
kind: source
- path: "/Textures/Shaders/ethereal.swsl"
\ No newline at end of file
+ path: "/Textures/Shaders/ethereal.swsl"
+
+- type: shader
+ id: NightVision
+ kind: source
+ path: "/Textures/Shaders/nightvision.swsl"
diff --git a/Resources/Prototypes/WhiteDream/Entities/Clothing/Cult/armor.yml b/Resources/Prototypes/WhiteDream/Entities/Clothing/Cult/armor.yml
index 04279d51d2c..bdbb4bac46d 100644
--- a/Resources/Prototypes/WhiteDream/Entities/Clothing/Cult/armor.yml
+++ b/Resources/Prototypes/WhiteDream/Entities/Clothing/Cult/armor.yml
@@ -113,6 +113,12 @@
sprite: Clothing/Eyes/Misc/blindfold.rsi
- type: FlashImmunity
- type: EyeProtection
+ - type: NightVision
+ isActive: true
+ toggleAction: null
+ activateSound: null
+ deactivateSound: null
+ color: White
- type: ShowHealthBars
damageContainers:
- Biological
@@ -120,5 +126,3 @@
- type: ShowHealthIcons
damageContainers:
- Biological
- # TODO: ADD NIGHT VISION
-
diff --git a/Resources/Textures/Clothing/Eyes/Goggles/diagnostic_nightvision.rsi/equipped-EYES-off.png b/Resources/Textures/Clothing/Eyes/Goggles/diagnostic_nightvision.rsi/equipped-EYES-off.png
new file mode 100644
index 0000000000000000000000000000000000000000..b63f30fc713a739b08ea1070559e2d3b6abf3f6d
GIT binary patch
literal 452
zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|R53
zr;B4q#hkaZ9K8-ZNVLvZ2+=sg&GN=-_pVLq1q&5k=x)-e5L(!M$7$j6723PGU#)W5
z#>Fc#EA)*#M@!aG&dIJ7@0$-8IDayh|E%7wZ
z^T!=~_Ut$ULtZq`>HPbLKH)0w_^@&grxzQ>o$a;58P>sLRUl^pFqX^AoC_sf|-
zH%2Ayz4<4?T9&WSOzL5xS@Ej(Dhux2*`~2dY(w&WnfHDSyN;9=|6h33dcn>2wQv7Q
z)v`MDu{6kVGFS>R6sa&g@nASHkpbcsG>L}w?5&9rY>pRx?sqz^_N1~;=k%T{AC(Rm
zG2dQv;OyJEoDS0?dVgL{4!!Iyw=mT1fxtA;7qilMCvVtaXE^hK>f#Gp@*kwHG1Z^^
z*m`w?mzopr
E058M1eEv^N50mYoN%&OG`A^vbtyPxmWzq$#J@{|EG+Kx&SYsS@l)(mYpr|D^}r1WthR3
zz}CqJ^9SI^ZW7tZ~s)iJ6OzpY?r&ODX!rS;WqlUYpY+5+P9
p=YUjt?g>1!-^SjYoDg~=zRyZNy+M4FAu!c4c)I$ztaD0e0swobG`0W$
literal 0
HcmV?d00001
diff --git a/Resources/Textures/Clothing/Eyes/Goggles/diagnostic_nightvision.rsi/icon.png b/Resources/Textures/Clothing/Eyes/Goggles/diagnostic_nightvision.rsi/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..8bcf7105c2ba36f66beaadf560b76a9e095f924d
GIT binary patch
literal 306
zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jP7LeL$-D$|SkfJR9T^xl
z_H+M9WCil21AIbU?VJO24Q(VOltLquw`VCWjnv%JYH?##2vA-%W$|wy#aR;M7yKUz
z7=ryPgg}A?9+AZi419+{nDKc2iWHz=x2KC^h=u>#37&k+iaacL-zNV2-+ei4zDJ)Sg7qp~XuIk%3Jr6%9C9(X0nn1$i0KY~V>9=9~Sid|BymH<$dA6Q|OX1S@O)G`n
z`d78ixbDkXrrP|x``z2M%J-f0R4;o?D*hsWD6~k)WQhu=vS@I^?xt5)|0Ev}`lWu9
mpGBE_+J{c}7k{*`{9<~wS!TBVg?x}(89ZJ6T-G@yGywp$pK%)i
literal 0
HcmV?d00001
diff --git a/Resources/Textures/Clothing/Eyes/Goggles/diagnostic_nightvision.rsi/inhand-left.png b/Resources/Textures/Clothing/Eyes/Goggles/diagnostic_nightvision.rsi/inhand-left.png
new file mode 100644
index 0000000000000000000000000000000000000000..04fff80e4df5f5bfe6b670cf9f68368e945a073a
GIT binary patch
literal 233
zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!7>k44ofy`glX(f`NC)_YxB_Vj
z2_;=a8$0KKGkM1Mnl&CTboqZO@&Et-xdI8oKxxjBAirP+ARi3OnPy)B3Z{FyIEF;D
zzP)yk?|=dabHI`X|Ne{TZ+A86ev>k7-|S;TdqP_}Ufh?N@s8pCxopE;;RRtO^-kZd
z{2adSo4^0Qd9w|pXvFOLue+Qj#rWKnl$5MImaWkFymHZ|6YAYw9~Q1S!l|RxzKdax
XEW^!ZZ4OI-Rx)_H`njxgN@xNA_h(vM
literal 0
HcmV?d00001
diff --git a/Resources/Textures/Clothing/Eyes/Goggles/diagnostic_nightvision.rsi/inhand-right.png b/Resources/Textures/Clothing/Eyes/Goggles/diagnostic_nightvision.rsi/inhand-right.png
new file mode 100644
index 0000000000000000000000000000000000000000..d80344136fca4bab3f4e25ae0dc66b77c694904f
GIT binary patch
literal 230
zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!7>k44ofy`glX(f`NC)_YxB_Vj
z2_;=a8$0KKGkM1Mnl&CTboqZO@&Et-xdI8oKxxjBAirP+ARi3OnPy)B3Z{6vIEF;D
zzP)D6cR+!M`GSD@fxrHD`gG+r6SJS1Cr`epFc#EA)*#M@!aG&dIJ7@0$-8IDayh|E%7wZ
z^T!=~_Ut$ULtZq`>HPbLKH)0w_^@&grxzQ>o$a;58P>sLRUl^pFqX^AoC_sf|-
zH%2Ayz4<4?T9&WSOzL5xS@Ej(Dhux2*`~2dY(w&WnfHDSyN;9=|6h33dcn>2wQv7Q
z)v`MDu{6kVGFS>R6sa&g@nASHkpbcsG>L}w?5&9rY>pRx?sqz^_N1~;=k%T{AC(Rm
zG2dQv;OyJEoDS0?dVgL{4!!Iyw=mT1fxtA;7qilMCvVtaXE^hK>f#Gp@*kwHG1Z^^
z*m`w?mzopr
E058M1eEubw%a%8SRV``369S$#*7XdTVcwJeySGVP{uof;WesA9Xp4}yl?V0)a8riu=ZSN^NYA_$*
zVK8RMS-@~T|Blw9@9)lqW%T=hc^@59VJ0NybpE`i<$I$>-;{t(|)JLu#4Yk?Wi4-^IPQH)NcE46?QpOx&`Immzifrw`A4D{Q3IHv_|*&@uT(i|2=KG>teny<`1qntKR$e<VqPDJP
z-Os{8H|xtU{_OBqx*G6@tLs(G^Q)Hi8B8)^Yz>kOX$&(M6G&!ElTrBh{@>TFqHkh+
zs_ODiGFHj+JK4DI4iV^fIDcN((xG&1gGQXmL;vTeuJ1JX^5@PZ<|EDh;&}_caa{n$
r3g3kztwR5v|J?aglY?{z+-K~|lbbFZd?FT@UKu=H{an^LB{Ts5{kAk(
literal 0
HcmV?d00001
diff --git a/Resources/Textures/Clothing/Eyes/Goggles/medical_nightvision.rsi/icon.png b/Resources/Textures/Clothing/Eyes/Goggles/medical_nightvision.rsi/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..52522c080e85e6a1a893ba5bbd642663d48252d5
GIT binary patch
literal 306
zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jP7LeL$-D$|SkfJR9T^xl
z_H+M9WCil21AIbU?VJO24Q(VOltLqu6?*rG<*v6}zd!KWS)hE+0@uAjinAohFZe$c
zFa-No2!R9(JR*x382Ao@Fyrz36)8Z$Zci7-5DWje6Fm8t6?s_hzD@l3zx#69e2+kp
zr&gs0E@(-&T-CR6dLDjIN@Do~HGzc30e+1#(r?4|v3_|Nc;&oh@@zc^m%^p*n^p?D
z^{;B3aov}(OttxW_q(@imG3+0sb2P)RQyH$P-u~o$r2S#Wzpb--A%8q{z*O{^h^CH
mKZ`Q=v=5!`FaBs>`Ni~Vv&?M!3;7_oGI+ZBxvXk44ofy`glX(f`NC)_YxB_Vj
z2_;=a8$0I!m8JJ&``&Bq-~9de&6{l)MI&a{f8FIQDaPlnq@-l!v22CT=aq{#olx)g`mk`t5l$Vg_FW8n
XWEpNQYjaovw35No)z4*}Q$iB}O9Nb-
literal 0
HcmV?d00001
diff --git a/Resources/Textures/Clothing/Eyes/Goggles/medical_nightvision.rsi/inhand-right.png b/Resources/Textures/Clothing/Eyes/Goggles/medical_nightvision.rsi/inhand-right.png
new file mode 100644
index 0000000000000000000000000000000000000000..f9c17318b4ee395b57eb4efab8c1756143523406
GIT binary patch
literal 230
zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!7>k44ofy`glX(f`NC)_YxB_Vj
z2_;=a8$0I!m8JJ&``Q#W5tJ
z_3brlz5@z8%ohaI5B&AN)2A!1nV9|5JbCg(B^Q_f%oRV@G8f0K%`jMhv?RyjtK8Z9
zymw!(c4WQwZ1uMbJfHpqc>nl!m_blbP&O*Jzvt>V53`=z%DK1XeoF7KwR^#IC55(qv;yP#7H2K0>|A0A0-$kw5
z6(>6%PgxXLE_MH0&uDSA^2;w6CjS(dyMFz}EUxa^+^kEtwA@JEP`!Klx|IbtQZ3@*
z5@)S%nsj@A$JhBsxO_f`YMd5g_+WDX#%~@If5u~W1}lOWWNV#0zSJ?Bb%S5y!8Ht%
z^X0jgJ8*cK|Fu8z>$kn*HU??_17Zn}8E-J<*f2yl^s*;#Z}`ZN!)PYgpnKpL^9I%%
z6%0s<3^UFs&){3oxRc@5XO3q~Up{lpKfhiJ$jocIwQIsZsdpPr7yJrv=bXXKz+nHG
zqg>iDa?f$jjC1TumaXOP{I*>xVgFoCg9WcYUXhurTPl}Q$oeHe{_y=LTmjX;11wnA
iBp0z}JR-(1pLx$LUT)lx{@o84UkskEelF{r5}E*W3du_V
literal 0
HcmV?d00001
diff --git a/Resources/Textures/Clothing/Eyes/Goggles/monocle_thermal.rsi/equipped-EYES.png b/Resources/Textures/Clothing/Eyes/Goggles/monocle_thermal.rsi/equipped-EYES.png
new file mode 100644
index 0000000000000000000000000000000000000000..dc4d9e775b88d077723af637c09a002db51a84a7
GIT binary patch
literal 410
zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|TRv
zr;B4q#hkad7J4}+%CvoSkGx>ER!MJtRLSXk4T)z~B*Y5rnRRfJd4g4f^o^X;&51@C
zg1nC|>ieYq`}g$ee>?Gl2Y>bz^EL04os`ZnNu0~T?&a3<{?ocGpM(Rd8>hbvy#2C%
zb8*43r#~3Cu3|iOw!B^Y-ZS3ji-!BxGkAqEPnoQ5{(tL@XTNIZpX3b+Wq$K5tzLfb
z^~%diVK3Y_*zg)SuMB87|D0{>AqKl?;cuV4UJxYF@aX0ALk!>Aw0By5;aI+a{R<
zX@b=(kqt$^1nZBVW^!2@sKU6&Z@&tsz)sgmEFE(mc`&)8F@U^^iM}(RDDYh>5>Rvo
P7}yM+u6{1-oD!M<%d4uQ
literal 0
HcmV?d00001
diff --git a/Resources/Textures/Clothing/Eyes/Goggles/monocle_thermal.rsi/icon.png b/Resources/Textures/Clothing/Eyes/Goggles/monocle_thermal.rsi/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..e0aaa8ae9aa3c281302ad194b0a2b7b1a30f4d21
GIT binary patch
literal 298
zcmV+_0oDGAP)qE$6}EuNQ7bkzjg&GExgwG!?EerK=fwVrJ$Az(jfTU#
wGaKHE%iEaGi#ILUo+rw;(+U14XZUA%0jaqLSXS!5lK=n!07*qoM6N<$f=#%29{>OV
literal 0
HcmV?d00001
diff --git a/Resources/Textures/Clothing/Eyes/Goggles/monocle_thermal.rsi/meta.json b/Resources/Textures/Clothing/Eyes/Goggles/monocle_thermal.rsi/meta.json
new file mode 100644
index 00000000000..ad770fb0f8c
--- /dev/null
+++ b/Resources/Textures/Clothing/Eyes/Goggles/monocle_thermal.rsi/meta.json
@@ -0,0 +1,22 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Taken from https://github.com/BlueMoon-Labs/MOLOT-BlueMoon-Station/blob/master/icons/obj/clothing/glasses.dmi",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "equipped-EYES",
+ "directions": 4
+ },
+ {
+ "name": "equipped-EYES-off",
+ "directions": 4
+ },
+ {
+ "name": "icon"
+ }
+ ]
+}
diff --git a/Resources/Textures/Clothing/Eyes/Goggles/nightvision.rsi/equipped-EYES-off.png b/Resources/Textures/Clothing/Eyes/Goggles/nightvision.rsi/equipped-EYES-off.png
new file mode 100644
index 0000000000000000000000000000000000000000..b63f30fc713a739b08ea1070559e2d3b6abf3f6d
GIT binary patch
literal 452
zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|R53
zr;B4q#hkaZ9K8-ZNVLvZ2+=sg&GN=-_pVLq1q&5k=x)-e5L(!M$7$j6723PGU#)W5
z#>Fc#EA)*#M@!aG&dIJ7@0$-8IDayh|E%7wZ
z^T!=~_Ut$ULtZq`>HPbLKH)0w_^@&grxzQ>o$a;58P>sLRUl^pFqX^AoC_sf|-
zH%2Ayz4<4?T9&WSOzL5xS@Ej(Dhux2*`~2dY(w&WnfHDSyN;9=|6h33dcn>2wQv7Q
z)v`MDu{6kVGFS>R6sa&g@nASHkpbcsG>L}w?5&9rY>pRx?sqz^_N1~;=k%T{AC(Rm
zG2dQv;OyJEoDS0?dVgL{4!!Iyw=mT1fxtA;7qilMCvVtaXE^hK>f#Gp@*kwHG1Z^^
z*m`w?mzopr
E058M1eE(56?F=2Egz13RyoeI)BL=X2J-)z>E(+4Mi&
z``V*l_3ymve|Dv^z9`%Mw14qp2|nd*k7}x7qyA(GUV8htZvRHt70;F*_3u~oEMBed
zc=@ya`}foLpF8*H{L!QK+xJGq_L{$b{qgAoh3vYphFATszgRt0$cz7$X)W>QUfjM)
zHn+*EeunSf9vxt6U-fzB{M|eH4KM$1*!^2~mj_6geB4wJioOZ>O~p_I#bo`3qqpU10zeil#S_HtVs`1;xNlV{^+F!)a;-)*Vv
z9_pv%`j1~e@5I(HFMj*XIL4O_ET3xre)(gS${z7^i_rAFr(ZtZ!tp)7e)nc!-+71a
zWm^nyJbiXu*V^INqLwYJBK$dwzVi>;*CsMs?$5i)_+t9slT10*VS)*8>L**f|I28rn!mD1}BQ
zi!9KSsclyt1T!`qZMy~(>
literal 0
HcmV?d00001
diff --git a/Resources/Textures/Clothing/Eyes/Goggles/nightvision.rsi/inhand-left.png b/Resources/Textures/Clothing/Eyes/Goggles/nightvision.rsi/inhand-left.png
new file mode 100644
index 0000000000000000000000000000000000000000..995b37471b38d3dbcef1e91888c4ed58239b2d29
GIT binary patch
literal 385
zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEVD#{GaSW+oe0ytS)}a8AV;?79
zTDrUS+Q#IAP0lZsthSWoxw9WU{v!DYhg1B5>~=oQcTG*fg=?A>V|Tglb68?=^-eYO
z#s71CKGf`de*CKH@t#%&CJu!LG~z%Yr^~+Gxjp%tUSD5r^X>EFvzGg-|4-4(F^q^Z
znq&F=?YHVp)rX(%y813!_Xwq1POdh~sI^pF2$AHG+EHSOm8{6o=W#kb{d*H*u;
zS^a$a*}YN)E5Bwqi(qjds&fl0m=50K3wI1TBe%n+zhXZBibaLCi>F;y-d9lL*MH>|
rOUn$om3QkIfC6>yPr#m?k;`yJy1Mbjqo4nPLCfIj>gTe~DWM4fU$Cme
literal 0
HcmV?d00001
diff --git a/Resources/Textures/Clothing/Eyes/Goggles/nightvision.rsi/inhand-right.png b/Resources/Textures/Clothing/Eyes/Goggles/nightvision.rsi/inhand-right.png
new file mode 100644
index 0000000000000000000000000000000000000000..c3efa67f837fbc9cc5851d2ec09ce705d1bc7652
GIT binary patch
literal 410
zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU`+IMaSW+oe0ytS)}a82qaV*-
zI(paX^^L%Q0*zQNYmK?LH#R>={vl!4^nkmhv>;%Yc+?A(J}Zr~mvWYk+>A$OyLd19
z_g={GyV~0qbm+$>=7ys&Nlh=Q<
zJ!dO^ygOUHQG3Fv|Ldli?To*f`uzN=uk8ZK*JtUR*PLIZwZ3S#ynd*fZk_a9R-vmW
zsw=~TEKR3G|E%SZ_IKFwA|qhSyU$x~P2=DG{(Shi#ZG}pxv9aGQ=@<0?f6!7|K*OY
zQ`GdIZ7#TX)%Rz{DfjNVPVE`;cFGM5OdJaMh-%K9T5Fl-U7qDhM|P%(6`OryKf<{%
z{5<>ZPQmAGm2;F^RICj@-Ef>4WXl*eqeQ*!+LOX1|M&}1Z*)FXu}}gTEi?as)UL{^
V#;mG;OXk;vd$@?2>@%NsSE%B
literal 0
HcmV?d00001
diff --git a/Resources/Textures/Clothing/Eyes/Goggles/nightvision.rsi/meta.json b/Resources/Textures/Clothing/Eyes/Goggles/nightvision.rsi/meta.json
new file mode 100644
index 00000000000..987b20b9af7
--- /dev/null
+++ b/Resources/Textures/Clothing/Eyes/Goggles/nightvision.rsi/meta.json
@@ -0,0 +1,48 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "equipped-EYES",
+ "directions": 4,
+ "delays": [
+ [
+ 0.1,
+ 0.1
+ ],
+ [
+ 0.1,
+ 0.1
+ ],
+ [
+ 0.1,
+ 0.1
+ ],
+ [
+ 0.1,
+ 0.1
+ ]
+ ]
+ },
+ {
+ "name": "equipped-EYES-off",
+ "directions": 4
+ },
+ {
+ "name": "icon"
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/Clothing/Eyes/Goggles/security_nightvision.rsi/equipped-EYES-off.png b/Resources/Textures/Clothing/Eyes/Goggles/security_nightvision.rsi/equipped-EYES-off.png
new file mode 100644
index 0000000000000000000000000000000000000000..b63f30fc713a739b08ea1070559e2d3b6abf3f6d
GIT binary patch
literal 452
zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|R53
zr;B4q#hkaZ9K8-ZNVLvZ2+=sg&GN=-_pVLq1q&5k=x)-e5L(!M$7$j6723PGU#)W5
z#>Fc#EA)*#M@!aG&dIJ7@0$-8IDayh|E%7wZ
z^T!=~_Ut$ULtZq`>HPbLKH)0w_^@&grxzQ>o$a;58P>sLRUl^pFqX^AoC_sf|-
zH%2Ayz4<4?T9&WSOzL5xS@Ej(Dhux2*`~2dY(w&WnfHDSyN;9=|6h33dcn>2wQv7Q
z)v`MDu{6kVGFS>R6sa&g@nASHkpbcsG>L}w?5&9rY>pRx?sqz^_N1~;=k%T{AC(Rm
zG2dQv;OyJEoDS0?dVgL{4!!Iyw=mT1fxtA;7qilMCvVtaXE^hK>f#Gp@*kwHG1Z^^
z*m`w?mzopr
E058M1eEetl7au2E?VTg*
ze>mZH*ynBOiwY7il
zzuUfh`upeu-;V$Mee*l}lzn#luGCr0NffO&X8b^?^`Wi1k8LvP6cPi(H{m>BR
zVK9aSHSvrMZx~*tf8TFe(;D0D`F{E|*#~b<+br?kvUrvSOV$1@Zy4U5f8~E^vf7`Q
zQ9t$gm({Lg$^wbL{BT*=Jm5PQkN?fTmo_nf`RKy=|5IINoj42WE|71vlDK?Fdg*##
Pl4S67^>bP0l+XkKzim56
literal 0
HcmV?d00001
diff --git a/Resources/Textures/Clothing/Eyes/Goggles/security_nightvision.rsi/icon.png b/Resources/Textures/Clothing/Eyes/Goggles/security_nightvision.rsi/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..80ae69d53bada105ba124e8045888bb0cc92f94b
GIT binary patch
literal 505
zcmVPx$vq?ljR9J=Wls`x#K@^8SgJ6*&m?l@?Zl_Ff8e
zy@BhkEG+E=K@y0akb^`a5scXEs=Myispg7vf*Z5DL5nMHzG|5_^WN|G-p+tRp-}wq
zOa%oSjfQWmQmu(`>#k$-YyYPwZ?RbP%`+V&U>v2=x=80V04&q+6*o@Ey9Ja=>jDT(
zEcaEaHL>?&J85+P^s2LHk0(Mce_0-(;%JG
zSX^9qb?)Ku3F&-mXIH#g!0MOp!gXw#Ohig)xWg6Vy_kHU`
zf&|Fq<#vnZ%Nyc}6s}`a&~-M?jw!cWSf)WXlO&r-(yZ5U9ea4*G7XN74gyVv{)ClI
zll=Su9fxlngK{KBJdq+lH{j$}qoA*_d3H=+MCpE*9Xba>i-&dqpf92T-1TQTnfja9
zb!;}GUpduc0OaQe^dd3Oxk-vcNCzy_;PBIDXt(G^VqAQjC;dEM>9kp|vzA)|4bR*s
vCG-}Idw8TfdEZAFbszK+DijKZ;-B*e%6-anRB9Xj00000NkvXXu0mjf^S9-c
literal 0
HcmV?d00001
diff --git a/Resources/Textures/Clothing/Eyes/Goggles/security_nightvision.rsi/inhand-left.png b/Resources/Textures/Clothing/Eyes/Goggles/security_nightvision.rsi/inhand-left.png
new file mode 100644
index 0000000000000000000000000000000000000000..02b00b1591eea9b0c895e3a2a40ac644df2afe07
GIT binary patch
literal 233
zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!7>k44ofy`glX(f`NC)_YxB_Vj
z2_;=a8$0KKVsYJBqH=r0gl}8${Qv)7Ep<;nP@1zO$S;@y$Oi*+rrB43g6W6>n>+WF+O)CB_%75Wh-<(uUxe0gnGBvhlMMSaO!Ba?_$^^
W%W!j9o5K>Il?k44ofy`glX(f`u%tWsIx;Y9
z?C1WI$O`032l#}z+BpZz5|z_6v?&(Xm5@-{BPRU+|Nq+-JV5!=^5?$*DbA80zhIys
z7%&9;R|tUw3p^r=85sBugD~Uq{1quc!9GtH$B+p3x6`bJ4k&Q23i^Ker`{*=*xdNh
z63>s@0=RB0mld&NVq{@r5#X>F5||mY)-a@ae%B4Fb6>g2rezoG<15a3zWAYuyXUlK
z=E(RtTqmNtf>-*eTYvqX|LTC>J8c061qX&k29ODp7u>Zi`SSPfyM@Ua`Q`kw$>p1?
oU(9$^Hht<@`ST7RA_Wey_TQ^(H(6x73g|KhPgg&ebxsLQ0D|>x_W%F@
literal 0
HcmV?d00001
diff --git a/Resources/Textures/Clothing/Eyes/Goggles/security_nightvision.rsi/meta.json b/Resources/Textures/Clothing/Eyes/Goggles/security_nightvision.rsi/meta.json
new file mode 100644
index 00000000000..2b65c68fe84
--- /dev/null
+++ b/Resources/Textures/Clothing/Eyes/Goggles/security_nightvision.rsi/meta.json
@@ -0,0 +1,48 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Taken from https://github.com/BlueMoon-Labs/MOLOT-BlueMoon-Station/blob/master/icons/obj/clothing/glasses.dmi",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "equipped-EYES",
+ "directions": 4,
+ "delays": [
+ [
+ 0.1,
+ 0.1
+ ],
+ [
+ 0.1,
+ 0.1
+ ],
+ [
+ 0.1,
+ 0.1
+ ],
+ [
+ 0.1,
+ 0.1
+ ]
+ ]
+ },
+ {
+ "name": "equipped-EYES-off",
+ "directions": 4
+ },
+ {
+ "name": "icon"
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/Clothing/Eyes/Goggles/thermal.rsi/equipped-EYES.png b/Resources/Textures/Clothing/Eyes/Goggles/thermal.rsi/equipped-EYES.png
new file mode 100644
index 0000000000000000000000000000000000000000..9bef0a8c05f0ca0e150da1e9b81aebb13b8dadd7
GIT binary patch
literal 524
zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=1yvytB`&GO$wiq3C7Jno3=9=>
zRF7M8H5dr69j}nF@vcztmTUGcLZM@bZhhV_L6f^To+GC)ukuUkvCh+_+)$V*aYbQomVd
z3Im?al0?L61)98Q1L
z)#F>sdhq7KjZ2(YT=?OrFX4Ca{>(`+c|}Fb9R5u#KDTbBl&-^KhAj-eOf7jQHtF#1
z{C9t4d)|k8(ccUI#O#}Q&3d|_)#1}Q)9TlSZM*xH?^>P|Z}zsRYx2E|CRDSr8yMfN
zS#$PGj%DfLb4$XH>{x5(@Z$8}R*(CP;eAXOm`u1FxG!ihz-%B|faSlOKEG4N`?p{J
z=Kd?*S5b7>yJPO6-xqG5SG%+QJzJs7|0w@SOK$ya_{4n40aY>v4(UjYnXdl9N2msQpJGL%i!ti=d#Wzp$Py!<<~I)
literal 0
HcmV?d00001
diff --git a/Resources/Textures/Clothing/Eyes/Goggles/thermal.rsi/icon.png b/Resources/Textures/Clothing/Eyes/Goggles/thermal.rsi/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..3d5f8ef9b65ccfe2ed64fbc2d10c725c5fad51d2
GIT binary patch
literal 510
zcmV~YL`2emQAsH<`}Ol@aPemfRt!=?oD8Bs
z_Iz7&h65FI{vYZ{A?OH_900N$L{IK-!7zBCTjc*0Kwsw;*8IP9^%BFvci$Q2H-Gux
zR9k@85kxs)>deJpi)|epQTQ;>tT~TiYH$(*15|v)ig}D6#~!fX$nb)p0I%5u9RQ2#
z_wU}|RFn3~A4t9htI^O2@kk}_Q@h%{p%Af$|gDeMy
z0!0o0fy>j@!r35SKRIv_%m&diTpTEBLGldK&Vt#*SWeIZAVX4t@pvN37|h?^vy>s{
zBOhFT3d1J`R|kCt784yX-vVekwj4sX13&;|pfWW3iAriPteAv@xb1_FVDPUrWmc)9n>XTSEY{`*wGJ@BP4Y`g2W{
z@4IJdS4$$NUAC-T6)(0v=IQU!-9o0C?{~LXu3q)Z-*x{E`|_1p%PfD!?BaNAaVzNkM_opU
zgBm^@;?~~-AyO{a$J#D)zw?~=-)Xhw?t3cy`g2}!MkH6I6yIl9=FY(2cjgU8R89XJ
TA;as_K-xWB{an^LB{Ts51B{c1
literal 0
HcmV?d00001
diff --git a/Resources/Textures/Clothing/Eyes/Goggles/thermal.rsi/inhand-right.png b/Resources/Textures/Clothing/Eyes/Goggles/thermal.rsi/inhand-right.png
new file mode 100644
index 0000000000000000000000000000000000000000..4ede078291d212cabdf7a4d5731153a85f0963c1
GIT binary patch
literal 325
zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEVC3<1aSW-L^Y)gZUvq-Qv5(vN
zVoi8@dM9^JHV&WAyO49uUdR4NymLM>y%4l$l5Q?cQFwc)^;u?9W)7>Pko}kc-ZOqE
zoOia1sNe;f2?Rgl(_(WE8?3oLJ^$Ojn>Szm+*gzr=`xV)W7BD
z7WgIbUuIddqrert>EU)yL*kx>{X1yh{dh-RsxpJvySiOlcf;n
zfXIf6JpYn!l?xpXT`Q~zopr06im!bN~PV
literal 0
HcmV?d00001
diff --git a/Resources/Textures/Clothing/Eyes/Goggles/thermal.rsi/meta.json b/Resources/Textures/Clothing/Eyes/Goggles/thermal.rsi/meta.json
new file mode 100644
index 00000000000..205508acfa7
--- /dev/null
+++ b/Resources/Textures/Clothing/Eyes/Goggles/thermal.rsi/meta.json
@@ -0,0 +1,26 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "equipped-EYES",
+ "directions": 4
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/Shaders/nightvision.swsl b/Resources/Textures/Shaders/nightvision.swsl
new file mode 100644
index 00000000000..8a3e7706ada
--- /dev/null
+++ b/Resources/Textures/Shaders/nightvision.swsl
@@ -0,0 +1,38 @@
+light_mode unshaded;
+
+uniform sampler2D SCREEN_TEXTURE;
+uniform highp vec3 tint; // Colour of the tint
+uniform highp float luminance_threshold; // number between 0 and 1
+uniform highp float noise_amount; // number between 0 and 1
+
+lowp float rand (lowp vec2 n) {
+ return 0.5 + 0.5 * fract (sin (dot (n.xy, vec2 (12.9898, 78.233)))* 43758.5453);
+}
+
+void fragment() {
+
+ highp vec4 color = zTextureSpec(SCREEN_TEXTURE, FRAGCOORD.xy * SCREEN_PIXEL_SIZE);
+
+ // convert color to grayscale using luminance
+ highp float grey = dot(color.rgb, vec3(0.298, 0.5882, 0.1137));
+
+ // calculate local threshold
+ highp float threshold = grey * luminance_threshold;
+
+ // amplify low luminance parts
+ if (grey < threshold) {
+ grey += (threshold - grey) * 0.5;
+ if (grey > 1.0) {
+ grey = 1.0;
+ }
+ }
+
+ // apply night vision color tint
+ color.rgb = mix(color.rgb, tint, grey);
+
+ // add some noise for realism
+ lowp float noise = rand(FRAGCOORD.xy + TIME) * noise_amount / 10.0;
+ color.rgb += noise;
+
+ COLOR = color;
+}