Skip to content

Conversation

Copy link

Copilot AI commented Dec 12, 2025

About the PR

Implements a handheld camera that spawns photo items, which can be placed on walls as framed decorations.

Why / Balance

Adds decorative gameplay mechanic allowing players to create and place personalized wall decorations. Photos use same placement mechanics as posters/signs.

Technical details

Server-side components:

  • HandheldCameraComponent: Configurable photo prototype, sound, and cooldown
  • HandheldCameraSystem: Handles UseInHandEvent, enforces 2s cooldown via IGameTiming, spawns photos via Spawn(), attempts hand pickup via PickupOrDrop()

Prototype chain:

  • HandheldCamera (BaseItem) → takes photos on use
  • Photo (BaseItem + SpawnItemsOnUse) → converts to frame on use
  • PhotoFrame (BaseSign) → wall-mountable with destruction threshold

Flow:

  1. Camera use → spawns Photo item with shutter sound
  2. Photo use → despawns, spawns PhotoFrame with placement sound
  3. Frame placement → standard wallmount anchoring (inherited from BaseSign)

Uses existing audio assets (/Audio/Machines/shutter.ogg, /Audio/Effects/poster_being_set.ogg). Placeholder sprites created for camera, photo item, and frame.

Media

Camera sprite
Photo sprite
Frame sprite

Requirements

Breaking changes

None.

Changelog
🆑

  • add: Added handheld camera that takes photos. Photos can be placed on walls as framed decorations.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • mfjvsblobprodcus373.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet dotnet run --project Content.YAMLLinter/Content.YAMLLinter.csproj s/Pr�� s/Prototypes/Entities/Objects/Co-r 97336+[email protected]> aris-14/Content.Server/Administr/home/REDACTED/work/Solaris-14/Solaris-14/Content.Server.Database/--exclude-standard aris-14/Content./usr/lib/git-core/git aris-14/Content.submodule--helper aris-14/Content.clone aris-14/Content.--path aris�� aris-14/Content.--name aris-14/ResourceRobust.LoaderApi aris-14/Resource--url aris-14/Resourceuname aris-14/Resources/Prototypes/Ent--norc aris-14/Resources/Prototypes/Ent--noprofile aris-14/Resources/Prototypes/Entities/Objects/Co-i (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

Please create a handheld camera item that can be used to take photos in-game. The photos should be able to be placed on walls similar to posters.


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI changed the title [WIP] Add handheld camera item for in-game photography Add handheld camera item with wall-mountable photo frames Dec 12, 2025
Copilot AI requested a review from MWG-Logan December 12, 2025 01:01
@github-actions
Copy link

RSI Diff Bot; head commit 3ee4f38 merging into eae5830
This PR makes changes to 1 or more RSIs. Here is a summary of all changes:

Resources/Textures/Objects/Devices/camera.rsi

State Old New Status
icon Added

Resources/Textures/Objects/Devices/photo.rsi

State Old New Status
icon Added

Resources/Textures/Structures/Wallmounts/photo_frames.rsi

State Old New Status
frame Added

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants