-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Holograms #233
base: master
Are you sure you want to change the base?
Holograms #233
Conversation
…telist system for "hardlight
…ologram is deleted upon spawning and crashes as no hologram component is found?
…benefit. There's a grace period upon leaving a projector of one 24th of a second before you get returned.
…he protos, make a temp new tag Light, deleted unused files, renamed HoloData to HoloMind, and made HoloData struct to hold info on the Holo like type and whether it's hardlight. Needs implementing in YAML.
…an interact with light things, and non-Holograms can't.
… work on hologram data in the component (no structs ;-;), and refined the variations of Holograms.
Man I was really smashing rocks together before :P Also I removed the stinky Nyano Holo stuff
The HologramComponent has now been broken up into three Components, soon to be more. All the functions of the HologramSystem are chunked up and completely reconsidered. Prediction is cool.
…ity. Need to decide how the projector selection is done, and how to filter collisions.
…ng new functionality. The AIEye can now function as a camera-bound Hologram (commented out), work still needs to be done on making Hologram disks and servers cool to use, and I need to decide how to determine what a Hologram collides with.
RSI Diff Bot; head commit bc384d3 merging into 4b65cdf Resources/Textures/SimpleStation14/Effects/hologram_projection_beam.rsi
Resources/Textures/SimpleStation14/Mobs/Silicon/scutter.rsi
|
Resources/Prototypes/SimpleStation14/Entities/Mobs/Player/stationai.yml
Outdated
Show resolved
Hide resolved
# North: "0, 0.40" | ||
# East: "-0.15, 0" | ||
# South: "0, -0.20" | ||
# West: "-0.15, 0" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think these are upside down?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Scutters haven't been updated along with other stuff, and they'll probably want most of a redo in general.
- type: entity | ||
name: holo corgi | ||
description: "A hologramatic projection of a corgi, computed by the SAI and rendered by the station's cameras." | ||
id: MobCorgiHolo |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ditto for HoloCorgi as Scutter
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should probably just have human bodies? I think they might...
@@ -57,3 +57,6 @@ | |||
containers: | |||
board: !type:Container | |||
ents: [] | |||
- type: Tag | |||
tags: | |||
- Hardlight |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So that Holograms can interact with computers... Really not ideal, though.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
They can't do that!
The sAI can't
@@ -131,5 +131,8 @@ | |||
- type: DynamicPrice | |||
price: 150 | |||
- type: AccessReader | |||
- type: Tag |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Probably not needed, maybe good to have anyway? I could change collision to be an EntityWhitelist instead of tags and then just use the Component
|
||
public override void Initialize() | ||
{ | ||
base.Initialize(); | ||
|
||
SubscribeLocalEvent<HologramProjectedComponent, ComponentShutdown>(OnProjectedShutdown); | ||
} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
public override void Initialize() | |
{ | |
base.Initialize(); | |
SubscribeLocalEvent<HologramProjectedComponent, ComponentShutdown>(OnProjectedShutdown); | |
} | |
public override void Initialize() | |
{ | |
base.Initialize(); | |
SubscribeLocalEvent<HologramProjectedComponent, ComponentShutdown>(OnProjectedShutdown); | |
} | |
SubscribeLocalEvent<HologramProjectorComponent, SurveillanceCameraChangeStateEvent>((ent, comp, args) => CheckState(ent, comp)); | ||
SubscribeLocalEvent<HologramProjectorComponent, MapInitEvent>((ent, comp, args) => CheckState(ent, comp)); | ||
} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
||
public override void Initialize() | ||
{ | ||
base.Initialize(); | ||
SubscribeLocalEvent<HologramServerComponent, EntInsertedIntoContainerMessage>(OnEntInserted); | ||
SubscribeLocalEvent<HologramServerComponent, EntRemovedFromContainerMessage>(OnEntRemoved); | ||
SubscribeLocalEvent<HologramDiskComponent, AfterInteractEvent>(OnAfterInteract); | ||
SubscribeLocalEvent<HologramServerComponent, PowerChangedEvent>(OnPowerChanged); | ||
} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
public override void Initialize() | |
{ | |
base.Initialize(); | |
SubscribeLocalEvent<HologramServerComponent, EntInsertedIntoContainerMessage>(OnEntInserted); | |
SubscribeLocalEvent<HologramServerComponent, EntRemovedFromContainerMessage>(OnEntRemoved); | |
SubscribeLocalEvent<HologramDiskComponent, AfterInteractEvent>(OnAfterInteract); | |
SubscribeLocalEvent<HologramServerComponent, PowerChangedEvent>(OnPowerChanged); | |
} | |
public override void Initialize() | |
{ | |
base.Initialize(); | |
SubscribeLocalEvent<HologramServerComponent, EntInsertedIntoContainerMessage>(OnEntInserted); | |
SubscribeLocalEvent<HologramServerComponent, EntRemovedFromContainerMessage>(OnEntRemoved); | |
SubscribeLocalEvent<HologramDiskComponent, AfterInteractEvent>(OnAfterInteract); | |
SubscribeLocalEvent<HologramServerComponent, PowerChangedEvent>(OnPowerChanged); | |
} | |
Content.Server/SimpleStation14/Holograms/Systems/HologramServerSystem.cs
Outdated
Show resolved
Hide resolved
Content.Server/SimpleStation14/Holograms/Systems/HologramSystem.cs
Outdated
Show resolved
Hide resolved
Resources/Prototypes/SimpleStation14/Entities/Effects/hologram_effects.yml
Outdated
Show resolved
Hide resolved
Resources/Prototypes/SimpleStation14/Entities/Mobs/Player/hologram.yml
Outdated
Show resolved
Hide resolved
Resources/Textures/SimpleStation14/Effects/hologram_projection_beam.rsi/meta.json
Outdated
Show resolved
Hide resolved
"license": "", | ||
"copyright": "", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
!
Resources/Textures/SimpleStation14/Mobs/Silicon/scutter.rsi/meta.json
Outdated
Show resolved
Hide resolved
Co-authored-by: DEATHB4DEFEAT <[email protected]>
isHardLight: false | ||
collideTags: | ||
- Wall | ||
- Airlock |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Make it so chairs are interactable but only when anchored.
Requesting a chair be screwed down so you can sit in it is very funny.
A looping, very soft 'vwooom' sound effect that plays on whenever the hologram is currently not colliding with something they otherwise would be? |
|
||
var pref = (HumanoidCharacterProfile) _prefs.GetPreferences(mind.UserId.Value).SelectedCharacter; | ||
|
||
var mob = HoloFetchAndSpawn(pref, coords, "MobHologramProjected"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very hardcoded :P
Should Holograms collide with windows?
Getting some weird errors with the UI system that makes it not testable, but it works in theory. It's super crummy regardless, but it would work for putting Holograms in game.
system-hologram-phasing-appear-self = You materialize into being! | ||
system-hologram-phasing-appear-others = {$name} materializes into being! | ||
system-hologram-phasing-disappear-others = {$name} dematerializes in a fizz! | ||
system-hologram-phasing-death-self = You faze out of being! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
system-hologram-phasing-death-self = You faze out of being! | |
system-hologram-phasing-death-self = You phaze out of being! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤓
Description
Adds Holograms, an early game alternative to cloning. Coming back as a Hologram is one part trans humanist nightmare, one part mockery of the very fundamental aspects of life, and 100% not being alive!
Will describe more once features are done.
Soon ™️
Tasks
Media
Changelog
🆑