Added Jukebox (#26736)

* Added Jukebox, along with music for jukebox

* Fixed Jukebox meta.json copyright

* Removed songs I couldn't find a license for.

* Renamed files to solve check failures from spaces

* Added missing attributions.yml

* Fixed lack of description in Jukebox

* Jukebox is now constructable.

* Change Jukebox menu to FancyWindow

* Moved Jukebox messages out of jukebox component

* Removed Jukebox OnValueChanged.

* JukeboxComp now uses AutoGenerateComponentState

* Removed state code, since it's auto generated

* Fixed various Jukebox code to match conventions.

* Updated Standard.yml to match changed song list.

* fixes

* Jukebox workin

* Fix

* Polishing

* Finalising

* Revert

* bad

* jukey

* Reviews

* name

* Update submodule to 218.2.0

---------

Co-authored-by: iNVERTED <alextjorgensen@gmail.com>
This commit is contained in:
metalgearsloth
2024-04-17 19:27:00 +10:00
committed by GitHub
parent 177d69cb98
commit 2db374988c
27 changed files with 907 additions and 1 deletions

View File

@@ -0,0 +1,35 @@
- type: jukebox
id: FlipFlap
name: X-CEED - Flip Flap
path:
path: /Audio/Jukebox/flip-flap.ogg
- type: jukebox
id: Tintin
name: Jeroen Tel - Tintin on the Moon
path:
path: /Audio/Jukebox/title3.ogg
- type: jukebox
id: Thunderdome
name: MashedByMachines - Sector 11
path:
path: /Audio/Jukebox/sector11.ogg
- type: jukebox
id: Constellations
name: Qwertyquerty - Constellations
path:
path: /Audio/Jukebox/constellations.ogg
- type: jukebox
id: Drifting
name: Qwertyquerty - Drifting
path:
path: /Audio/Jukebox/drifting.ogg
- type: jukebox
id: starlight
name: Qwertyquerty - Starlight
path:
path: /Audio/Jukebox/starlight.ogg

View File

@@ -1369,4 +1369,18 @@
MatterBin: 1
Manipulator: 3
materialRequirements:
Glass: 1
Glass: 1
- type: entity
parent: BaseMachineCircuitboard
id: JukeboxCircuitBoard
name: jukebox machine board
description: A machine printed circuit board for a jukebox.
components:
- type: MachineBoard
prototype: Jukebox
materialRequirements:
WoodPlank: 5
Steel: 2
Glass: 5
Cable: 2

View File

@@ -0,0 +1,59 @@
- type: entity
id: Jukebox
name: jukebox
parent: [ BaseMachinePowered, ConstructibleMachine ]
description: A machine capable of playing a wide variety of tunes. Enjoyment not guaranteed.
components:
- type: Sprite
sprite: Structures/Machines/jukebox.rsi
layers:
- state: "off"
map: ["enum.JukeboxVisualLayers.Base"]
- type: Transform
anchored: true
- type: Jukebox
onState: on
offState: off
selectState: select
- type: Machine
board: JukeboxCircuitBoard
- type: Appearance
- type: ApcPowerReceiver
powerLoad: 100
- type: ExtensionCableReceiver
- type: ActivatableUI
key: enum.JukeboxUiKey.Key
- type: ActivatableUIRequiresPower
- type: UserInterface
interfaces:
- key: enum.JukeboxUiKey.Key
type: JukeboxBoundUserInterface
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 75
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:SpawnEntitiesBehavior
spawn:
SheetSteel1:
min: 1
max: 2
- type: Physics
bodyType: Static
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.25,-0.45,0.25,0.45"
mask:
- MachineMask
layer:
- MachineLayer
density: 200

View File

@@ -446,6 +446,7 @@
- TelecomServerCircuitboard
- MassMediaCircuitboard
- ReagentGrinderIndustrialMachineCircuitboard
- JukeboxCircuitBoard
- type: MaterialStorage
whitelist:
tags:

View File

@@ -965,3 +965,11 @@
Steel: 100
Glass: 900
Gold: 100
- type: latheRecipe
id: JukeboxCircuitBoard
result: JukeboxCircuitBoard
completetime: 4
materials:
Steel: 100
Glass: 900

View File

@@ -70,6 +70,7 @@
- BorgModuleClowning
- DawInstrumentMachineCircuitboard
- MassMediaCircuitboard
- JukeboxCircuitBoard
- type: technology
id: RoboticCleanliness