Merge remote-tracking branch 'upstream/master' into upstream-sync

This commit is contained in:
Morbo 2022-11-11 17:58:06 +03:00
commit c186e00d25
28 changed files with 549 additions and 163 deletions

View file

@ -114,19 +114,26 @@ public sealed partial class AnalysisConsoleMenu : FancyWindow
}
if (state.Id != null) //node id
message.AddMarkup(Loc.GetString("analysis-console-info-id", ("id", state.Id))+"\n");
{
message.AddMarkup(Loc.GetString("analysis-console-info-id", ("id", state.Id)));
message.PushNewline();
}
if (state.Depth != null) //node depth
message.AddMarkup(Loc.GetString("analysis-console-info-depth", ("depth", state.Depth))+"\n");
{
message.AddMarkup(Loc.GetString("analysis-console-info-depth", ("depth", state.Depth)));
message.PushNewline();
}
if (state.Triggered != null) //whether it has been triggered
{
var activated = state.Triggered.Value
? "analysis-console-info-triggered-true"
: "analysis-console-info-triggered-false";
message.AddMarkup(Loc.GetString(activated)+"\n");
message.AddMarkup(Loc.GetString(activated));
message.PushNewline();
}
message.AddMarkup("\n");
message.PushNewline();
var needSecondNewline = false;
if (state.TriggerProto != null && //possible triggers
@ -134,7 +141,8 @@ public sealed partial class AnalysisConsoleMenu : FancyWindow
trigger.TriggerHint != null)
{
message.AddMarkup(Loc.GetString("analysis-console-info-trigger",
("trigger", Loc.GetString(trigger.TriggerHint))) + "\n");
("trigger", Loc.GetString(trigger.TriggerHint))));
message.PushNewline();
needSecondNewline = true;
}
@ -143,21 +151,24 @@ public sealed partial class AnalysisConsoleMenu : FancyWindow
effect.EffectHint != null)
{
message.AddMarkup(Loc.GetString("analysis-console-info-effect",
("effect", Loc.GetString(effect.EffectHint))) + "\n");
("effect", Loc.GetString(effect.EffectHint))));
message.PushNewline();
needSecondNewline = true;
}
if (needSecondNewline)
message.AddMarkup("\n");
message.PushNewline();
if (state.Edges != null) //number of edges
message.AddMarkup(Loc.GetString("analysis-console-info-edges", ("edges", state.Edges))+"\n");
if (state.Completion != null) //completion percentage
{
message.AddMarkup(Loc.GetString("analysis-console-info-completion",
("percentage", Math.Round(state.Completion.Value * 100)))+"\n");
message.AddMarkup(Loc.GetString("analysis-console-info-edges", ("edges", state.Edges)));
message.PushNewline();
}
if (state.PointValue != null) //completion percentage
{
message.AddMarkup(Loc.GetString("analysis-console-info-value", ("value", state.PointValue)));
message.PushNewline();
}
Information.SetMessage(message);
}

View file

@ -31,7 +31,7 @@ namespace Content.Server.Atmos.EntitySystems
var moveEvent = new MoveEvent(airtight.Owner, default, default, Angle.Zero, xform.LocalRotation, xform, false);
OnAirtightRotated(uid, airtight, ref moveEvent);
}
UpdatePosition(airtight);
}
@ -118,11 +118,7 @@ namespace Content.Server.Atmos.EntitySystems
var query = EntityManager.GetEntityQuery<AirtightComponent>();
_explosionSystem.UpdateAirtightMap(gridId, pos, query);
// TODO make atmos system use query
_atmosphereSystem.UpdateAdjacent(gridUid, pos);
_atmosphereSystem.InvalidateTile(gridUid, pos);
if(fixVacuum)
_atmosphereSystem.FixTileVacuum(gridUid, pos);
}
private AtmosDirection Rotate(AtmosDirection myDirection, Angle myAngle)

View file

@ -107,8 +107,16 @@ public partial class AtmosphereSystem
else
RaiseLocalEvent(ref ev);
if (ev.Handled)
return ev.Mixtures;
// Default to a space mixture... This is a space game, after all!
return ev.Mixtures ?? new GasMixture?[tiles.Count];
ev.Mixtures ??= new GasMixture?[tiles.Count];
for (var i = 0; i < tiles.Count; i++)
{
ev.Mixtures[i] ??= GasMixture.SpaceGas;
}
return ev.Mixtures;
}
public GasMixture? GetTileMixture(EntityUid? gridUid, EntityUid? mapUid, Vector2i tile, bool excite = false)

View file

@ -192,7 +192,11 @@ public sealed partial class AtmosphereSystem
{
var tile = args.Tiles[i];
if (!component.Tiles.TryGetValue(tile, out var atmosTile))
{
// need to get map atmosphere
args.Handled = false;
continue;
}
if (args.Excite)
component.InvalidatedCoords.Add(tile);

View file

@ -32,17 +32,14 @@ public partial class AtmosphereSystem
private void MapGetTileMixtures(EntityUid uid, MapAtmosphereComponent component, ref GetTileMixturesMethodEvent args)
{
if (args.Handled)
if (args.Handled || component.Mixture == null)
return;
args.Handled = true;
args.Mixtures = new GasMixture?[args.Tiles.Count];
if (component.Mixture == null)
return;
args.Mixtures ??= new GasMixture?[args.Tiles.Count];
for (var i = 0; i < args.Tiles.Count; i++)
{
args.Mixtures[i] = component.Mixture.Clone();
args.Mixtures[i] ??= component.Mixture.Clone();
}
}
}

View file

@ -67,9 +67,16 @@ namespace Content.Server.Atmos.EntitySystems
GridIsTileAirBlocked(uid, atmosphere, ref airBlockedEv);
var isAirBlocked = airBlockedEv.Result;
var oldBlocked = tile.BlockedAirflow;
var updateAdjacentEv = new UpdateAdjacentMethodEvent(uid, indices, mapGridComp);
GridUpdateAdjacent(uid, atmosphere, ref updateAdjacentEv);
// Blocked airflow changed, rebuild excited groups!
if (tile.Excited && tile.BlockedAirflow != oldBlocked)
{
RemoveActiveTile(atmosphere, tile);
}
// Call this instead of the grid method as the map has a say on whether the tile is space or not.
if ((!mapGrid.TryGetTileRef(indices, out var t) || t.IsSpace(_tileDefinitionManager)) && !isAirBlocked)
{

View file

@ -249,10 +249,6 @@ namespace Content.Server.Doors.Systems
// achieving all this using existing atmos functions, and the functionality is too specialized to bother
// adding new public atmos system functions.
// TODO redo this with planet/map atmospheres
// there is probably a faster way of doing this. tbh I kinda hate the atmos method events for making
// accessing tile data directly such a pain. Dealting with maps will make it even more painful.
List<Vector2i> tiles = new(4);
List<AtmosDirection> directions = new(4);
for (var i = 0; i < Atmospherics.Directions; i++)
@ -270,7 +266,7 @@ namespace Content.Server.Doors.Systems
if (airtight.AirBlockedDirection != AtmosDirection.All)
tiles.Add(pos);
var gasses = _atmosSystem.GetTileMixtures(gridAtmosphere.Owner, null, tiles);
var gasses = _atmosSystem.GetTileMixtures(gridAtmosphere.Owner, xform.MapUid, tiles);
if (gasses == null)
return (false, false);

View file

@ -65,6 +65,6 @@ public sealed class ArtifactAnalyzerComponent : Component
public ArtifactNode? LastAnalyzedNode;
[ViewVariables(VVAccess.ReadWrite)]
public float? LastAnalyzedCompletion;
public int? LastAnalyzerPointValue;
#endregion
}

View file

@ -132,19 +132,14 @@ public sealed class ArtifactAnalyzerSystem : EntitySystem
if (component.LastAnalyzedArtifact == null)
{
component.LastAnalyzedCompletion = null;
component.LastAnalyzerPointValue = null;
component.LastAnalyzedNode = null;
}
else if (TryComp<ArtifactComponent>(component.LastAnalyzedArtifact, out var artifact))
{
var lastNode = (ArtifactNode?) artifact.CurrentNode?.Clone();
component.LastAnalyzedNode = lastNode;
if (artifact.NodeTree != null)
{
var discoveredNodes = artifact.NodeTree.AllNodes.Count(x => x.Discovered && x.Triggered);
component.LastAnalyzedCompletion = (float) discoveredNodes / artifact.NodeTree.AllNodes.Count;
}
component.LastAnalyzerPointValue = _artifact.GetResearchPointValue(component.LastAnalyzedArtifact.Value, artifact);
}
}
@ -178,7 +173,7 @@ public sealed class ArtifactAnalyzerSystem : EntitySystem
EntityUid? artifact = null;
ArtifactNode? node = null;
float? completion = null;
int? pointValue = null;
var totalTime = TimeSpan.Zero;
var canScan = false;
var canPrint = false;
@ -186,7 +181,7 @@ public sealed class ArtifactAnalyzerSystem : EntitySystem
{
artifact = analyzer.LastAnalyzedArtifact;
node = analyzer.LastAnalyzedNode;
completion = analyzer.LastAnalyzedCompletion;
pointValue = analyzer.LastAnalyzerPointValue;
totalTime = analyzer.AnalysisDuration * analyzer.AnalysisDurationMulitplier;
canScan = analyzer.Contacts.Any();
canPrint = analyzer.ReadyToPrint;
@ -199,7 +194,7 @@ public sealed class ArtifactAnalyzerSystem : EntitySystem
var remaining = active != null ? _timing.CurTime - active.StartTime : TimeSpan.Zero;
var state = new AnalysisConsoleScanUpdateState(artifact, analyzerConnected, serverConnected, canScan, canPrint,
node?.Id, node?.Depth, node?.Edges.Count, node?.Triggered, node?.Effect.ID, node?.Trigger.ID, completion,
node?.Id, node?.Depth, node?.Edges.Count, node?.Triggered, node?.Effect.ID, node?.Trigger.ID, pointValue,
scanning, remaining, totalTime);
var bui = _ui.GetUi(uid, ArtifactAnalzyerUiKey.Key);
@ -250,7 +245,7 @@ public sealed class ArtifactAnalyzerSystem : EntitySystem
if (!TryComp<ArtifactAnalyzerComponent>(component.AnalyzerEntity, out var analyzer) ||
analyzer.LastAnalyzedNode == null ||
analyzer.LastAnalyzedCompletion == null ||
analyzer.LastAnalyzerPointValue == null ||
!analyzer.ReadyToPrint)
{
return;
@ -297,8 +292,7 @@ public sealed class ArtifactAnalyzerSystem : EntitySystem
msg.AddMarkup(Loc.GetString("analysis-console-info-edges", ("edges", n.Edges.Count)));
msg.PushNewline();
msg.AddMarkup(Loc.GetString("analysis-console-info-completion",
("percentage", Math.Round(analyzer.LastAnalyzedCompletion.Value * 100))));
msg.AddMarkup(Loc.GetString("analysis-console-info-value", ("value", analyzer.LastAnalyzerPointValue)));
_popup.PopupEntity(Loc.GetString("analysis-console-print-popup"), uid, Filter.Pvs(uid));
_paper.SetContent(report, msg.ToMarkup());

View file

@ -53,7 +53,7 @@ public sealed class AnalysisConsoleScanUpdateState : BoundUserInterfaceState
public string? TriggerProto;
public float? Completion;
public int? PointValue;
public bool Scanning;
@ -62,7 +62,7 @@ public sealed class AnalysisConsoleScanUpdateState : BoundUserInterfaceState
public TimeSpan TotalTime;
public AnalysisConsoleScanUpdateState(EntityUid? artifact, bool analyzerConnected, bool serverConnected, bool canScan, bool canPrint,
int? id, int? depth, int? edges, bool? triggered, string? effectProto, string? triggerProto, float? completion,
int? id, int? depth, int? edges, bool? triggered, string? effectProto, string? triggerProto, int? pointValue,
bool scanning, TimeSpan timeRemaining, TimeSpan totalTime)
{
Artifact = artifact;
@ -77,7 +77,7 @@ public sealed class AnalysisConsoleScanUpdateState : BoundUserInterfaceState
Triggered = triggered;
EffectProto = effectProto;
TriggerProto = triggerProto;
Completion = completion;
PointValue = pointValue;
Scanning = scanning;
TimeRemaining = timeRemaining;

View file

@ -1,7 +1,5 @@
cough1.ogg taken from
https://github.com/Citadel-Station-13/Citadel-Station-13-RP/blob/2121c7ad8c91a7a1d5229631019bf467cb217578/sound/effects/mob_effects/m_cougha.ogg
cough2.ogg taken from
https://github.com/Citadel-Station-13/Citadel-Station-13-RP/blob/2121c7ad8c91a7a1d5229631019bf467cb217578/sound/effects/mob_effects/m_coughb.ogg
cough1.ogg taken from freesound (deleted user)
cough2.ogg taken from https://freesound.org/people/Harris85/sounds/208761/
sneeze.ogg taken from https://freesound.org/people/sherby168/sounds/540771/
beepboop.ogg taken from https://freesound.org/people/Fidjo20/sounds/503526/
monkey1.ogg taken from https://freesound.org/people/TRAVELcandies/sounds/423396/

View file

@ -1,15 +1,4 @@
Entries:
- author: lapatison
changes:
- {message: Kvass tank from cargo now come unpackaged., type: Tweak}
id: 2139
time: '2022-08-13T12:06:15.0000000+00:00'
- author: EmoGarbage404
changes:
- {message: 'Added the Revenant, a ghost capable of causing all sorts of wacky chaos.',
type: Add}
id: 2140
time: '2022-08-13T13:49:41.0000000+00:00'
- author: Ablankmann
changes:
- {message: The Outlaw's Hat now looks nicer., type: Tweak}
@ -2957,3 +2946,18 @@ Entries:
- {message: CentCom now calls the shuttle automatically after a long round., type: Add}
id: 2638
time: '2022-11-10T04:20:36.0000000+00:00'
- author: Mervill
changes:
- {message: 'Some common objects that where indestructible now have proper destructible
data, including Air Alarms, Surveillance Cameras and Extinguisher Cabinets',
type: Fix}
id: 2639
time: '2022-11-10T14:32:53.0000000+00:00'
- author: EmoGarbage404
changes:
- {message: The artifact analyzer now reports the amount of points an artifact is
worth rather than how much of it is completed., type: Tweak}
- {message: Artifacts and artifact containers are now easier to drag., type: Tweak}
- {message: Increased the likelihood of seeing certain rare artifact effects., type: Tweak}
id: 2640
time: '2022-11-11T04:18:51.0000000+00:00'

View file

@ -18,7 +18,7 @@ analysis-console-info-triggered-false = ACTIVATED: FALSE
analysis-console-info-effect = REACTION: {$effect}
analysis-console-info-trigger = STIMULUS: {$trigger}
analysis-console-info-edges = EDGES: {$edges}
analysis-console-info-completion = COMPLETION_PERCENTAGE: {$percentage}%
analysis-console-info-value = CURRENT_VALUE: {$value}
analysis-console-info-scanner = Scanning...
analysis-console-progress-text = {$seconds ->

View file

@ -10633,8 +10633,8 @@ entities:
- volume: 2500
temperature: 293.15
moles:
- 20.619795
- 77.56971
- 18.935778
- 71.2346
- 0
- 0
- 0
@ -10648,8 +10648,8 @@ entities:
- volume: 2500
temperature: 293.15
moles:
- 21.389235
- 80.464264
- 20.713123
- 77.9208
- 0
- 0
- 0
@ -10663,8 +10663,8 @@ entities:
- volume: 2500
temperature: 293.15
moles:
- 21.72303
- 81.71997
- 21.378712
- 80.42468
- 0
- 0
- 0
@ -10678,8 +10678,8 @@ entities:
- volume: 2500
temperature: 293.15
moles:
- 21.756979
- 81.84769
- 21.540726
- 81.034164
- 0
- 0
- 0
@ -10753,8 +10753,8 @@ entities:
- volume: 2500
temperature: 293.15
moles:
- 21.222336
- 79.83641
- 20.38033
- 76.66885
- 0
- 0
- 0
@ -10768,8 +10768,8 @@ entities:
- volume: 2500
temperature: 293.15
moles:
- 21.40055
- 80.506836
- 20.767128
- 78.12396
- 0
- 0
- 0
@ -10783,8 +10783,8 @@ entities:
- volume: 2500
temperature: 293.15
moles:
- 21.607056
- 81.28369
- 21.269001
- 80.01196
- 0
- 0
- 0
@ -15506,11 +15506,14 @@ entities:
parent: 127
type: Transform
- uid: 853
type: SheetSteel
type: GasPort
components:
- pos: -5.5,13.5
- rot: 3.141592653589793 rad
pos: 26.5,0.5
parent: 127
type: Transform
- color: '#990000FF'
type: AtmosPipeColor
- uid: 854
type: WallReinforced
components:
@ -21381,14 +21384,11 @@ entities:
parent: 127
type: Transform
- uid: 1778
type: GasPipeStraight
type: SheetPlastic
components:
- rot: -1.5707963267948966 rad
pos: 25.5,1.5
- pos: -5.5,13.5
parent: 127
type: Transform
- color: '#0055CCFF'
type: AtmosPipeColor
- uid: 1779
type: ReinforcedPlasmaWindow
components:
@ -41801,7 +41801,7 @@ entities:
type: GasPipeStraight
components:
- rot: -1.5707963267948966 rad
pos: 24.5,1.5
pos: 26.5,1.5
parent: 127
type: Transform
- color: '#0055CCFF'
@ -54479,7 +54479,7 @@ entities:
- pos: 24.5,-5.5
parent: 127
type: Transform
- SecondsUntilStateChange: -72123.1
- SecondsUntilStateChange: -73212.74
state: Opening
type: Door
- inputs:
@ -54495,7 +54495,7 @@ entities:
- pos: 24.5,-4.5
parent: 127
type: Transform
- SecondsUntilStateChange: -72123.1
- SecondsUntilStateChange: -73212.74
state: Opening
type: Door
- inputs:
@ -54511,7 +54511,7 @@ entities:
- pos: 24.5,-7.5
parent: 127
type: Transform
- SecondsUntilStateChange: -72123.1
- SecondsUntilStateChange: -73212.74
state: Opening
type: Door
- inputs:
@ -54527,7 +54527,7 @@ entities:
- pos: 24.5,-6.5
parent: 127
type: Transform
- SecondsUntilStateChange: -72123.1
- SecondsUntilStateChange: -73212.74
state: Opening
type: Door
- inputs:
@ -54579,7 +54579,7 @@ entities:
- pos: 13.5,-5.5
parent: 127
type: Transform
- SecondsUntilStateChange: -73173.98
- SecondsUntilStateChange: -74263.62
state: Opening
type: Door
- inputs:
@ -54595,7 +54595,7 @@ entities:
- pos: 14.5,-5.5
parent: 127
type: Transform
- SecondsUntilStateChange: -73173.98
- SecondsUntilStateChange: -74263.62
state: Opening
type: Door
- inputs:
@ -54611,7 +54611,7 @@ entities:
- pos: 15.5,-5.5
parent: 127
type: Transform
- SecondsUntilStateChange: -73173.98
- SecondsUntilStateChange: -74263.62
state: Opening
type: Door
- inputs:
@ -54627,7 +54627,7 @@ entities:
- pos: 16.5,-5.5
parent: 127
type: Transform
- SecondsUntilStateChange: -73173.98
- SecondsUntilStateChange: -74263.62
state: Opening
type: Door
- inputs:
@ -54643,7 +54643,7 @@ entities:
- pos: 17.5,-5.5
parent: 127
type: Transform
- SecondsUntilStateChange: -73173.98
- SecondsUntilStateChange: -74263.62
state: Opening
type: Door
- inputs:
@ -54659,7 +54659,7 @@ entities:
- pos: 18.5,-5.5
parent: 127
type: Transform
- SecondsUntilStateChange: -73173.98
- SecondsUntilStateChange: -74263.62
state: Opening
type: Door
- inputs:
@ -54675,7 +54675,7 @@ entities:
- pos: 12.5,-5.5
parent: 127
type: Transform
- SecondsUntilStateChange: -73173.98
- SecondsUntilStateChange: -74263.62
state: Opening
type: Door
- inputs:
@ -54691,7 +54691,7 @@ entities:
- pos: 19.5,-5.5
parent: 127
type: Transform
- SecondsUntilStateChange: -73173.98
- SecondsUntilStateChange: -74263.62
state: Opening
type: Door
- inputs:
@ -54707,7 +54707,7 @@ entities:
- pos: 11.5,-6.5
parent: 127
type: Transform
- SecondsUntilStateChange: -73173.98
- SecondsUntilStateChange: -74263.62
state: Opening
type: Door
- inputs:
@ -54723,7 +54723,7 @@ entities:
- pos: 11.5,-7.5
parent: 127
type: Transform
- SecondsUntilStateChange: -73173.98
- SecondsUntilStateChange: -74263.62
state: Opening
type: Door
- inputs:
@ -54739,7 +54739,7 @@ entities:
- pos: 20.5,-6.5
parent: 127
type: Transform
- SecondsUntilStateChange: -73173.98
- SecondsUntilStateChange: -74263.62
state: Opening
type: Door
- inputs:
@ -54755,7 +54755,7 @@ entities:
- pos: 20.5,-7.5
parent: 127
type: Transform
- SecondsUntilStateChange: -73173.98
- SecondsUntilStateChange: -74263.62
state: Opening
type: Door
- inputs:
@ -54771,7 +54771,7 @@ entities:
- pos: 20.5,-9.5
parent: 127
type: Transform
- SecondsUntilStateChange: -73089.375
- SecondsUntilStateChange: -74179.016
state: Opening
type: Door
- inputs:
@ -54787,7 +54787,7 @@ entities:
- pos: 20.5,-11.5
parent: 127
type: Transform
- SecondsUntilStateChange: -73089.375
- SecondsUntilStateChange: -74179.016
state: Opening
type: Door
- inputs:
@ -56639,10 +56639,9 @@ entities:
- color: '#990000FF'
type: AtmosPipeColor
- uid: 6863
type: GasPipeStraight
type: GasPipeTJunction
components:
- rot: 3.141592653589793 rad
pos: 24.5,1.5
- pos: 27.5,2.5
parent: 127
type: Transform
- color: '#990000FF'
@ -56666,10 +56665,10 @@ entities:
parent: 127
type: Transform
- uid: 6867
type: GasPipeStraight
type: GasPressurePump
components:
- rot: 1.5707963267948966 rad
pos: 26.5,2.5
- rot: 3.141592653589793 rad
pos: 26.5,1.5
parent: 127
type: Transform
- color: '#990000FF'
@ -56678,7 +56677,7 @@ entities:
type: GasPipeStraight
components:
- rot: 1.5707963267948966 rad
pos: 27.5,2.5
pos: 25.5,2.5
parent: 127
type: Transform
- color: '#990000FF'
@ -66813,12 +66812,12 @@ entities:
parent: 127
type: Transform
- uid: 8255
type: GasVentPump
type: GasPipeTJunction
components:
- pos: 26.5,2.5
parent: 127
type: Transform
- color: '#0055CCFF'
- color: '#990000FF'
type: AtmosPipeColor
- uid: 8256
type: GasVentPump
@ -66855,10 +66854,9 @@ entities:
- color: '#990000FF'
type: AtmosPipeColor
- uid: 8260
type: GasVentScrubber
type: GasPipeStraight
components:
- rot: 3.141592653589793 rad
pos: 25.5,1.5
- pos: 24.5,1.5
parent: 127
type: Transform
- color: '#990000FF'
@ -66906,8 +66904,7 @@ entities:
- 8258
- 8259
- 8256
- 8260
- 8255
- null
type: DeviceList
- uid: 8263
type: FirelockGlass
@ -68683,21 +68680,23 @@ entities:
- color: '#990000FF'
type: AtmosPipeColor
- uid: 8521
type: GasPipeTJunction
type: GasPipeStraight
components:
- pos: 25.5,2.5
parent: 127
type: Transform
- color: '#990000FF'
type: AtmosPipeColor
- uid: 8522
type: GasPipeFourway
components:
- pos: 26.5,1.5
- rot: -1.5707963267948966 rad
pos: 24.5,1.5
parent: 127
type: Transform
- color: '#0055CCFF'
type: AtmosPipeColor
- uid: 8522
type: GasVentScrubber
components:
- rot: -1.5707963267948966 rad
pos: 25.5,0.5
parent: 127
type: Transform
- color: '#990000FF'
type: AtmosPipeColor
- uid: 8523
type: GasPipeTJunction
components:
@ -69761,36 +69760,299 @@ entities:
- uid: 8684
type: GasPipeTJunction
components:
- pos: 24.5,2.5
- rot: 3.141592653589793 rad
pos: 25.5,1.5
parent: 127
type: Transform
- color: '#990000FF'
- color: '#0055CCFF'
type: AtmosPipeColor
- uid: 8685
type: GasPipeStraight
type: GasPressurePump
components:
- rot: 3.141592653589793 rad
pos: 24.5,0.5
pos: 27.5,1.5
parent: 127
type: Transform
- color: '#990000FF'
type: AtmosPipeColor
- uid: 8686
type: GasPipeBend
type: GasVentPump
components:
- rot: -1.5707963267948966 rad
pos: 26.5,0.5
- pos: 25.5,2.5
parent: 127
type: Transform
- color: '#0055CCFF'
type: AtmosPipeColor
- uid: 8687
type: GasPipeBend
type: GasPipeTJunction
components:
- rot: 1.5707963267948966 rad
pos: 25.5,0.5
pos: 24.5,0.5
parent: 127
type: Transform
- color: '#0055CCFF'
- color: '#990000FF'
type: AtmosPipeColor
- uid: 8688
type: CableApcExtension
components:
- pos: 16.5,2.5
parent: 127
type: Transform
- uid: 8689
type: CableApcExtension
components:
- pos: 17.5,2.5
parent: 127
type: Transform
- uid: 8690
type: CableApcExtension
components:
- pos: 24.5,4.5
parent: 127
type: Transform
- uid: 8691
type: CableApcExtension
components:
- pos: 9.5,-10.5
parent: 127
type: Transform
- uid: 8692
type: CableApcExtension
components:
- pos: 9.5,2.5
parent: 127
type: Transform
- uid: 8693
type: GasPipeTJunction
components:
- pos: 24.5,2.5
parent: 127
type: Transform
- color: '#990000FF'
type: AtmosPipeColor
- uid: 8694
type: PortableScrubber
components:
- pos: 26.5,0.5
parent: 127
type: Transform
- uid: 8695
type: GasPort
components:
- rot: 3.141592653589793 rad
pos: 27.5,0.5
parent: 127
type: Transform
- color: '#990000FF'
type: AtmosPipeColor
- uid: 8696
type: PortableScrubber
components:
- pos: 27.5,0.5
parent: 127
type: Transform
- uid: 8697
type: BoxBodyBag
components:
- pos: 1.4925553,14.655643
parent: 127
type: Transform
- uid: 8698
type: BoxFolderBlack
components:
- pos: 3.6539683,14.603813
parent: 127
type: Transform
- uid: 8699
type: BoxFolderBlue
components:
- pos: 1.6588756,-5.4630365
parent: 127
type: Transform
- uid: 8700
type: BoxFolderWhite
components:
- pos: -3.3254993,5.6008472
parent: 127
type: Transform
- uid: 8701
type: BoxFolderWhite
components:
- pos: -3.3098743,8.586103
parent: 127
type: Transform
- uid: 8702
type: BoxFolderWhite
components:
- pos: -3.3411243,11.5989
parent: 127
type: Transform
- uid: 8703
type: BoxFolderWhite
components:
- pos: 1.9323192,7.6159186
parent: 127
type: Transform
- uid: 8704
type: Paper
components:
- pos: 1.6979442,7.6159186
parent: 127
type: Transform
- uid: 8705
type: Paper
components:
- pos: 1.5885692,7.6159186
parent: 127
type: Transform
- uid: 8706
type: Paper
components:
- pos: 1.4635692,7.6159186
parent: 127
type: Transform
- uid: 8707
type: Paper
components:
- pos: -3.4720547,8.584668
parent: 127
type: Transform
- uid: 8708
type: Paper
components:
- pos: -3.4876797,11.607829
parent: 127
type: Transform
- uid: 8709
type: Paper
components:
- pos: -3.5033047,5.609607
parent: 127
type: Transform
- uid: 8710
type: Paper
components:
- pos: 1.5691693,-5.4552197
parent: 127
type: Transform
- uid: 8711
type: Paper
components:
- pos: 1.3816693,-5.4708447
parent: 127
type: Transform
- uid: 8712
type: Paper
components:
- pos: 1.2722943,-5.4708447
parent: 127
type: Transform
- uid: 8713
type: Pen
components:
- pos: 1.2879193,-5.3927197
parent: 127
type: Transform
- uid: 8714
type: Pen
components:
- pos: -3.7117822,8.609095
parent: 127
type: Transform
- uid: 8715
type: Pen
components:
- pos: -3.6805322,5.62472
parent: 127
type: Transform
- uid: 8716
type: Pen
components:
- pos: -3.6805322,11.62472
parent: 127
type: Transform
- uid: 8717
type: Pen
components:
- pos: 1.2413428,7.577845
parent: 127
type: Transform
- uid: 8718
type: Lamp
components:
- pos: 1.0291226,-4.466736
parent: 127
type: Transform
- uid: 8719
type: EmergencyMedipen
components:
- pos: 0.5735941,9.110008
parent: 127
type: Transform
- uid: 8720
type: EmergencyMedipen
components:
- pos: 0.4173441,8.891258
parent: 127
type: Transform
- uid: 8721
type: Brutepack
components:
- pos: 0.6829691,8.641258
parent: 127
type: Transform
- uid: 8722
type: Brutepack
components:
- pos: 0.6204691,8.453758
parent: 127
type: Transform
- uid: 8723
type: Ointment
components:
- pos: 0.4642191,8.516258
parent: 127
type: Transform
- uid: 8724
type: Ointment
components:
- pos: 0.3860941,8.235008
parent: 127
type: Transform
- uid: 8725
type: Paper
components:
- pos: 3.57955,14.599159
parent: 127
type: Transform
- uid: 8726
type: Paper
components:
- pos: 3.4858,14.599159
parent: 127
type: Transform
- uid: 8727
type: Paper
components:
- pos: 3.376425,14.614784
parent: 127
type: Transform
- uid: 8728
type: Pen
components:
- pos: 3.2983,14.521034
parent: 127
type: Transform
- uid: 8729
type: CableApcExtension
components:
- pos: -5.5,-6.5
parent: 127
type: Transform
- uid: 8730
type: CableApcExtension
components:
- pos: -4.5,-6.5
parent: 127
type: Transform
...

View file

@ -262,4 +262,17 @@
maxVol: 500
- type: DrainableSolution
solution: drainBuffer
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/metalbreak.ogg

View file

@ -28,7 +28,7 @@
- shape:
!type:PhysShapeCircle
radius: 0.45
density: 235
density: 75
mask:
- MachineMask
layer:

View file

@ -21,7 +21,7 @@
- shape:
!type:PhysShapeCircle
radius: 0.45
density: 235
density: 75
layer: # doesn't collide with artifact storage
- Opaque
- BulletImpassable

View file

@ -7,3 +7,22 @@
- type: Sprite
sprite: Structures/Furniture/furniture.rsi
state: dresser
- type: Damageable
damageModifierSet: Wood
damageContainer: Inorganic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:SpawnEntitiesBehavior
spawn:
MaterialWoodPlank1:
min: 3
max: 3
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: Tag
tags:
- Wooden

View file

@ -19,6 +19,20 @@
- type: DrainableSolution
solution: tank
- type: ReagentTank
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 40
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/metalbreak.ogg
- type: entity
name: sink

View file

@ -64,6 +64,20 @@
- type: Construction
graph: AirAlarm
node: air_alarm
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/metalbreak.ogg
placement:
mode: SnapgridCenter
snap:

View file

@ -36,6 +36,21 @@
- type: ContainerContainer
containers:
ItemCabinet: !type:ContainerSlot
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 40
behaviors:
- !type:EmptyAllContainersBehaviour
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/metalbreak.ogg
placement:
mode: SnapgridCenter

View file

@ -75,6 +75,20 @@
- type: Construction
graph: FireAlarm
node: fire_alarm
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 80
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/metalbreak.ogg
placement:
mode: SnapgridCenter
snap:

View file

@ -46,6 +46,17 @@
type: WiresBoundUserInterface
- type: StaticPrice
price: 200
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/metalbreak.ogg
placement:
mode: SnapgridCenter
snap:

View file

@ -58,6 +58,20 @@
- type: SignalTransmitter
outputs:
Pressed: []
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 40
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/metalbreak.ogg
- type: entity
id: ApcNetSwitch

View file

@ -268,12 +268,6 @@
spawn: FloorTileItemSilver
maxCount: 30
- type: stack
id: FloorTileGCircuit
name: gcircuit floor tile
spawn: FloorTileItemGCircuit
maxCount: 30
- type: stack
id: FloorTileBCircuit
name: bcircuit floor tile

View file

@ -97,7 +97,7 @@
- type: artifactEffect #bornana
id: EffectBananaSpawn
targetDepth: 1
targetDepth: 0
effectHint: artifact-effect-hint-creation
components:
- type: SpawnArtifact
@ -188,6 +188,20 @@
types:
Structural: 100
- type: artifactEffect
id: EffectGas
targetDepth: 2
effectHint: artifact-effect-hint-environment
components:
- type: GasArtifact
- type: artifactEffect
id: EffectBlink
targetDepth: 2
effectHint: artifact-effect-hint-displacement
components:
- type: RandomTeleportArtifact
- type: artifactEffect
id: EffectMaterialSpawn
targetDepth: 3
@ -227,19 +241,6 @@
- UltraHighPowerMicroLaserStockPart
- SuperMatterBinStockPart
- type: artifactEffect
id: EffectGas
targetDepth: 3
effectHint: artifact-effect-hint-environment
components:
- type: GasArtifact
- type: artifactEffect
id: EffectBlink
targetDepth: 3
effectHint: artifact-effect-hint-displacement
components:
- type: RandomTeleportArtifact
- type: artifactEffect
id: EffectDisease
@ -258,7 +259,7 @@
- type: artifactEffect
id: EffectRareMaterialSpawn
targetDepth: 4
targetDepth: 3
effectHint: artifact-effect-hint-creation
components:
- type: SpawnArtifact
@ -272,7 +273,7 @@
- type: artifactEffect
id: EffectPowerGen20K
targetDepth: 4
targetDepth: 3
effectHint: artifact-effect-hint-release
components:
- type: PowerSupplier
@ -280,7 +281,7 @@
- type: artifactEffect
id: EffectHeat
targetDepth: 4
targetDepth: 3
effectHint: artifact-effect-hint-release
components:
- type: TemperatureArtifact
@ -288,7 +289,7 @@
- type: artifactEffect
id: EffectFoamDangerous
targetDepth: 4
targetDepth: 3
effectHint: artifact-effect-hint-biochemical
components:
- type: FoamArtifact