diff --git a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/misc.yml b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/misc.yml index a38aafa64900..2d3c17e7df50 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/misc.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/misc.yml @@ -14,3 +14,20 @@ - StationMapElectronics - type: StaticPrice price: 30 + +- type: entity + parent: BaseElectronics + id: ScreenCircuitboard + name: screen electronics + description: An electronics board used in information screens. + components: + - type: Item + storedRotation: 0 + - type: Sprite + sprite: Objects/Misc/module.rsi + state: airalarm_electronics + - type: Tag + tags: + - ScreenElectronics + - type: StaticPrice + price: 30 diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/screen.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/screen.yml index 9d5cf06d511e..e9c925e75e2b 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/screen.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/screen.yml @@ -25,7 +25,7 @@ state: screen noRot: true - type: Construction - graph: Timer + graph: Screen node: screen - type: ApcPowerReceiver powerLoad: 100 @@ -37,6 +37,43 @@ - type: DeviceNetwork deviceNetId: Wireless receiveFrequencyId: ShuttleTimer + - type: ContainerFill + containers: + board: [ ScreenCircuitboard ] + - type: ContainerContainer + containers: + board: !type:Container + +- type: entity + id: ScreenAssembly + name: screen assembly + description: A screen assembly + components: + - type: WallMount + - type: Clickable + - type: InteractionOutline + - type: Sprite + sprite: Structures/Wallmounts/screen.rsi + layers: + - state: screen_frame1 + map: [ "enum.ConstructionVisuals.Layer" ] + - type: Appearance + - type: GenericVisualizer + visuals: + enum.ConstructionVisuals.Key: + enum.ConstructionVisuals.Layer: + assembly: { state: screen_frame0 } + wired: { state: screen_frame1 } + electronics: { state: screen_frame2 } + - type: Construction + graph: Screen + node: assembly + - type: Transform + anchored: true + placement: + mode: SnapgridCenter + snap: + - Wallmount - type: entity id: ArrivalsShuttleTimer diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/utilities/screen.yml b/Resources/Prototypes/Recipes/Construction/Graphs/utilities/screen.yml new file mode 100644 index 000000000000..e51ec6ab2ca9 --- /dev/null +++ b/Resources/Prototypes/Recipes/Construction/Graphs/utilities/screen.yml @@ -0,0 +1,79 @@ +- type: constructionGraph + id: Screen + start: start + graph: + - node: start + edges: + - to: assembly + steps: + - material: Steel + amount: 2 + doAfter: 2.0 + + - node: assembly + entity: ScreenAssembly + actions: + - !type:AppearanceChange + edges: + - to: wired + steps: + - material: Cable + amount: 2 + doAfter: 1 + - to: start + completed: + - !type:GivePrototype + prototype: SheetSteel1 + amount: 2 + - !type:DeleteEntity {} + steps: + - tool: Welding + doAfter: 2 + + - node: wired + entity: ScreenAssembly + actions: + - !type:AppearanceChange + edges: + - to: electronics + steps: + - tag: ScreenElectronics + store: board + name: "screen electronics" + icon: + sprite: "Objects/Misc/module.rsi" + state: "door_electronics" + doAfter: 1 + - to: assembly + completed: + - !type:GivePrototype + prototype: CableApcStack1 + amount: 2 + steps: + - tool: Cutting + doAfter: 1 + + - node: electronics + actions: + - !type:AppearanceChange + edges: + - to: screen + steps: + - tool: Screwing + doAfter: 2 + + - node: screen + entity: Screen + edges: + - to: wired + conditions: + - !type:ContainerNotEmpty + container: board + completed: + - !type:EmptyAllContainers + pickup: true + emptyAtUser: true + steps: + - tool: Prying + doAfter: 1 + diff --git a/Resources/Prototypes/Recipes/Construction/utilities.yml b/Resources/Prototypes/Recipes/Construction/utilities.yml index cecb2495551a..744ccd50a9a0 100644 --- a/Resources/Prototypes/Recipes/Construction/utilities.yml +++ b/Resources/Prototypes/Recipes/Construction/utilities.yml @@ -46,6 +46,24 @@ conditions: - !type:WallmountCondition {} +- type: construction + name: screen + id: Screen + graph: Screen + startNode: start + targetNode: screen + category: construction-category-structures + description: "A wallmounted display." + icon: + sprite: Structures/Wallmounts/screen.rsi + state: screen + objectType: Structure + canRotate: false + placementMode: SnapgridCenter + canBuildInImpassable: true + conditions: + - !type:WallmountCondition + # POWER - type: construction name: APC diff --git a/Resources/Prototypes/Recipes/Lathes/Packs/engineering.yml b/Resources/Prototypes/Recipes/Lathes/Packs/engineering.yml index 63d529fe4c8e..019e4ac3060e 100644 --- a/Resources/Prototypes/Recipes/Lathes/Packs/engineering.yml +++ b/Resources/Prototypes/Recipes/Lathes/Packs/engineering.yml @@ -44,6 +44,7 @@ - CellRechargerCircuitboard - WeaponCapacitorRechargerCircuitboard - FreezerElectronics + - ScreenElectronics - type: latheRecipePack id: EngineeringBoardsStatic diff --git a/Resources/Prototypes/Recipes/Lathes/electronics.yml b/Resources/Prototypes/Recipes/Lathes/electronics.yml index 5e51dec195aa..0149cbec477c 100644 --- a/Resources/Prototypes/Recipes/Lathes/electronics.yml +++ b/Resources/Prototypes/Recipes/Lathes/electronics.yml @@ -113,6 +113,11 @@ id: StationMapElectronics result: StationMapCircuitboard +- type: latheRecipe + parent: BaseCheapElectronicsRecipe + id: ScreenElectronics + result: ScreenCircuitboard + - type: latheRecipe parent: BaseElectronicsRecipe id: IntercomElectronics diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index 805eb4d5239c..7bf2758e5db3 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -1204,6 +1204,9 @@ - type: Tag id: StationMapElectronics +- type: Tag + id: ScreenElectronics + - type: Tag id: Steak diff --git a/Resources/Textures/Structures/Wallmounts/screen.rsi/meta.json b/Resources/Textures/Structures/Wallmounts/screen.rsi/meta.json index a4c3148aa8ea..e4ef6a7b7ddb 100644 --- a/Resources/Textures/Structures/Wallmounts/screen.rsi/meta.json +++ b/Resources/Textures/Structures/Wallmounts/screen.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "From vgstation: https://github.com/vgstation-coders/vgstation13/commit/a7290010020e541ed6b57817a07023ca6bef26fe#diff-20395160138bed693d15eee6f16d671531b5fa533ec52c50e8df6d52370dbecd", + "copyright": "From vgstation: https://github.com/vgstation-coders/vgstation13/commit/a7290010020e541ed6b57817a07023ca6bef26fe#diff-20395160138bed693d15eee6f16d671531b5fa533ec52c50e8df6d52370dbecd. Screen frames are modifications of screen made by VerinSenpai for SS14.", "size": { "x": 32, "y": 32 @@ -9,6 +9,15 @@ "states": [ { "name": "screen" + }, + { + "name": "screen_frame0" + }, + { + "name": "screen_frame1" + }, + { + "name": "screen_frame2" } ] } diff --git a/Resources/Textures/Structures/Wallmounts/screen.rsi/screen_frame0.png b/Resources/Textures/Structures/Wallmounts/screen.rsi/screen_frame0.png new file mode 100644 index 000000000000..3b797395ece9 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/screen.rsi/screen_frame0.png differ diff --git a/Resources/Textures/Structures/Wallmounts/screen.rsi/screen_frame1.png b/Resources/Textures/Structures/Wallmounts/screen.rsi/screen_frame1.png new file mode 100644 index 000000000000..242b38e78e36 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/screen.rsi/screen_frame1.png differ diff --git a/Resources/Textures/Structures/Wallmounts/screen.rsi/screen_frame2.png b/Resources/Textures/Structures/Wallmounts/screen.rsi/screen_frame2.png new file mode 100644 index 000000000000..6a2ac715da05 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/screen.rsi/screen_frame2.png differ