Singularity, Particle Accelerator & Radiation Collectors (#2169)

* basic radiation generator

* might need this

* thonk

* big thonk

* oop

* e

* werks

* sprite

* oopsy woopsy

* radiation

* clean up file

* makes it work, probably

* minor fixes

* resources

* progress on component

* this will no longer be necessary

* radiation go brrrr

* finally fix container issues

* out var

Co-authored-by: Remie Richards <remierichards@gmail.com>

* second out fix

* another out fix

Co-authored-by: Remie Richards <remierichards@gmail.com>

* switch case

* fix switch

* sound and improvements

* nullable

* basic containment field system

* ensure alignment

* fix beam placement logic

* field generation fully working

* fix potential crash

* working containment functionality

* extremely basic emitter functionality

* fix radiation panel naming

* emitter stuff

* oopsies

* fixes

* some fixes

* cleanup

* small fix and move emitter file

* add sprite resources for PA

* slight rework of the singulo
adds rads

* pushing for smugleaf :)

* added radiationpanels

* some fixes for the singulo

* containmentfield

* pa wip

* progress

* pa working

* emitter fix

* works :)

* ui works

* some work on ui & pa

* progress

* ui work & misc fixes

* GREYSCALE

* pa ui polish
containmentfieldgen rework

* singulo rework
added snapgrid

* getcomponent get out

* singulo rework
added collisiongroups underplating & passable

* yaml work:
- collision boxes
- singulo now unshaded

* no unlit

* misc changes

* pa wires

* add usability check

* nullable enable

* minor fix

* power need added

* reenables containment field energy drain
menu close button
singularity collider fix

* sprite replacement

* finished singulo pulling

* pjb fixes

* fixing sprites & minor adjustments

* decrease containmentfield power

* some yml adjustments

* unlit layers
singulogenerator

* singulogen

* everything works just not the powergetting on the pa
i wanna die

* Adds PA construction graphs, PA construction works

* Snap to grid parts when completing construction

* updated to newest master

* inb4 i work on power

* fixes upstream merge
adds power need to particleaccelerator

* properly implements power & apc power

* Emitters are now fancy.

* I have actually no idea how this happened.

* Give PA a wiring LayoutId

* PA is an acronym

* indicators
fixes hacking

* Singulo is a word you blasphemous IDE.

* Rewrite the PA.

* Fancy names for PA parts.

* Wiring fixes, strength wire cutting.

* fixes projectile & ignores components

* nullability errors

* fixes integration tests

Co-authored-by: unusualcrow <unusualcrow@protonmail.com>
Co-authored-by: L.E.D <10257081+unusualcrow@users.noreply.github.com>
Co-authored-by: Remie Richards <remierichards@gmail.com>
Co-authored-by: Víctor Aguilera Puerto <zddm@outlook.es>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
This commit is contained in:
Paul Ritter
2020-10-28 19:19:47 +01:00
committed by GitHub
parent 74fe2609f5
commit 6a0aa9b72f
171 changed files with 4357 additions and 42 deletions

View File

@@ -10,7 +10,7 @@
anchored: true
shapes:
- !type:PhysShapeAabb
bounds: "-0.5, -0.5, 0.3, 0.5"
bounds: "-0.45, -0.45, 0.05, 0.45"
mask:
- Impassable
- MobImpassable

View File

@@ -11,6 +11,7 @@
- type: Physics
shapes:
- !type:PhysShapeAabb
layer: [MobMask]
mask:
- Impassable
- MobImpassable

View File

@@ -55,6 +55,11 @@
components:
- type: Sprite
state: plant-25
- type: Physics
shapes:
- !type:PhysShapeAabb
bounds: "-0.47,-0.25,0.05,0.25"
layer: [ Passable ]
- type: entity
id: PottedPlantBioluminscent

View File

@@ -27,6 +27,11 @@
- type: Sprite
state: chair
color: "#8e9799"
- type: Physics
shapes:
- !type:PhysShapeAabb
bounds: "-0.45, -0.45, 0.05, 0.45"
layer: [ Passable ]
- type: entity
name: stool
@@ -37,6 +42,11 @@
- type: Sprite
state: stool_base
color: "#8e9799"
- type: Physics
shapes:
- !type:PhysShapeAabb
bounds: "-0.5, -0.25, 0.05, 0.25"
layer: [ Passable ]
- type: entity
name: bar stool
@@ -46,6 +56,11 @@
- type: Sprite
state: bar_stool
color: "white"
- type: Physics
shapes:
- !type:PhysShapeAabb
bounds: "-0.5, -0.2, 0.2, 0.25"
layer: [ Passable ]
- type: entity
name: white office chair
@@ -55,11 +70,16 @@
- type: Rotatable
- type: Sprite
state: officechair_white
- type: Physics
shapes:
- !type:PhysShapeAabb
bounds: "-0.49, -0.25, 0.37, 0.25"
layer: [ Passable ]
- type: entity
name: dark office chair
id: ChairOfficeDark
parent: SeatBase
parent: ChairOfficeLight
components:
- type: Sprite
state: officechair_dark
@@ -72,6 +92,11 @@
components:
- type: Sprite
state: comfychair_preview
- type: Physics
shapes:
- !type:PhysShapeAabb
bounds: "-0.45, -0.3, 0.35, 0.3"
layer: [ MobMask ]
- type: entity
name: wooden chair
@@ -81,3 +106,8 @@
- type: Sprite
state: wooden_chair
color: "white"
- type: Physics
shapes:
- !type:PhysShapeAabb
bounds: "-0.37, -0.25, 0.49, 0.24"
layer: [ Passable ]

View File

@@ -6,6 +6,10 @@
- type: Clickable
- type: InteractionOutline
- type: Physics
shapes:
- !type:PhysShapeAabb
bounds: "-0.5,-0.5,0.5,0.5"
layer: [ Passable ]
- type: Sprite
netsync: false
sprite: Constructible/Tiles/catwalk.rsi

View File

@@ -0,0 +1,348 @@
- type: entity
id: ParticleAcceleratorBase
abstract: true
placement:
mode: SnapgridCenter
components:
- type: InteractionOutline
- type: Anchorable
- type: Physics
mass: 25
anchored: true
shapes:
- !type:PhysShapeAabb
bounds: "-0.49,-0.49,0.49,0.49"
layer:
- Opaque
- Impassable
- MobImpassable
- VaultImpassable
IsScrapingFloor: true
- type: SnapGrid
offset: Center
- type: Pullable
- type: Clickable
- type: entity
name: Particles
description: "Accelerated particles."
id: ParticlesProjectile
parent: BulletBase
components:
- type: Sprite
sprite: Constructible/Power/PA/particle.rsi
state: particle0
shader: unshaded
- type: Projectile
delete_on_collide: false
soundHit: /Audio/Weapons/Guns/Hits/bullet_hit.ogg
damages:
Radiation: 10
- type: Physics
hard: false
shapes:
- !type:PhysShapeAabb
bounds: "-0.48,-0.48,0.48,0.48"
layer: [None]
mask:
- MobMask
- Clickable
- type: ParticleProjectile
# Working PA
- type: entity
parent: ParticleAcceleratorBase
id: ParticleAcceleratorControlBox
name: Particle Accelerator Control Computer
description: This controls the density of the particles.
components:
- type: Sprite
sprite: Constructible/Power/PA/control_box.rsi
layers:
- state: control_boxc
map: [ "enum.ParticleAcceleratorVisualLayers.Base" ]
- state: control_box_unlitp
map: [ "enum.ParticleAcceleratorVisualLayers.Unlit" ]
shader: unshaded
visible: false
- type: Appearance
visuals:
- type: ParticleAcceleratorPartVisualizer
baseState: control_box_unlit
- type: PowerReceiver
- type: ParticleAcceleratorControlBox
- type: Construction
graph: particleAcceleratorControlBox
node: completed
- type: UserInterface
interfaces:
- key: enum.ParticleAcceleratorControlBoxUiKey.Key
type: ParticleAcceleratorBoundUserInterface
- key: enum.WiresUiKey.Key
type: WiresBoundUserInterface
- type: Wires
BoardName: "Mk2 Particle Accelerator"
LayoutId: ParticleAccelerator
- type: entity
parent: ParticleAcceleratorBase
id: ParticleAcceleratorEmitterLeft
name: EM Containment Grid
suffix: Left
description: This launchs the Alpha particles, might not want to stand near this end.
components:
- type: Sprite
sprite: Constructible/Power/PA/emitter_left.rsi
layers:
- state: emitter_leftc
map: [ "enum.ParticleAcceleratorVisualLayers.Base" ]
- state: emitter_left_unlitp
map: [ "enum.ParticleAcceleratorVisualLayers.Unlit" ]
shader: unshaded
visible: false
- type: Appearance
visuals:
- type: ParticleAcceleratorPartVisualizer
baseState: emitter_left_unlit
- type: ParticleAcceleratorEmitter
emitterType: Left
- type: Construction
graph: particleAcceleratorEmitterLeft
node: completed
- type: entity
parent: ParticleAcceleratorBase
id: ParticleAcceleratorEmitterCenter
name: EM Containment Grid
suffix: Center
description: This launchs the Alpha particles, might not want to stand near this end.
components:
- type: Sprite
sprite: Constructible/Power/PA/emitter_center.rsi
layers:
- state: emitter_centerc
map: [ "enum.ParticleAcceleratorVisualLayers.Base" ]
- state: emitter_center_unlitp
map: [ "enum.ParticleAcceleratorVisualLayers.Unlit" ]
shader: unshaded
visible: false
- type: Appearance
visuals:
- type: ParticleAcceleratorPartVisualizer
baseState: emitter_center_unlit
- type: ParticleAcceleratorEmitter
emitterType: Center
- type: Construction
graph: particleAcceleratorEmitterCenter
node: completed
- type: entity
parent: ParticleAcceleratorBase
id: ParticleAcceleratorEmitterRight
name: EM Containment Grid
suffix: Right
description: This launchs the Alpha particles, might not want to stand near this end.
components:
- type: Sprite
sprite: Constructible/Power/PA/emitter_right.rsi
layers:
- state: emitter_rightc
map: [ "enum.ParticleAcceleratorVisualLayers.Base" ]
- state: emitter_right_unlitp
map: [ "enum.ParticleAcceleratorVisualLayers.Unlit" ]
shader: unshaded
visible: false
- type: Appearance
visuals:
- type: ParticleAcceleratorPartVisualizer
baseState: emitter_right_unlit
- type: ParticleAcceleratorEmitter
emitterType: Right
- type: Construction
graph: particleAcceleratorEmitterRight
node: completed
- type: entity
parent: ParticleAcceleratorBase
id: ParticleAcceleratorEndCap
name: Alpha Particle Generation Array
description: This is where Alpha particles are generated from [REDACTED].
components:
- type: Sprite
sprite: Constructible/Power/PA/end_cap.rsi
state: end_capc
- type: ParticleAcceleratorEndCap
- type: Construction
graph: particleAcceleratorEndCap
node: completed
- type: entity
parent: ParticleAcceleratorBase
id: ParticleAcceleratorFuelChamber
name: EM Acceleration Chamber
description: This is where the Alpha particles are accelerated to radical speeds.
components:
- type: Sprite
sprite: Constructible/Power/PA/fuel_chamber.rsi
layers:
- state: fuel_chamberc
map: [ "enum.ParticleAcceleratorVisualLayers.Base" ]
- state: fuel_chamber_unlitp
map: [ "enum.ParticleAcceleratorVisualLayers.Unlit" ]
shader: unshaded
visible: false
- type: Appearance
visuals:
- type: ParticleAcceleratorPartVisualizer
baseState: fuel_chamber_unlit
- type: ParticleAcceleratorFuelChamber
- type: Construction
graph: particleAcceleratorFuelChamber
node: completed
- type: entity
parent: ParticleAcceleratorBase
id: ParticleAcceleratorPowerBox
name: Particle Focusing EM Lens
description: This uses electromagnetic waves to focus the Alpha-Particles.
components:
- type: Sprite
sprite: Constructible/Power/PA/power_box.rsi
layers:
- state: power_boxc
map: [ "enum.ParticleAcceleratorVisualLayers.Base" ]
- state: power_box_unlitp
map: [ "enum.ParticleAcceleratorVisualLayers.Unlit" ]
shader: unshaded
visible: false
- type: Appearance
visuals:
- type: ParticleAcceleratorPartVisualizer
baseState: power_box_unlit
- type: ParticleAcceleratorPowerBox
- type: PowerConsumer
voltage: High
- type: NodeContainer
nodes:
- !type:AdjacentNode
nodeGroupID: HVPower
- type: Construction
graph: particleAcceleratorPowerBox
node: completed
# Unfinished PA
- type: entity
parent: ParticleAcceleratorBase
id: ParticleAcceleratorControlBoxUnfinished
name: Particle Accelerator Control Computer
suffix: Unfinished
description: This controls the density of the particles. It looks unfinished.
components:
- type: Physics
anchored: false
- type: Sprite
sprite: Constructible/Power/PA/control_box.rsi
state: control_box
- type: Construction
graph: particleAcceleratorControlBox
node: start
- type: entity
parent: ParticleAcceleratorBase
id: ParticleAcceleratorEmitterLeftUnfinished
name: EM Containment Grid
suffix: Unfinished, Left
description: This launchs the Alpha particles, might not want to stand near this end. It looks unfinished.
components:
- type: Physics
anchored: false
- type: Sprite
sprite: Constructible/Power/PA/emitter_left.rsi
state: emitter_left
- type: Construction
graph: particleAcceleratorEmitterLeft
node: start
- type: entity
parent: ParticleAcceleratorBase
id: ParticleAcceleratorEmitterCenterUnfinished
name: EM Containment Grid
suffix: Unfinished, Center
description: This launchs the Alpha particles, might not want to stand near this end. It looks unfinished.
components:
- type: Physics
anchored: false
- type: Sprite
sprite: Constructible/Power/PA/emitter_center.rsi
state: emitter_center
- type: Construction
graph: particleAcceleratorEmitterCenter
node: start
- type: entity
parent: ParticleAcceleratorBase
id: ParticleAcceleratorEmitterRightUnfinished
name: EM Containment Grid
suffix: Unfinished, Right
description: This launchs the Alpha particles, might not want to stand near this end. It looks unfinished.
components:
- type: Physics
anchored: false
- type: Sprite
sprite: Constructible/Power/PA/emitter_right.rsi
state: emitter_right
- type: Construction
graph: particleAcceleratorEmitterRight
node: start
- type: entity
parent: ParticleAcceleratorBase
id: ParticleAcceleratorEndCapUnfinished
name: Alpha Particle Generation Array
suffix: Unfinished
description: This is where Alpha particles are generated from [REDACTED]. It looks unfinished.
components:
- type: Physics
anchored: false
- type: Sprite
sprite: Constructible/Power/PA/end_cap.rsi
state: end_cap
- type: Construction
graph: particleAcceleratorEndCap
node: start
- type: entity
parent: ParticleAcceleratorBase
id: ParticleAcceleratorFuelChamberUnfinished
name: EM Acceleration Chamber
suffix: Unfinished
description: This is where the Alpha particles are accelerated to radical speeds. It looks unfinished.
components:
- type: Physics
anchored: false
- type: Sprite
sprite: Constructible/Power/PA/fuel_chamber.rsi
state: fuel_chamber
- type: Construction
graph: particleAcceleratorFuelChamber
node: start
- type: entity
parent: ParticleAcceleratorBase
id: ParticleAcceleratorPowerBoxUnfinished
name: Particle Focusing EM Lens
suffix: Unfinished
description: This uses electromagnetic waves to focus the Alpha-Particles. It looks unfinished.
components:
- type: Physics
anchored: false
- type: Sprite
sprite: Constructible/Power/PA/power_box.rsi
state: power_box
- type: Construction
graph: particleAcceleratorPowerBox
node: start

View File

@@ -153,8 +153,9 @@
- type: InteractionOutline
- type: Physics
shapes:
- !type:PhysShapeAabb
bounds: "-0.25, -0.25, 0.25, 0.3"
- !type:PhysShapeAabb
bounds: "-0.25, -0.25, 0.25, 0.3"
layer: [ Passable ]
- type: SnapGrid
offset: Center
- type: Sprite

View File

@@ -13,6 +13,7 @@
anchored: true
shapes:
- !type:PhysShapeAabb
bounds: "-0.4, -0.45, 0.45, 0.45"
mask:
- Impassable
- MobImpassable

View File

@@ -6,8 +6,12 @@
mode: SnapgridCenter
components:
- type: Clickable
- type: InteractionOutline
- type: Physics
shapes:
- !type:PhysShapeAabb
bounds: "-0.5, -0.5, 0.5, 0.5"
layer: [ Underplating ]
- type: InteractionOutline
- type: SnapGrid
offset: Center
- type: Sprite

View File

@@ -12,6 +12,7 @@
shapes:
- !type:PhysShapeAabb
bounds: "-0.49,-0.49,0.49,0.49"
layer: [Passable]
mask:
- Impassable
- MobImpassable

View File

@@ -35,7 +35,6 @@
drawdepth: BelowFloor
sprite: Constructible/Power/disposal.rsi
state: conpipe-s
- type: DisposalTransit
- type: Appearance
visuals:
@@ -43,6 +42,11 @@
state_free: conpipe-s
state_anchored: pipe-s
state_broken: pipe-b
- type: Physics
shapes:
- !type:PhysShapeAabb
bounds: "-0.5,-0.25,0.5,0.25"
layer: [ Underplating ]
- type: entity
id: DisposalTagger
@@ -54,7 +58,6 @@
drawdepth: BelowFloor
sprite: Constructible/Power/disposal.rsi
state: conpipe-tagger
- type: DisposalTagger
- type: Appearance
visuals:
@@ -66,6 +69,11 @@
interfaces:
- key: enum.DisposalTaggerUiKey.Key
type: DisposalTaggerBoundUserInterface
- type: Physics
shapes:
- !type:PhysShapeAabb
bounds: "-0.5,-0.25,0.5,0.25"
layer: [ Underplating ]
- type: entity
id: DisposalTrunk
@@ -77,7 +85,6 @@
drawdepth: BelowFloor
sprite: Constructible/Power/disposal.rsi
state: conpipe-t
- type: DisposalEntry
- type: Appearance
visuals:
@@ -85,6 +92,11 @@
state_free: conpipe-t
state_anchored: pipe-t
state_broken: pipe-b
- type: Physics
shapes:
- !type:PhysShapeAabb
bounds: "-0.5,-0.25,0.4,0.25"
layer: [ Underplating ]
- type: entity
id: DisposalUnit
@@ -105,7 +117,6 @@
map: ["enum.DisposalUnitVisualLayers.Handle"]
- state: dispover-ready
map: ["enum.DisposalUnitVisualLayers.Light"]
- type: PowerReceiver
- type: DisposalUnit
flushTime: 2
@@ -115,7 +126,7 @@
anchored: true
shapes:
- !type:PhysShapeAabb
bounds: "-0.35,-0.3,0.35,0.3"
bounds: "-0.3,-0.35,0.3,0.35"
mask:
- Impassable
- MobImpassable
@@ -162,7 +173,6 @@
drawdepth: BelowFloor
sprite: Constructible/Power/disposal.rsi
state: conpipe-j1s
- type: DisposalRouter
degrees:
- 0
@@ -180,17 +190,21 @@
interfaces:
- key: enum.DisposalRouterUiKey.Key
type: DisposalRouterBoundUserInterface
- type: Physics
shapes:
- !type:PhysShapeAabb
bounds: "-0.5,-0.5,0.5,0.25"
layer: [ Underplating ]
- type: entity
id: DisposalRouterFlipped
parent: DisposalRouter
name: flipped router junction
suffix: flipped
components:
- type: Sprite
drawdepth: BelowFloor
sprite: Constructible/Power/disposal.rsi
state: conpipe-j2s
- type: DisposalRouter
degrees:
- 0
@@ -204,6 +218,11 @@
state_broken: pipe-b
- type: Flippable
entity: DisposalRouter
- type: Physics
shapes:
- !type:PhysShapeAabb
bounds: "-0.5,-0.25,0.5,0.5"
layer: [ Underplating ]
- type: entity
id: DisposalJunction
@@ -215,7 +234,6 @@
drawdepth: BelowFloor
sprite: Constructible/Power/disposal.rsi
state: conpipe-j1
- type: DisposalJunction
degrees:
- 0
@@ -229,17 +247,21 @@
state_broken: pipe-b
- type: Flippable
entity: DisposalJunctionFlipped
- type: Physics
shapes:
- !type:PhysShapeAabb
bounds: "-0.5,-0.5,0.5,0.25"
layer: [ Underplating ]
- type: entity
id: DisposalJunctionFlipped
parent: DisposalJunction
name: flipped disposal junction
suffix: flipped
components:
- type: Sprite
drawdepth: BelowFloor
sprite: Constructible/Power/disposal.rsi
state: conpipe-j2
- type: DisposalJunction
degrees:
- 0
@@ -253,6 +275,11 @@
state_broken: pipe-b
- type: Flippable
entity: DisposalJunction
- type: Physics
shapes:
- !type:PhysShapeAabb
bounds: "-0.5,-0.25,0.5,0.5"
layer: [ Underplating ]
- type: entity
id: DisposalYJunction
@@ -264,7 +291,6 @@
drawdepth: BelowFloor
sprite: Constructible/Power/disposal.rsi
state: conpipe-y
- type: DisposalJunction
degrees:
- 0
@@ -276,6 +302,11 @@
state_free: conpipe-y
state_anchored: pipe-y
state_broken: pipe-b
- type: Physics
shapes:
- !type:PhysShapeAabb
bounds: "-0.5,-0.5,0.25,0.5"
layer: [ Underplating ]
- type: entity
id: DisposalBend
@@ -287,7 +318,6 @@
drawdepth: BelowFloor
sprite: Constructible/Power/disposal.rsi
state: conpipe-c
- type: DisposalBend
- type: Appearance
visuals:
@@ -295,3 +325,8 @@
state_free: conpipe-c
state_anchored: pipe-c
state_broken: pipe-b
- type: Physics
shapes:
- !type:PhysShapeAabb
bounds: "-0.5,-0.5,0.25,0.25"
layer: [ Underplating ]

View File

@@ -5,11 +5,14 @@
- type: Clickable
- type: InteractionOutline
- type: Physics
shapes:
- !type:PhysShapeAabb
bounds: "-0.45, -0.95, 0.45, 1"
layer: [ Passable ]
- type: Sprite
drawdepth: WallTops
sprite: Constructible/Misc/barsign.rsi
state: empty
- type: PowerReceiver
- type: BarSign
@@ -43,5 +46,10 @@
components:
- type: BarSign
current: CyberSylph
- type: Physics
shapes:
- !type:PhysShapeAabb
bounds: "-0.45, -0.95, 0.95, 1.5"
layer: [ Passable ]
- type: Sprite
drawdepth: Ghosts

View File

@@ -5,6 +5,10 @@
- type: Clickable
- type: InteractionOutline
- type: Physics
shapes:
- !type:PhysShapeAabb
bounds: "-0.45, -0.15, 0.45, 0.35"
layer: [ Passable ]
- type: LoopingSound
- type: Sprite
sprite: Constructible/Lighting/light_tube.rsi
@@ -48,6 +52,11 @@
energy: 1.0
enabled: false
offset: "-0.5, 0"
- type: Physics
shapes:
- !type:PhysShapeAabb
bounds: "0, 0.1, 0.25, 0.1"
layer: [ Passable ]
- type: PoweredLight
bulb: Bulb
- type: PowerReceiver

View File

@@ -0,0 +1,63 @@
- type: entity
name: Emitter
description: "A machine that fires bolts of energy, used for powering containment fields at a safe distance."
id: Emitter
placement:
mode: SnapgridCenter
components:
- type: InteractionOutline
- type: Clickable
- type: Physics
anchored: true
shapes:
- !type:PhysShapeAabb
bounds: "-0.5, -0.5, 0.5, 0.5"
layer: [MobMask, Opaque]
- type: SnapGrid
offset: Center
- type: Sprite
sprite: Constructible/Power/emitter.rsi
layers:
- state: emitter2
- state: emitter-beam
shader: unshaded
visible: false
- state: emitter-lock
shader: unshaded
visible: false
- type: Emitter
- type: PowerConsumer
voltage: Medium
- type: NodeContainer
nodes:
- !type:AdjacentNode
nodeGroupID: MVPower
- type: Anchorable
- type: Pullable
- type: Appearance
visuals:
- type: EmitterVisualizer
- type: AccessReader
access: [[ "Engineering" ]]
- type: entity
name: Emitter Bolt
description: "A bolt of energy."
id: EmitterBolt
parent: BulletBase
components:
- type: Sprite
sprite: Constructible/Power/emitter.rsi
state: ''
layers:
- state: emitter_projectile
shader: unshaded
- type: Icon
sprite: Constructible/Power/emitter.rsi
state: emitter_projectile
- type: EmitterBoltComponent
- type: Projectile
soundHit: /Audio/Weapons/Guns/Hits/bullet_hit.ogg
damages:
Heat: 20

View File

@@ -0,0 +1,133 @@
- type: entity
name: "Gravitational Singularity"
description: "A mesmerizing swirl of darkness that sucks in everything.\nIf it's moving towards you, run."
id: Singularity
components:
- type: Clickable
- type: Physics
anchored: false
shapes:
- !type:PhysShapeCircle
radius: 0.5
layer: [Impassable]
mask:
- AllMask
mass: 5
- type: Singularity
- type: RadiationPulse
range: 15
decay: false
- type: Sprite
sprite: Effects/Singularity/singularity_1.rsi
state: singularity_1
- type: Icon
sprite: Effects/Singularity/singularity_1.rsi
state: singularity_1
drawdepth: Items
- type: entity
id: RadiationCollector
name: Radiation Collector
description: A machine that collects Radiation and turns it into power.
placement:
mode: SnapgridCenter
components:
- type: Clickable
- type: InteractionOutline
- type: Physics
anchored: true
shapes:
- !type:PhysShapeAabb
bounds: "-0.5, -0.5, 0.5, 0.5"
layer: [MobMask, Opaque]
- type: SnapGrid
offset: Center
- type: Sprite
sprite: Constructible/Power/radiation_collector.rsi
layers:
- state: ca_on
map: ["enum.RadiationCollectorVisualLayers.Main"]
- type: Appearance
visuals:
- type: RadiationCollectorVisualizer
- type: NodeContainer
nodes:
- !type:AdjacentNode
nodeGroupID: HVPower
- type: RadiationCollector
- type: Anchorable
- type: Pullable
- type: entity
name: Containment Field Generator
description: "A machine that generates a containment field when powered by an emitter.\nKeeps the Singularity docile."
id: ContainmentFieldGenerator
placement:
mode: SnapgridCenter
components:
- type: InteractionOutline
- type: Clickable
- type: Physics
anchored: true
shapes:
- !type:PhysShapeAabb
bounds: "-0.5, -0.5, 0.5, 0.5"
layer: [MobMask, Opaque]
- type: SnapGrid
offset: Center
- type: Sprite
sprite: Constructible/Power/field_generator.rsi
state: Field_Gen
- type: Icon
sprite: Constructible/Power/field_generator.rsi
state: Field_Gen
- type: ContainmentFieldGenerator
- type: Anchorable
- type: Pullable
- type: entity
name: Containment Field
description: "A containment field that repels gravitational singularities."
id: ContainmentField
placement:
mode: SnapgridCenter
components:
- type: InteractionOutline
- type: Clickable
- type: Physics
anchored: true
shapes:
- !type:PhysShapeAabb
bounds: "-0.5, -0.5, 0.5, 0.5"
layer: [MobMask, Opaque]
- type: SnapGrid
offset: Center
- type: Sprite
sprite: Effects/contain_f.rsi
state: Contain_F
- type: Icon
sprite: Effects/contain_f.rsi
state: Contain_F
- type: ContainmentField
- type: entity
name: Gravitational Singularity Generator
description: An Odd Device which produces a Gravitational Singularity when set up.
id: SinguloGenerator
components:
- type: Sprite
sprite: Effects/Singularity/singulo_gen.rsi
state: singulo_gen
- type: SingularityGenerator
- type: InteractionOutline
- type: Clickable
- type: Physics
anchored: true
shapes:
- !type:PhysShapeAabb
bounds: "-0.5, -0.5, 0.5, 0.5"
layer: [ MobMask ]
- type: SnapGrid
offset: Center
- type: Anchorable
- type: Pullable