diff --git a/Content.Client/Audio/Jukebox/JukeboxBoundUserInterface.cs b/Content.Client/Audio/Jukebox/JukeboxBoundUserInterface.cs index 865dfc478d0..fb347512cce 100644 --- a/Content.Client/Audio/Jukebox/JukeboxBoundUserInterface.cs +++ b/Content.Client/Audio/Jukebox/JukeboxBoundUserInterface.cs @@ -83,10 +83,10 @@ public void SetTime(float time) { var sentTime = time; - // You may be wondering, what the fuck is this - // Well we want to be able to predict the playback slider change, of which there are many ways to do it + // You may be wondering: "What is this?" + // Well, we want to be able to predict the playback slider change, of which there are many ways to do it // We can't just use SendPredictedMessage because it will reset every tick and audio updates every frame - // so it will go BRRRRT + // so it will go BRR // Using ping gets us close enough that it SHOULD, MOST OF THE TIME, fall within the 0.1 second tolerance // that's still on engine so our playback position never gets corrected. if (EntMan.TryGetComponent(Owner, out JukeboxComponent? jukebox) && diff --git a/Content.Client/Audio/Jukebox/JukeboxMenu.xaml.cs b/Content.Client/Audio/Jukebox/JukeboxMenu.xaml.cs index e0904eece86..a7ea713e1ff 100644 --- a/Content.Client/Audio/Jukebox/JukeboxMenu.xaml.cs +++ b/Content.Client/Audio/Jukebox/JukeboxMenu.xaml.cs @@ -1,11 +1,10 @@ +using System.Linq; using Content.Shared.Audio.Jukebox; using Robust.Client.Audio; using Robust.Client.AutoGenerated; -using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.XAML; using Robust.Shared.Audio.Components; -using Robust.Shared.Input; using Robust.Shared.Prototypes; using Robust.Shared.Timing; using FancyWindow = Content.Client.UserInterface.Controls.FancyWindow; @@ -27,6 +26,7 @@ public sealed partial class JukeboxMenu : FancyWindow /// True if playing, false if paused. /// public event Action? OnPlayPressed; + public event Action? OnStopPressed; public event Action>? OnSongSelected; public event Action? SetTime; @@ -88,7 +88,13 @@ public void Populate(IEnumerable jukeboxProtos) { MusicList.Clear(); - foreach (var entry in jukeboxProtos) + // Sort songs by entry name, ignoring any special characters by targeting letters and digits first. + var sortedSongs = jukeboxProtos + .OrderBy(e => new string(e.Name.Where(char.IsLetterOrDigit).ToArray())) + .ToList(); + + // Add the sorted entries into the available roster. + foreach (var entry in sortedSongs) { MusicList.AddItem(entry.Name, metadata: entry.ID); } @@ -130,7 +136,8 @@ protected override void FrameUpdate(FrameEventArgs args) if (_entManager.TryGetComponent(_audio, out AudioComponent? audio)) { - DurationLabel.Text = $@"{TimeSpan.FromSeconds(audio.PlaybackPosition):mm\:ss} / {_audioSystem.GetAudioLength(audio.FileName):mm\:ss}"; + DurationLabel.Text = + $@"{TimeSpan.FromSeconds(audio.PlaybackPosition):mm\:ss} / {_audioSystem.GetAudioLength(audio.FileName):mm\:ss}"; } else { diff --git a/Content.Client/Audio/Jukebox/JukeboxSystem.cs b/Content.Client/Audio/Jukebox/JukeboxSystem.cs index dd4a5bbb9b0..e5ee5e69d43 100644 --- a/Content.Client/Audio/Jukebox/JukeboxSystem.cs +++ b/Content.Client/Audio/Jukebox/JukeboxSystem.cs @@ -5,7 +5,6 @@ namespace Content.Client.Audio.Jukebox; - public sealed class JukeboxSystem : SharedJukeboxSystem { [Dependency] private readonly IPrototypeManager _protoManager = default!; @@ -34,9 +33,9 @@ private void OnProtoReload(PrototypesReloadedEventArgs obj) if (!obj.WasModified()) return; - var query = AllEntityQuery(); + var jukeboxQuery = AllEntityQuery(); - while (query.MoveNext(out var uid, out _, out var ui)) + while (jukeboxQuery.MoveNext(out var uid, out _, out var ui)) { if (!_uiSystem.TryGetOpenUi((uid, ui), JukeboxUiKey.Key, out var bui)) continue; @@ -59,7 +58,10 @@ private void OnAnimationCompleted(EntityUid uid, JukeboxComponent component, Ani return; if (!TryComp(uid, out var appearance) || - !_appearanceSystem.TryGetData(uid, JukeboxVisuals.VisualState, out var visualState, appearance)) + !_appearanceSystem.TryGetData(uid, + JukeboxVisuals.VisualState, + out var visualState, + appearance)) { visualState = JukeboxVisualState.On; } @@ -81,7 +83,10 @@ private void OnAppearanceChange(EntityUid uid, JukeboxComponent component, ref A UpdateAppearance(uid, visualState, component, args.Sprite); } - private void UpdateAppearance(EntityUid uid, JukeboxVisualState visualState, JukeboxComponent component, SpriteComponent sprite) + private void UpdateAppearance(EntityUid uid, + JukeboxVisualState visualState, + JukeboxComponent component, + SpriteComponent sprite) { SetLayerState(JukeboxVisualLayers.Base, component.OffState, sprite); @@ -101,17 +106,21 @@ private void UpdateAppearance(EntityUid uid, JukeboxVisualState visualState, Juk } } - private void PlayAnimation(EntityUid uid, JukeboxVisualLayers layer, string? state, float animationTime, SpriteComponent sprite) + private void PlayAnimation(EntityUid uid, + JukeboxVisualLayers layer, + string? state, + float animationTime, + SpriteComponent sprite) { if (string.IsNullOrEmpty(state)) return; - if (!_animationPlayer.HasRunningAnimation(uid, state)) - { - var animation = GetAnimation(layer, state, animationTime); - sprite.LayerSetVisible(layer, true); - _animationPlayer.Play(uid, animation, state); - } + if (_animationPlayer.HasRunningAnimation(uid, state)) + return; // Short-circuit + + var animation = GetAnimation(layer, state, animationTime); + sprite.LayerSetVisible(layer, true); + _animationPlayer.Play(uid, animation, state); } private static Animation GetAnimation(JukeboxVisualLayers layer, string state, float animationTime) @@ -120,16 +129,16 @@ private static Animation GetAnimation(JukeboxVisualLayers layer, string state, f { Length = TimeSpan.FromSeconds(animationTime), AnimationTracks = + { + new AnimationTrackSpriteFlick { - new AnimationTrackSpriteFlick + LayerKey = layer, + KeyFrames = { - LayerKey = layer, - KeyFrames = - { - new AnimationTrackSpriteFlick.KeyFrame(state, 0f) - } + new AnimationTrackSpriteFlick.KeyFrame(state, 0f) } } + } }; } diff --git a/Content.Client/Chemistry/UI/ChemMasterWindow.xaml.cs b/Content.Client/Chemistry/UI/ChemMasterWindow.xaml.cs index 807ec4c1e7c..acdfe62a50e 100644 --- a/Content.Client/Chemistry/UI/ChemMasterWindow.xaml.cs +++ b/Content.Client/Chemistry/UI/ChemMasterWindow.xaml.cs @@ -1,18 +1,18 @@ +using System.Linq; +using System.Numerics; using Content.Client.Stylesheets; using Content.Client.UserInterface.Controls; using Content.Shared.Chemistry; using Content.Shared.Chemistry.Reagent; +using Content.Shared.FixedPoint; using Robust.Client.AutoGenerated; +using Robust.Client.Graphics; using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.XAML; using Robust.Client.Utility; using Robust.Shared.Prototypes; using Robust.Shared.Utility; -using System.Linq; -using System.Numerics; -using Content.Shared.FixedPoint; -using Robust.Client.Graphics; using static Robust.Client.UserInterface.Controls.BoxContainer; namespace Content.Client.Chemistry.UI @@ -47,14 +47,15 @@ public ChemMasterWindow() { // For every button decide which stylebase to have // Every row has 10 buttons - String styleBase = StyleBase.ButtonOpenBoth; - uint modulo = i % 10; - if (i > 0 && modulo == 0) - styleBase = StyleBase.ButtonOpenRight; - else if (i > 0 && modulo == 9) - styleBase = StyleBase.ButtonOpenLeft; - else if (i == 0) - styleBase = StyleBase.ButtonOpenRight; + var styleBase = StyleBase.ButtonOpenBoth; + var modulo = i % 10; + styleBase = i switch + { + > 0 when modulo == 0 => StyleBase.ButtonOpenRight, + > 0 when modulo == 9 => StyleBase.ButtonOpenLeft, + 0 => StyleBase.ButtonOpenRight, + _ => styleBase, + }; // Generate buttons PillTypeButtons[i] = new Button @@ -67,7 +68,7 @@ public ChemMasterWindow() // Generate buttons textures var specifier = new SpriteSpecifier.Rsi(resourcePath, "pill" + (i + 1)); - TextureRect pillTypeTexture = new TextureRect + var pillTypeTexture = new TextureRect { Texture = specifier.Frame0(), TextureScale = new Vector2(1.75f, 1.75f), @@ -103,14 +104,16 @@ private ReagentButton MakeReagentButton(string text, ChemMasterReagentAmount amo private List CreateReagentTransferButtons(ReagentId reagent, bool isBuffer, bool addReagentButtons) { if (!addReagentButtons) - return new List(); // Return an empty list if reagentTransferButton creation is disabled. + return []; // Return an empty list if reagentTransferButton creation is disabled. var buttonConfigs = new (string text, ChemMasterReagentAmount amount, string styleClass)[] { ("1", ChemMasterReagentAmount.U1, StyleBase.ButtonOpenBoth), ("5", ChemMasterReagentAmount.U5, StyleBase.ButtonOpenBoth), ("10", ChemMasterReagentAmount.U10, StyleBase.ButtonOpenBoth), + ("15", ChemMasterReagentAmount.U15, StyleBase.ButtonOpenBoth), ("25", ChemMasterReagentAmount.U25, StyleBase.ButtonOpenBoth), + ("30", ChemMasterReagentAmount.U30, StyleBase.ButtonOpenBoth), ("50", ChemMasterReagentAmount.U50, StyleBase.ButtonOpenBoth), ("100", ChemMasterReagentAmount.U100, StyleBase.ButtonOpenBoth), (Loc.GetString("chem-master-window-buffer-all-amount"), ChemMasterReagentAmount.All, StyleBase.ButtonOpenLeft), @@ -392,7 +395,7 @@ private Control BuildReagentRow(Color reagentColor, int rowCount, string name, R { rowContainer.AddChild(reagentTransferButton); } - //Apply panencontainer to allow for striped rows + //Apply PanelContainer to allow for striped rows return new PanelContainer { PanelOverride = new StyleBoxFlat(currentRowColor), diff --git a/Content.Client/Chemistry/UI/ReagentDispenserWindow.xaml.cs b/Content.Client/Chemistry/UI/ReagentDispenserWindow.xaml.cs index c462dbfc695..40e68d0e59c 100644 --- a/Content.Client/Chemistry/UI/ReagentDispenserWindow.xaml.cs +++ b/Content.Client/Chemistry/UI/ReagentDispenserWindow.xaml.cs @@ -42,7 +42,8 @@ public void UpdateReagentsList(List inventory) ReagentList.Children.Clear(); //Sort inventory by reagentLabel - inventory.Sort((x, y) => x.ReagentLabel.CompareTo(y.ReagentLabel)); + inventory.Sort((x, y) + => string.Compare(x.ReagentLabel, y.ReagentLabel, StringComparison.Ordinal)); foreach (var item in inventory) { @@ -59,7 +60,7 @@ public void UpdateReagentsList(List inventory) /// State data sent by the server. public void UpdateState(BoundUserInterfaceState state) { - var castState = (ReagentDispenserBoundUserInterfaceState) state; + var castState = (ReagentDispenserBoundUserInterfaceState)state; UpdateContainerInfo(castState); UpdateReagentsList(castState.Inventory); @@ -77,8 +78,10 @@ public void UpdateState(BoundUserInterfaceState state) /// Update the fill state and list of reagents held by the current reagent container, if applicable. /// Also highlights a reagent if it's dispense button is being mouse hovered. /// - /// State data for the dispenser. - /// or null if no button is being hovered. + /// + /// State data for the dispenser, + /// or null if no button is being hovered. + /// public void UpdateContainerInfo(ReagentDispenserBoundUserInterfaceState state) { ContainerInfo.Children.Clear(); @@ -87,7 +90,8 @@ public void UpdateContainerInfo(ReagentDispenserBoundUserInterfaceState state) { ContainerInfoName.Text = ""; ContainerInfoFill.Text = ""; - ContainerInfo.Children.Add(new Label { Text = Loc.GetString("reagent-dispenser-window-no-container-loaded-text") }); + ContainerInfo.Children.Add(new Label + { Text = Loc.GetString("reagent-dispenser-window-no-container-loaded-text") }); return; } @@ -116,7 +120,7 @@ public void UpdateContainerInfo(ReagentDispenserBoundUserInterfaceState state) { nameLabel, quantityLabel, - } + }, }); } } diff --git a/Content.Shared/Chemistry/SharedChemMaster.cs b/Content.Shared/Chemistry/SharedChemMaster.cs index 0a1724e54be..c8f87239d91 100644 --- a/Content.Shared/Chemistry/SharedChemMaster.cs +++ b/Content.Shared/Chemistry/SharedChemMaster.cs @@ -112,7 +112,9 @@ public enum ChemMasterReagentAmount U1 = 1, U5 = 5, U10 = 10, + U15 = 15, U25 = 25, + U30 = 30, U50 = 50, U100 = 100, All, diff --git a/Resources/Locale/en-US/_Null/guidebook/guides_shipyard.ftl b/Resources/Locale/en-US/_Null/guidebook/guides_shipyard.ftl index b263fcb4cf4..4046a66d757 100644 --- a/Resources/Locale/en-US/_Null/guidebook/guides_shipyard.ftl +++ b/Resources/Locale/en-US/_Null/guidebook/guides_shipyard.ftl @@ -9,7 +9,9 @@ guide-entry-shipyard-framework = The Humble Framework (Civil/Scrap) # Expedition guide-entry-shipyard-archon = Archon (Expedition) -guide-entry-shipyard-crapbucket = Crapbucket (Expedition) +guide-entry-shipyard-bossman = Bossman (Expedition) +guide-entry-shipyard-clam = Clam (Piracy) +guide-entry-shipyard-crapbucket = Crapbucket (Piracy) guide-entry-shipyard-foxhunt = Foxhunt (Expedition) guide-entry-shipyard-littora = Littora (Expedition) guide-entry-shipyard-pisces = Pisces (Expedition) diff --git a/Resources/Locale/en-US/_Null/tiles.ftl b/Resources/Locale/en-US/_Null/tiles.ftl index d50c2af00d9..531e2ed4a97 100644 --- a/Resources/Locale/en-US/_Null/tiles.ftl +++ b/Resources/Locale/en-US/_Null/tiles.ftl @@ -1 +1,5 @@ -tiles-wood-parquet = wood parquet \ No newline at end of file +tiles-wood-parquet = wood parquet +tiles-plasma-glass-floor = plasma glass floor +tiles-reinforced-plasma-glass-floor = reinforced plasma glass floor +tiles-uranium-glass-floor = uranium floor +tiles-reinforced-uranium-glass-floor = reinforced uranium floor \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml b/Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml index 538a707cab5..89d5d42e4c1 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml @@ -226,6 +226,11 @@ - type: Construction graph: Glass node: SheetPGlass + # Frontier : Placable Plasma glass floor tile + - type: FloorTile + outputs: + - FloorPGlass + # End Frontier - type: Destructible thresholds: - trigger: @@ -298,6 +303,11 @@ map: ["base"] - type: Item heldPrefix: rpglass + # Frontier : Placable reinforced plasma glass floor tile + - type: FloorTile + outputs: + - FloorRPGlass + # End Frontier - type: Construction graph: Glass node: SheetRPGlass @@ -353,6 +363,11 @@ map: ["base"] - type: Item heldPrefix: uglass + # Frontier : Placable Uranium glass + - type: FloorTile + outputs: + - FloorUGlass + # End Frontier - type: Construction graph: Glass node: SheetUGlass @@ -427,6 +442,11 @@ map: ["base"] - type: Item heldPrefix: ruglass + # Frontier : Placable Reinforced Uranium Glass + - type: FloorTile + outputs: + - FloorRUGlass + # End Frontier - type: Construction graph: Glass node: SheetRUGlass diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml index 77be3e30a0e..c1acd4749a4 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml @@ -136,6 +136,11 @@ fireRate: 2.5 - type: Item sprite: Objects/Weapons/Guns/Battery/svalinn.rsi + size: Small + shape: + - 0,0,1,0 + - 0,1,0,1 + storedOffset: 0,-8 - type: MagazineVisuals magState: mag steps: 5 diff --git a/Resources/Prototypes/_Null/Guidebook/shipyard_entries.yml b/Resources/Prototypes/_Null/Guidebook/shipyard_entries.yml index 520da1ed507..19de2c04b05 100644 --- a/Resources/Prototypes/_Null/Guidebook/shipyard_entries.yml +++ b/Resources/Prototypes/_Null/Guidebook/shipyard_entries.yml @@ -9,8 +9,11 @@ - ShipyardArachnid - ShipyardArchon - ShipyardBison + - ShipyardBossman - ShipyardBucket - ShipyardCamper + - ShipyardClam + - ShipyardCrapbucket - ShipyardClemency - ShipyardColdcap - ShipyardDuran @@ -18,8 +21,10 @@ - ShipyardIapetus - ShipyardInsight - ShipyardJudiciary + - ShipyardLittora - ShipyardMoonlight - ShipyardNourishment - ShipyardNugget - ShipyardPulse - ShipyardSabine + - ShipyardTorque diff --git a/Resources/Prototypes/_Null/Guidebook/shuttle_maps.yml b/Resources/Prototypes/_Null/Guidebook/shuttle_maps.yml index 6f701ab39b4..7ce1d67f813 100644 --- a/Resources/Prototypes/_Null/Guidebook/shuttle_maps.yml +++ b/Resources/Prototypes/_Null/Guidebook/shuttle_maps.yml @@ -56,6 +56,14 @@ - type: Sprite state: bison +- type: entity + parent: ShuttleMapBase + id: ShuttleMapBossman + categories: [ HideSpawnMenu ] + components: + - type: Sprite + state: bossman + - type: entity parent: ShuttleMapBase id: ShuttleMapBucket @@ -72,6 +80,22 @@ - type: Sprite state: camper +- type: entity + parent: ShuttleMapBase + id: ShuttleMapClam + categories: [ HideSpawnMenu ] + components: + - type: Sprite + state: clam + +- type: entity + parent: ShuttleMapBase + id: ShuttleMapCrapbucket + categories: [ HideSpawnMenu ] + components: + - type: Sprite + state: crapbucket + - type: entity parent: ShuttleMapBase id: ShuttleMapClemency @@ -96,6 +120,14 @@ - type: Sprite state: duran +- type: entity + parent: ShuttleMapBase + id: ShuttleMapLittora + categories: [ HideSpawnMenu ] + components: + - type: Sprite + state: littora + - type: entity parent: ShuttleMapBase id: ShuttleMapMoonlight @@ -118,4 +150,12 @@ categories: [ HideSpawnMenu ] components: - type: Sprite - state: nugget \ No newline at end of file + state: nugget + +- type: entity + parent: ShuttleMapBase + id: ShuttleMapTorque + categories: [ HideSpawnMenu ] + components: + - type: Sprite + state: torque \ No newline at end of file diff --git a/Resources/Prototypes/_Null/Shipyard/Expedition/Bossman.yml b/Resources/Prototypes/_Null/Shipyard/Expedition/Bossman.yml index e4b6d57280a..ed3b140e145 100644 --- a/Resources/Prototypes/_Null/Shipyard/Expedition/Bossman.yml +++ b/Resources/Prototypes/_Null/Shipyard/Expedition/Bossman.yml @@ -13,12 +13,17 @@ category: small group: Expedition shuttlePath: /Maps/_Null/Shuttles/Expedition/bossman.yml - guidebookPage: null + guidebookPage: ShipyardBossman class: - Expedition engine: - Uranium +- type: guideEntry + id: ShipyardBossman + name: guide-entry-shipyard-bossman + text: "/ServerInfo/_Null/Guidebook/Shipyard/Bossman.xml" + - type: gameMap id: Bossman mapName: 'Bossman' diff --git a/Resources/Prototypes/_Null/Shipyard/Expedition/clam.yml b/Resources/Prototypes/_Null/Shipyard/Expedition/clam.yml index a2079152543..9355e8a9ad1 100644 --- a/Resources/Prototypes/_Null/Shipyard/Expedition/clam.yml +++ b/Resources/Prototypes/_Null/Shipyard/Expedition/clam.yml @@ -11,12 +11,17 @@ category: Small group: Expedition shuttlePath: /Maps/_Null/Shuttles/Expedition/clam.yml - guidebookPage: null + guidebookPage: ShipyardClam class: - Pirate engine: - Uranium +- type: guideEntry + id: ShipyardClam + name: guide-entry-shipyard-clam + text: "/ServerInfo/_Null/Guidebook/Shipyard/Clam.xml" + - type: gameMap id: Clam mapName: 'Clam' diff --git a/Resources/Prototypes/_Null/Shipyard/Expedition/crapbucket.yml b/Resources/Prototypes/_Null/Shipyard/Expedition/crapbucket.yml index 33ee2da4edc..1c8307648a8 100644 --- a/Resources/Prototypes/_Null/Shipyard/Expedition/crapbucket.yml +++ b/Resources/Prototypes/_Null/Shipyard/Expedition/crapbucket.yml @@ -13,12 +13,17 @@ category: Small group: Expedition shuttlePath: /Maps/_Null/Shuttles/Expedition/crapbucket.yml - guidebookPage: null + guidebookPage: ShipyardCrapbucket class: - Pirate engine: - Uranium +- type: guideEntry + id: ShipyardCrapbucket + name: guide-entry-shipyard-crapbucket + text: "/ServerInfo/_Null/Guidebook/Shipyard/Crapbucket.xml" + - type: gameMap id: Crapbucket mapName: 'Crapbucket' diff --git a/Resources/Prototypes/_Null/Shipyard/Expedition/littora.yml b/Resources/Prototypes/_Null/Shipyard/Expedition/littora.yml index 6102a46b4b2..acab2bd4cd6 100644 --- a/Resources/Prototypes/_Null/Shipyard/Expedition/littora.yml +++ b/Resources/Prototypes/_Null/Shipyard/Expedition/littora.yml @@ -13,12 +13,17 @@ category: Large group: Expedition shuttlePath: /Maps/_Null/Shuttles/Expedition/littora.yml - guidebookPage: null + guidebookPage: ShipyardLittora class: - Expedition engine: - AME +- type: guideEntry + id: ShipyardLittora + name: guide-entry-shipyard-littora + text: "/ServerInfo/_Null/Guidebook/Shipyard/Littora.xml" + - type: gameMap id: Littora mapName: 'Littora' diff --git a/Resources/Prototypes/_Null/Shipyard/Expedition/torque.yml b/Resources/Prototypes/_Null/Shipyard/Expedition/torque.yml index 777390e88d6..81b5584f174 100644 --- a/Resources/Prototypes/_Null/Shipyard/Expedition/torque.yml +++ b/Resources/Prototypes/_Null/Shipyard/Expedition/torque.yml @@ -13,12 +13,17 @@ category: Large group: Expedition shuttlePath: /Maps/_Null/Shuttles/Expedition/torque.yml - guidebookPage: null + guidebookPage: ShipyardTorque class: - Expedition engine: - AME +- type: guideEntry + id: ShipyardTorque + name: guide-entry-shipyard-torque + text: "/ServerInfo/_Null/Guidebook/Shipyard/Torque.xml" + - type: gameMap id: Torque mapName: 'Torque' diff --git a/Resources/Prototypes/_Null/Tiles/floors.yml b/Resources/Prototypes/_Null/Tiles/floors.yml index 631c5293d3c..dafdbc328d8 100644 --- a/Resources/Prototypes/_Null/Tiles/floors.yml +++ b/Resources/Prototypes/_Null/Tiles/floors.yml @@ -16,4 +16,77 @@ barestepSounds: collection: BarestepWood itemDrop: FloorTileItemWoodParquet - heatCapacity: 10000 \ No newline at end of file + heatCapacity: 10000 + +# Special Glass Floors Ported from Frontier by Karlm4x +- type: tile + id: FloorPGlass + name: tiles-plasma-glass-floor + sprite: /Textures/_Null/Tiles/glass-plasma.png + variants: 4 + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 + baseTurf: Plating + isSubfloor: false + deconstructTools: [ Prying ] + footstepSounds: + collection: FootstepTile + itemDrop: SheetPGlass1 + heatCapacity: 10000 + +- type: tile + id: FloorRPGlass + name: tiles-reinforced-plasma-glass-floor + sprite: /Textures/_Null/Tiles/rglass-plasma.png + variants: 4 + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 + baseTurf: Plating + isSubfloor: false + deconstructTools: [ Prying ] + footstepSounds: + collection: FootstepTile + itemDrop: SheetRPGlass1 + heatCapacity: 10000 + +- type: tile + id: FloorUGlass + name: tiles-uranium-glass-floor + sprite: /Textures/_Null/Tiles/glass-uranium.png + variants: 4 + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 + baseTurf: Plating + isSubfloor: false + deconstructTools: [ Prying ] + footstepSounds: + collection: FootstepTile + itemDrop: SheetUGlass1 + heatCapacity: 10000 + +- type: tile + id: FloorRUGlass + name: tiles-reinforced-uranium-glass-floor + sprite: /Textures/_Null/Tiles/rglass-uranium.png + variants: 4 + placementVariants: + - 1.0 + - 1.0 + - 1.0 + - 1.0 + baseTurf: Plating + isSubfloor: false + deconstructTools: [ Prying ] + footstepSounds: + collection: FootstepTile + itemDrop: SheetRUGlass1 + heatCapacity: 10000 diff --git a/Resources/ServerInfo/_Null/Guidebook/Shipyard/Bossman.xml b/Resources/ServerInfo/_Null/Guidebook/Shipyard/Bossman.xml new file mode 100644 index 00000000000..266d683be7e --- /dev/null +++ b/Resources/ServerInfo/_Null/Guidebook/Shipyard/Bossman.xml @@ -0,0 +1,14 @@ + + # Bossman + + + + + [color=#a4885c]Ship Size:[/color] Small + + [color=#a4885c]Recommended Crew:[/color] 1 + + [color=#a4885c]Initial Generator Type:[/color] Uranium + + A hastily-reintroduced expeditionary vessel designed for quick in-and-out engagements. Its frame is beaten and battered— requiring extensive repair. + diff --git a/Resources/ServerInfo/_Null/Guidebook/Shipyard/Clam.xml b/Resources/ServerInfo/_Null/Guidebook/Shipyard/Clam.xml new file mode 100644 index 00000000000..d4a0d88cf43 --- /dev/null +++ b/Resources/ServerInfo/_Null/Guidebook/Shipyard/Clam.xml @@ -0,0 +1,14 @@ + + # CLAM + + + + + [color=#a4885c]Ship Size:[/color] Small + + [color=#a4885c]Recommended Crew:[/color] 2-3 + + [color=#a4885c]Initial Generator Type:[/color] Uranium + + A buccaneer-themed combat vessel fit with a kitchen and bar, and a small resting space. Additionally comes with ample bridge protection, but should those fail it also includes a spare weapons control room with padded armor. The entirety of the ship is surrounded in clam-like sets of additional shielding, owing to its name. + diff --git a/Resources/ServerInfo/_Null/Guidebook/Shipyard/Crapbucket.xml b/Resources/ServerInfo/_Null/Guidebook/Shipyard/Crapbucket.xml new file mode 100644 index 00000000000..4fd78f077eb --- /dev/null +++ b/Resources/ServerInfo/_Null/Guidebook/Shipyard/Crapbucket.xml @@ -0,0 +1,14 @@ + + # CRAPBUCKET + + + + + [color=#a4885c]Ship Size:[/color] Small + + [color=#a4885c]Recommended Crew:[/color] 2-3 + + [color=#a4885c]Initial Generator Type:[/color] Uranium + + A buccaneer-themed raiding vessel with mounted weapons on either side. The internals are of a nice veneer and parquet wood style, but the exterior is well-protected. It is designed for active engagements and theft, sporting little room for cargo hauling. + diff --git a/Resources/ServerInfo/_Null/Guidebook/Shipyard/Littora.xml b/Resources/ServerInfo/_Null/Guidebook/Shipyard/Littora.xml new file mode 100644 index 00000000000..b4c280f2842 --- /dev/null +++ b/Resources/ServerInfo/_Null/Guidebook/Shipyard/Littora.xml @@ -0,0 +1,14 @@ + + # LITTORA + + + + + [color=#a4885c]Ship Size:[/color] Large + + [color=#a4885c]Recommended Crew:[/color] 2-3 + + [color=#a4885c]Initial Generator Type:[/color] AME + + A large but reliable armored excavation vessel with a large amount of cargo space, a backup air supply, and additional room for modifications. The Littora is a go-to choice for many seasoned expeditionaries. + diff --git a/Resources/ServerInfo/_Null/Guidebook/Shipyard/Torque.xml b/Resources/ServerInfo/_Null/Guidebook/Shipyard/Torque.xml new file mode 100644 index 00000000000..7a66c12a14b --- /dev/null +++ b/Resources/ServerInfo/_Null/Guidebook/Shipyard/Torque.xml @@ -0,0 +1,14 @@ + + # TORQUE + + + + + [color=#a4885c]Ship Size:[/color] Huge + + [color=#a4885c]Recommended Crew:[/color] 3+ + + [color=#a4885c]Initial Generator Type:[/color] AME + + An incredibly large and cumbersome vessel with more room than you bargained for. Seriously. In fact, the Torque despite its slow space, is a force to be reckoned with despite its meager armaments solely because of the sheer amount of ample room it possesses. This thing could be turned into a station or a war-barge with the proper funding and care. A moth got stuck in the atmospheric systems once thanks to an artifact, and it took weeks to find it in the darkest corner of the ship. + diff --git a/Resources/Textures/_Null/Guidebook/ShuttleMaps.rsi/bossman.png b/Resources/Textures/_Null/Guidebook/ShuttleMaps.rsi/bossman.png new file mode 100644 index 00000000000..9545594d54e Binary files /dev/null and b/Resources/Textures/_Null/Guidebook/ShuttleMaps.rsi/bossman.png differ diff --git a/Resources/Textures/_Null/Guidebook/ShuttleMaps.rsi/clam.png b/Resources/Textures/_Null/Guidebook/ShuttleMaps.rsi/clam.png new file mode 100644 index 00000000000..6d420f214aa Binary files /dev/null and b/Resources/Textures/_Null/Guidebook/ShuttleMaps.rsi/clam.png differ diff --git a/Resources/Textures/_Null/Guidebook/ShuttleMaps.rsi/crapbucket.png b/Resources/Textures/_Null/Guidebook/ShuttleMaps.rsi/crapbucket.png new file mode 100644 index 00000000000..a0068a62644 Binary files /dev/null and b/Resources/Textures/_Null/Guidebook/ShuttleMaps.rsi/crapbucket.png differ diff --git a/Resources/Textures/_Null/Guidebook/ShuttleMaps.rsi/littora.png b/Resources/Textures/_Null/Guidebook/ShuttleMaps.rsi/littora.png new file mode 100644 index 00000000000..8556589aea0 Binary files /dev/null and b/Resources/Textures/_Null/Guidebook/ShuttleMaps.rsi/littora.png differ diff --git a/Resources/Textures/_Null/Guidebook/ShuttleMaps.rsi/meta.json b/Resources/Textures/_Null/Guidebook/ShuttleMaps.rsi/meta.json index 644c687a2eb..7cbb47339e0 100644 --- a/Resources/Textures/_Null/Guidebook/ShuttleMaps.rsi/meta.json +++ b/Resources/Textures/_Null/Guidebook/ShuttleMaps.rsi/meta.json @@ -19,20 +19,32 @@ { "name": "bison" }, + { + "name": "bossman" + }, { "name": "bucket" }, { "name": "camper" }, + { + "name": "clam" + }, { "name": "clemency" }, + { + "name": "coldcap" + }, + { + "name": "crapbucket" + }, { "name": "duran" }, { - "name": "coldcap" + "name": "littora" }, { "name": "moonlight" @@ -42,6 +54,9 @@ }, { "name": "nugget" + }, + { + "name": "torque" } ] } diff --git a/Resources/Textures/_Null/Guidebook/ShuttleMaps.rsi/torque.png b/Resources/Textures/_Null/Guidebook/ShuttleMaps.rsi/torque.png new file mode 100644 index 00000000000..7c775dda6a2 Binary files /dev/null and b/Resources/Textures/_Null/Guidebook/ShuttleMaps.rsi/torque.png differ diff --git a/Resources/Textures/_Null/Tiles/attributions.yml b/Resources/Textures/_Null/Tiles/attributions.yml new file mode 100644 index 00000000000..355bd275025 --- /dev/null +++ b/Resources/Textures/_Null/Tiles/attributions.yml @@ -0,0 +1,12 @@ +# Attempted to keep the files in alphabetical order so its easier to audit. +# Finding individual authors is an unfeasible task. If you can reference the author please do so. + +- files: ["wood_parquet.png"] + license: "CC-BY-SA-3.0" + copyright: "Made by LukeZurg22 (github) for ss14" + source: "https://github.com/space-wizards/space-station-14/" + +- files: ["glass_plasma.png", "glass_uranium.png", "rglass_plasma.png", rglass_uranium"] + license: "CC-BY-SA-3.0" + copyright: "Recolored from 9f45a0c04fd13aa8de83015aab5b99b599525589 by ghostlostprince" + source: "https://github.com/space-wizards/space-station-14/pull/17948" diff --git a/Resources/Textures/_Null/Tiles/glass-plasma.png b/Resources/Textures/_Null/Tiles/glass-plasma.png new file mode 100644 index 00000000000..ed93f604e19 Binary files /dev/null and b/Resources/Textures/_Null/Tiles/glass-plasma.png differ diff --git a/Resources/Textures/_Null/Tiles/glass-uranium.png b/Resources/Textures/_Null/Tiles/glass-uranium.png new file mode 100644 index 00000000000..89184fcd025 Binary files /dev/null and b/Resources/Textures/_Null/Tiles/glass-uranium.png differ diff --git a/Resources/Textures/_Null/Tiles/meta.json b/Resources/Textures/_Null/Tiles/meta.json deleted file mode 100644 index 2413b6d6e0b..00000000000 --- a/Resources/Textures/_Null/Tiles/meta.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Made by LukeZurg22 (github) for ss14", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "wood_parquet" - } - ] -} diff --git a/Resources/Textures/_Null/Tiles/rglass-plasma.png b/Resources/Textures/_Null/Tiles/rglass-plasma.png new file mode 100644 index 00000000000..7e804f8cd7d Binary files /dev/null and b/Resources/Textures/_Null/Tiles/rglass-plasma.png differ diff --git a/Resources/Textures/_Null/Tiles/rglass-uranium.png b/Resources/Textures/_Null/Tiles/rglass-uranium.png new file mode 100644 index 00000000000..cf20c1c8897 Binary files /dev/null and b/Resources/Textures/_Null/Tiles/rglass-uranium.png differ