Merge branch 'master' into meta-remove-wizard-robes

This commit is contained in:
scrivoy
2025-04-03 08:32:40 +02:00
30 changed files with 296 additions and 211 deletions

View File

@@ -103,7 +103,7 @@ public sealed partial class AirAlarmWindow : FancyWindow
_temperature.SetMarkup(Loc.GetString("air-alarm-ui-window-temperature", ("tempC", $"{TemperatureHelpers.KelvinToCelsius(state.TemperatureAverage):0.#}"), ("temperature", $"{state.TemperatureAverage:0.##}")));
_alarmState.SetMarkup(Loc.GetString("air-alarm-ui-window-alarm-state",
("color", ColorForAlarm(state.AlarmType)),
("state", $"{state.AlarmType}")));
("state", state.AlarmType)));
UpdateModeSelector(state.Mode);
UpdateAutoMode(state.AutoMode);
foreach (var (addr, dev) in state.DeviceData)

View File

@@ -27,11 +27,11 @@ public sealed partial class SensorInfo : BoxContainer
_address = address;
SensorAddress.Title = $"{address} : {data.AlarmState}";
SensorAddress.Title = Loc.GetString("air-alarm-ui-window-listing-title", ("address", _address), ("state", data.AlarmState));
AlarmStateLabel.SetMarkup(Loc.GetString("air-alarm-ui-window-alarm-state-indicator",
("color", AirAlarmWindow.ColorForAlarm(data.AlarmState)),
("state", $"{data.AlarmState}")));
("state", data.AlarmState)));
PressureLabel.SetMarkup(Loc.GetString("air-alarm-ui-window-pressure-indicator",
("color", AirAlarmWindow.ColorForThreshold(data.Pressure, data.PressureThreshold)),
("pressure", $"{data.Pressure:0.##}")));
@@ -90,11 +90,11 @@ public sealed partial class SensorInfo : BoxContainer
public void ChangeData(AtmosSensorData data)
{
SensorAddress.Title = $"{_address} : {data.AlarmState}";
SensorAddress.Title = Loc.GetString("air-alarm-ui-window-listing-title", ("address", _address), ("state", data.AlarmState));
AlarmStateLabel.SetMarkup(Loc.GetString("air-alarm-ui-window-alarm-state-indicator",
("color", AirAlarmWindow.ColorForAlarm(data.AlarmState)),
("state", $"{data.AlarmState}")));
("state", data.AlarmState)));
PressureLabel.SetMarkup(Loc.GetString("air-alarm-ui-window-pressure-indicator",
("color", AirAlarmWindow.ColorForThreshold(data.Pressure, data.PressureThreshold)),

View File

@@ -52,7 +52,7 @@ public sealed class RotationVisualizerSystem : SharedRotationVisualsSystem
// Stop the current rotate animation and then start a new one
if (_animation.HasRunningAnimation(animationComp, animationKey))
{
_animation.Stop(animationComp, animationKey);
_animation.Stop((uid, animationComp), animationKey);
}
var animation = new Animation

View File

@@ -42,21 +42,9 @@ namespace Content.Server.Access.Systems
access.Tags.UnionWith(targetAccess.Tags);
var addedLength = access.Tags.Count - beforeLength;
if (addedLength == 0)
{
_popupSystem.PopupEntity(Loc.GetString("agent-id-no-new", ("card", args.Target)), args.Target.Value, args.User);
return;
}
Dirty(uid, access);
if (addedLength == 1)
{
_popupSystem.PopupEntity(Loc.GetString("agent-id-new-1", ("card", args.Target)), args.Target.Value, args.User);
return;
}
_popupSystem.PopupEntity(Loc.GetString("agent-id-new", ("number", addedLength), ("card", args.Target)), args.Target.Value, args.User);
if (addedLength > 0)
Dirty(uid, access);
}
private void AfterUIOpen(EntityUid uid, AgentIDCardComponent component, AfterActivatableUIOpenEvent args)

View File

@@ -43,5 +43,13 @@ namespace Content.Server.Administration.Commands
_entities.System<MindSystem>().ControlMob(player.UserId, target.Value);
}
public CompletionResult GetCompletion(IConsoleShell shell, string[] args)
{
if (args.Length != 1)
return CompletionResult.Empty;
return CompletionResult.FromOptions(CompletionHelper.NetEntities(args[0], entManager: _entities));
}
}
}

View File

@@ -1,4 +1,5 @@
using Content.Shared.Body.Components;
using Content.Shared.IdentityManagement;
using Content.Shared.Inventory;
using Content.Shared.Popups;
using JetBrains.Annotations;
@@ -25,7 +26,8 @@ public sealed partial class BurnBodyBehavior : IThresholdBehavior
}
}
sharedPopupSystem.PopupCoordinates(Loc.GetString("bodyburn-text-others", ("name", bodyId)), transformSystem.GetMoverCoordinates(bodyId), PopupType.LargeCaution);
var bodyIdentity = Identity.Entity(bodyId, system.EntityManager);
sharedPopupSystem.PopupCoordinates(Loc.GetString("bodyburn-text-others", ("name", bodyIdentity)), transformSystem.GetMoverCoordinates(bodyId), PopupType.LargeCaution);
system.EntityManager.QueueDeleteEntity(bodyId);
}

View File

@@ -13,6 +13,7 @@ using Robust.Shared.Serialization.Manager;
using System.Numerics;
using Robust.Shared.Audio;
using Robust.Shared.Audio.Systems;
using Robust.Shared.GameStates;
using Robust.Shared.Utility;
namespace Content.Server.Dragon;
@@ -33,11 +34,20 @@ public sealed class DragonRiftSystem : EntitySystem
{
base.Initialize();
SubscribeLocalEvent<DragonRiftComponent, ComponentGetState>(OnGetState);
SubscribeLocalEvent<DragonRiftComponent, ExaminedEvent>(OnExamined);
SubscribeLocalEvent<DragonRiftComponent, AnchorStateChangedEvent>(OnAnchorChange);
SubscribeLocalEvent<DragonRiftComponent, ComponentShutdown>(OnShutdown);
}
private void OnGetState(Entity<DragonRiftComponent> ent, ref ComponentGetState args)
{
args.State = new DragonRiftComponentState
{
State = ent.Comp.State,
};
}
public override void Update(float frameTime)
{
base.Update(frameTime);

View File

@@ -59,7 +59,7 @@ public sealed class MagicMirrorSystem : SharedMagicMirrorSystem
_popup.PopupEntity(
component.Target == message.Actor
? Loc.GetString("magic-mirror-blocked-by-hat-self")
: Loc.GetString("magic-mirror-blocked-by-hat-self-target"),
: Loc.GetString("magic-mirror-blocked-by-hat-self-target", ("target", Identity.Entity(message.Actor, EntityManager))),
message.Actor,
message.Actor,
PopupType.Medium);
@@ -95,7 +95,7 @@ public sealed class MagicMirrorSystem : SharedMagicMirrorSystem
}
else
{
_popup.PopupEntity(Loc.GetString("magic-mirror-change-slot-target", ("user", Identity.Name(message.Actor, EntityManager))), component.Target.Value, component.Target.Value, PopupType.Medium);
_popup.PopupEntity(Loc.GetString("magic-mirror-change-slot-target", ("user", Identity.Entity(message.Actor, EntityManager))), component.Target.Value, component.Target.Value, PopupType.Medium);
}
component.DoAfter = doAfterId;
@@ -175,7 +175,7 @@ public sealed class MagicMirrorSystem : SharedMagicMirrorSystem
}
else
{
_popup.PopupEntity(Loc.GetString("magic-mirror-change-color-target", ("user", Identity.Name(message.Actor, EntityManager))), component.Target.Value, component.Target.Value, PopupType.Medium);
_popup.PopupEntity(Loc.GetString("magic-mirror-change-color-target", ("user", Identity.Entity(message.Actor, EntityManager))), component.Target.Value, component.Target.Value, PopupType.Medium);
}
component.DoAfter = doAfterId;
@@ -253,7 +253,7 @@ public sealed class MagicMirrorSystem : SharedMagicMirrorSystem
}
else
{
_popup.PopupEntity(Loc.GetString("magic-mirror-remove-slot-target", ("user", Identity.Name(message.Actor, EntityManager))), component.Target.Value, component.Target.Value, PopupType.Medium);
_popup.PopupEntity(Loc.GetString("magic-mirror-remove-slot-target", ("user", Identity.Entity(message.Actor, EntityManager))), component.Target.Value, component.Target.Value, PopupType.Medium);
}
component.DoAfter = doAfterId;
@@ -331,7 +331,7 @@ public sealed class MagicMirrorSystem : SharedMagicMirrorSystem
}
else
{
_popup.PopupEntity(Loc.GetString("magic-mirror-add-slot-target", ("user", Identity.Name(message.Actor, EntityManager))), component.Target.Value, component.Target.Value, PopupType.Medium);
_popup.PopupEntity(Loc.GetString("magic-mirror-add-slot-target", ("user", Identity.Entity(message.Actor, EntityManager))), component.Target.Value, component.Target.Value, PopupType.Medium);
}
component.DoAfter = doAfterId;

View File

@@ -85,11 +85,11 @@ public sealed class MindSystem : SharedMindSystem
{
if (base.TryGetMind(user, out mindId, out mind))
{
DebugTools.Assert(_players.GetPlayerData(user).ContentData() is not { } data || data.Mind == mindId);
DebugTools.Assert(!_players.TryGetPlayerData(user, out var playerData) || playerData.ContentData() is not { } data || data.Mind == mindId);
return true;
}
DebugTools.Assert(_players.GetPlayerData(user).ContentData()?.Mind == null);
DebugTools.Assert(!_players.TryGetPlayerData(user, out var pData) || pData.ContentData()?.Mind == null);
return false;
}

View File

@@ -86,7 +86,7 @@ public sealed partial class MoveToOperator : HTNOperator, IHtnConditionalShutdow
return (false, null);
if (!_entManager.TryGetComponent<MapGridComponent>(xform.GridUid, out var ownerGrid) ||
!_entManager.TryGetComponent<MapGridComponent>(targetCoordinates.GetGridUid(_entManager), out var targetGrid))
!_entManager.TryGetComponent<MapGridComponent>(_transform.GetGrid(targetCoordinates), out var targetGrid))
{
return (false, null);
}
@@ -155,8 +155,8 @@ public sealed partial class MoveToOperator : HTNOperator, IHtnConditionalShutdow
{
if (blackboard.TryGetValue<EntityCoordinates>(NPCBlackboard.OwnerCoordinates, out var coordinates, _entManager))
{
var mapCoords = coordinates.ToMap(_entManager, _transform);
_steering.PrunePath(uid, mapCoords, targetCoordinates.ToMapPos(_entManager, _transform) - mapCoords.Position, result.Path);
var mapCoords = _transform.ToMapCoordinates(coordinates);
_steering.PrunePath(uid, mapCoords, _transform.ToMapCoordinates(targetCoordinates).Position - mapCoords.Position, result.Path);
}
comp.CurrentPath = new Queue<PathPoly>(result.Path);

View File

@@ -2,10 +2,6 @@ using System.Diagnostics.CodeAnalysis;
using System.Numerics;
using System.Threading;
using System.Threading.Tasks;
using Content.Server.Destructible;
using Content.Shared.Access.Components;
using Content.Shared.Climbing.Components;
using Content.Shared.Doors.Components;
using Content.Shared.NPC;
using Content.Shared.Physics;
using Robust.Shared.Collections;
@@ -281,7 +277,7 @@ public sealed partial class PathfindingSystem
var gridUid = ev.Component.GridUid;
var oldGridUid = ev.OldPosition.EntityId == ev.NewPosition.EntityId
? gridUid
: ev.OldPosition.GetGridUid(EntityManager);
: _transform.GetGrid((ev.Entity.Owner, ev.Component));
if (oldGridUid != null && oldGridUid != gridUid)
{
@@ -395,7 +391,7 @@ public sealed partial class PathfindingSystem
private Vector2i GetOrigin(EntityCoordinates coordinates, EntityUid gridUid)
{
var localPos = Vector2.Transform(coordinates.ToMapPos(EntityManager, _transform), _transform.GetInvWorldMatrix(gridUid));
var localPos = Vector2.Transform(_transform.ToMapCoordinates(coordinates).Position, _transform.GetInvWorldMatrix(gridUid));
return new Vector2i((int) Math.Floor(localPos.X / ChunkSize), (int) Math.Floor(localPos.Y / ChunkSize));
}

View File

@@ -461,7 +461,7 @@ public sealed partial class NPCSteeringSystem : SharedNPCSteeringSystem
return;
}
var targetPos = steering.Coordinates.ToMap(EntityManager, _transform);
var targetPos = _transform.ToMapCoordinates(steering.Coordinates);
var ourPos = _transform.GetMapCoordinates(uid, xform: xform);
PrunePath(uid, ourPos, targetPos.Position - ourPos.Position, result.Path);

View File

@@ -21,6 +21,7 @@ namespace Content.Server.Rotatable
[Dependency] private readonly PopupSystem _popup = default!;
[Dependency] private readonly ActionBlockerSystem _actionBlocker = default!;
[Dependency] private readonly SharedInteractionSystem _interaction = default!;
[Dependency] private readonly SharedTransformSystem _transform = default!;
public override void Initialize()
{
@@ -112,7 +113,7 @@ namespace Content.Server.Rotatable
var entity = EntityManager.SpawnEntity(component.MirrorEntity, oldTransform.Coordinates);
var newTransform = EntityManager.GetComponent<TransformComponent>(entity);
newTransform.LocalRotation = oldTransform.LocalRotation;
newTransform.Anchored = false;
_transform.Unanchor(entity, newTransform);
EntityManager.DeleteEntity(uid);
}

View File

@@ -1,25 +1,4 @@
Entries:
- author: ScarKy0
changes:
- message: Secret doors no longer tell you if they're welded shut on examine.
type: Tweak
id: 7622
time: '2024-11-19T05:07:02.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/33365
- author: ArZarLordOfMango
changes:
- message: Most toggleable clothing must now be equipped to toggle their actions.
type: Fix
id: 7623
time: '2024-11-19T20:31:38.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/32826
- author: Plykiya
changes:
- message: The SWAT crate from cargo now requires armory access to open.
type: Fix
id: 7624
time: '2024-11-20T00:57:01.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/33415
- author: SlamBamActionman
changes:
- message: It's no longer possible to drag an item out of a container's UI to drop
@@ -3900,3 +3879,24 @@
id: 8121
time: '2025-04-01T16:43:19.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/36241
- author: MisterImp
changes:
- message: A new recipe has been added for pizza made with world peas, world peazza.
type: Add
id: 8122
time: '2025-04-01T23:26:53.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/35191
- author: Fildrance
changes:
- message: fixed missing deconstruct on RCD
type: Fix
id: 8123
time: '2025-04-02T16:11:35.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/36255
- author: qwerltaz
changes:
- message: Dragon rifts now shine a different color depending on charge progress.
type: Add
id: 8124
time: '2025-04-02T18:37:35.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/36216

View File

@@ -1,6 +1,9 @@
agent-id-no-new = Didn't gain any new accesses from {THE($card)}.
agent-id-new-1 = Gained one new access from {THE($card)}.
agent-id-new = Gained {$number} new accesses from {THE($card)}.
agent-id-new = { $number ->
[0] Didn't gain any new accesses from {THE($card)}.
[one] Gained one new access from {THE($card)}.
*[other] Gained {$number} new accesses from {THE($card)}.
}
agent-id-card-current-name = Name:
agent-id-card-current-job = Job:
agent-id-card-job-icon-label = Job icon:

View File

@@ -15,12 +15,21 @@ air-alarm-ui-window-resync-devices-label = Resync
air-alarm-ui-window-mode-label = Mode
air-alarm-ui-window-auto-mode-label = Auto mode
-air-alarm-state-name = { $state ->
[normal] Normal
[warning] Warning
[danger] Danger
[emagged] Emagged
*[invalid] Invalid
}
air-alarm-ui-window-listing-title = {$address} : {-air-alarm-state-name(state:$state)}
air-alarm-ui-window-pressure = {$pressure} kPa
air-alarm-ui-window-pressure-indicator = Pressure: [color={$color}]{$pressure} kPa[/color]
air-alarm-ui-window-temperature = {$tempC} C ({$temperature} K)
air-alarm-ui-window-temperature-indicator = Temperature: [color={$color}]{$tempC} C ({$temperature} K)[/color]
air-alarm-ui-window-alarm-state = [color={$color}]{$state}[/color]
air-alarm-ui-window-alarm-state-indicator = Status: [color={$color}]{$state}[/color]
air-alarm-ui-window-alarm-state = [color={$color}]{-air-alarm-state-name(state:$state)}[/color]
air-alarm-ui-window-alarm-state-indicator = Status: [color={$color}]{-air-alarm-state-name(state:$state)}[/color]
air-alarm-ui-window-tab-vents = Vents
air-alarm-ui-window-tab-scrubbers = Scrubbers

View File

@@ -1 +1 @@
bodyburn-text-others = {$name} burns to ash!
bodyburn-text-others = {CAPITALIZE(THE($name))} burns to ash!

View File

@@ -6,10 +6,10 @@ magic-mirror-remove-slot-self = You're removing some of your hair.
magic-mirror-change-slot-self = You're changing your hairstyle.
magic-mirror-change-color-self = You're changing your hair color.
magic-mirror-add-slot-target = Hair is being added to you by {$user}.
magic-mirror-remove-slot-target = Your hair is being cut off by {$user}.
magic-mirror-change-slot-target = Your hairstyle is being changed by {$user}.
magic-mirror-change-color-target = Your hair color is being changed by {$user}.
magic-mirror-add-slot-target = Hair is being added to you by {THE($user)}.
magic-mirror-remove-slot-target = Your hair is being cut off by {THE($user)}.
magic-mirror-change-slot-target = Your hairstyle is being changed by {THE($user)}.
magic-mirror-change-color-target = Your hair color is being changed by {THE($user)}.
magic-mirror-blocked-by-hat-self = You need to take off your hat before changing your hair.
magic-mirror-blocked-by-hat-self-target = You try to change their hair but their clothes gets in the way.
magic-mirror-blocked-by-hat-self-target = You try to change {POSS-ADJ($target)} hair but {POSS-ADJ($target)} clothes get in the way.

View File

@@ -5,6 +5,6 @@ pointing-system-point-at-self = You point at yourself.
pointing-system-point-at-other = You point at {THE($other)}.
pointing-system-point-at-self-others = {CAPITALIZE(THE($otherName))} points at {REFLEXIVE($other)}.
pointing-system-point-at-other-others = {CAPITALIZE(THE($otherName))} points at {THE($other)}.
pointing-system-point-at-you-other = {$otherName} points at you.
pointing-system-point-at-you-other = {CAPITALIZE(THE($otherName))} points at you.
pointing-system-point-at-tile = You point at the {$tileName}.
pointing-system-other-point-at-tile = {CAPITALIZE(THE($otherName))} points at the {$tileName}.

View File

@@ -1,74 +1,79 @@
- type: entity
id: LockerMedicineFilled
suffix: Filled
parent: LockerMedicine
components:
- type: StorageFill
contents:
- id: BoxSyringe
- id: ChemistryBottleEpinephrine
amount: 1
- id: Brutepack
amount: 2
- id: Ointment
amount: 2
- id: Bloodpack
amount: 2
- id: Gauze
- type: entityTable
id: LockerFillMedicine
table: !type:AllSelector
children:
- id: BoxSyringe
- id: ChemistryBottleEpinephrine
- id: Brutepack
amount: !type:ConstantNumberSelector
value: 2
- id: Ointment
amount: !type:ConstantNumberSelector
value: 2
- id: Bloodpack
amount: !type:ConstantNumberSelector
value: 2
- id: Gauze
- type: entity
parent: LockerMedicine
id: LockerMedicineFilled
suffix: Filled
components:
- type: EntityTableContainerFill
containers:
entity_storage: !type:NestedSelector
tableId: LockerFillMedicine
- type: entity
parent: LockerWallMedical
id: LockerWallMedicalFilled
name: medicine wall locker
suffix: Filled
parent: LockerWallMedical
components:
- type: StorageFill
contents:
- id: BoxSyringe
- id: ChemistryBottleEpinephrine
amount: 1
- id: Brutepack
amount: 2
- id: Ointment
amount: 2
- id: Bloodpack
amount: 2
- id: Gauze
- type: EntityTableContainerFill
containers:
entity_storage: !type:NestedSelector
tableId: LockerFillMedicine
- type: entityTable
id: LockerFillMedicalDoctor
table: !type:AllSelector
children:
- id: HandheldHealthAnalyzer
prob: 0.6
- id: ClothingHeadMirror
prob: 0.1
- id: ClothingHandsGlovesLatex
- id: ClothingHeadsetMedical
- id: ClothingEyesHudMedical
- !type:GroupSelector
children:
- id: ClothingHeadHatSurgcapGreen
weight: 0.1
- id: ClothingHeadHatSurgcapPurple
weight: 0.05
- id: ClothingHeadHatSurgcapBlue
weight: 0.90
- !type:GroupSelector
children:
- id: UniformScrubsColorBlue
weight: 0.5
- id: UniformScrubsColorGreen
weight: 0.1
- id: UniformScrubsColorPurple
weight: 0.05
- id: ClothingMaskSterile
- type: entity
parent: LockerMedical
id: LockerMedicalFilled
suffix: Filled
parent: LockerMedical
components:
- type: StorageFill
contents:
- id: HandheldHealthAnalyzer
prob: 0.6
- id: ClothingHeadMirror
prob: 0.1
- id: ClothingHandsGlovesLatex
- id: ClothingHeadsetMedical
- id: ClothingEyesHudMedical
- id: ClothingHeadHatSurgcapGreen
prob: 0.1
orGroup: Surgcaps
- id: ClothingHeadHatSurgcapPurple
prob: 0.05
orGroup: Surgcaps
- id: ClothingHeadHatSurgcapBlue
prob: 0.90
orGroup: Surgcaps
- id: UniformScrubsColorBlue
prob: 0.5
orGroup: Surgshrubs
- id: UniformScrubsColorGreen
prob: 0.1
orGroup: Surgshrubs
- id: UniformScrubsColorPurple
prob: 0.05
orGroup: Surgshrubs
- id: ClothingMaskSterile
- type: EntityTableContainerFill
containers:
entity_storage: !type:NestedSelector
tableId: LockerFillMedicalDoctor
- type: entity
parent: LockerWallMedical
@@ -76,72 +81,64 @@
name: medical doctor's wall locker
suffix: Filled
components:
- type: StorageFill
contents:
- id: HandheldHealthAnalyzer
prob: 0.6
- id: ClothingHandsGlovesLatex
- id: ClothingHeadsetMedical
- id: ClothingEyesHudMedical
- id: ClothingHeadHatSurgcapGreen
prob: 0.1
orGroup: Surgcaps
- id: ClothingHeadHatSurgcapPurple
prob: 0.05
orGroup: Surgcaps
- id: ClothingHeadHatSurgcapBlue
prob: 0.90
orGroup: Surgcaps
- id: UniformScrubsColorBlue
prob: 0.5
orGroup: Surgshrubs
- id: UniformScrubsColorGreen
prob: 0.1
orGroup: Surgshrubs
- id: UniformScrubsColorPurple
prob: 0.05
orGroup: Surgshrubs
- id: ClothingMaskSterile
- type: EntityTableContainerFill
containers:
entity_storage: !type:NestedSelector
tableId: LockerFillMedicalDoctor
- type: entityTable
id: LockerFillChemistry
table: !type:AllSelector
children:
- id: BoxSyringe
- id: BoxBeaker
- id: BoxBeaker
prob: 0.3
- id: BoxPillCanister
- id: BoxBottle
- id: BoxVial
- id: PlasmaChemistryVial
- id: ChemBag
- id: ClothingHandsGlovesLatex
- id: ClothingHeadsetMedical
- id: ClothingMaskSterile
- id: HandLabeler
prob: 0.5
- type: entity
parent: LockerChemistry
id: LockerChemistryFilled
suffix: Filled
parent: LockerChemistry
components:
- type: StorageFill
contents:
- id: BoxSyringe
- id: BoxBeaker
- id: BoxBeaker
prob: 0.3
- id: BoxPillCanister
- id: BoxBottle
- id: BoxVial
- id: PlasmaChemistryVial
- id: ChemBag
- id: ClothingHandsGlovesLatex
- id: ClothingHeadsetMedical
- id: ClothingMaskSterile
- id: HandLabeler
prob: 0.5
- type: EntityTableContainerFill
containers:
entity_storage: !type:NestedSelector
tableId: LockerFillChemistry
- type: entityTable
id: LockerFillParamedic
table: !type:AllSelector
children:
- id: ClothingOuterHardsuitVoidParamed
- id: ClothingOuterCoatParamedicWB
- id: ClothingHeadHatParamedicsoft
- id: ClothingOuterWinterPara
- id: ClothingUniformJumpsuitParamedic
- id: ClothingUniformJumpskirtParamedic
- id: ClothingEyesHudMedical
- id: ClothingHandsGlovesLatex
- id: ClothingHeadsetMedical
- id: ClothingMaskSterile
- id: HandheldGPSBasic
- id: MedkitFilled
prob: 0.3
- type: entity
parent: LockerParamedic
id: LockerParamedicFilled
suffix: Filled
parent: LockerParamedic
components:
- type: StorageFill
contents:
- id: ClothingOuterHardsuitVoidParamed
- id: ClothingOuterCoatParamedicWB
- id: ClothingHeadHatParamedicsoft
- id: ClothingOuterWinterPara
- id: ClothingUniformJumpsuitParamedic
- id: ClothingUniformJumpskirtParamedic
- id: ClothingEyesHudMedical
- id: ClothingHandsGlovesLatex
- id: ClothingHeadsetMedical
- id: ClothingMaskSterile
- id: HandheldGPSBasic
- id: MedkitFilled
prob: 0.3
- type: EntityTableContainerFill
containers:
entity_storage: !type:NestedSelector
tableId: LockerFillParamedic

View File

@@ -187,12 +187,12 @@
- HeadTop
- HeadSide
#Templar Helmet
#Knight Helmet
- type: entity
parent: ClothingHeadBase
id: ClothingHeadHelmetTemplar
name: templar helmet
description: DEUS VULT!
name: knight helmet
description: Decorative helmet fashioned to resemble the knights of old.
components:
- type: Sprite
sprite: Clothing/Head/Helmets/templar.rsi

View File

@@ -67,4 +67,5 @@
- FoodBurgerCrazy
- FoodPizzaArnoldSlice
- FoodPizzaUraniumSlice
- FoodPizzaWorldpeasSlice
rareChance: 0.05

View File

@@ -681,3 +681,55 @@
Quantity: 0.8
- ReagentId: Fiber
Quantity: 1.5
- type: entity
name: world peazza
parent: FoodPizzaBase
id: FoodPizzaWorldpeas
description: Modern diplomacy in the shape of a disc.
components:
- type: FlavorProfile
flavors:
- bread
- numbingtranquility
- type: Sprite
layers:
- state: worldpeas
- type: SliceableFood
slice: FoodPizzaWorldpeasSlice
- type: SolutionContainerManager
solutions:
food:
maxVol: 45
reagents:
- ReagentId: Nutriment
Quantity: 20
- ReagentId: Happiness
Quantity: 12
- ReagentId: Pax
Quantity: 8
- type: entity
name: slice of world peazza
parent: FoodPizzaSliceBase
id: FoodPizzaWorldpeasSlice
description: Dividing the world up is a small price to pay for harmony.
components:
- type: FlavorProfile
flavors:
- bread
- numbingtranquility
- type: Sprite
layers:
- state: worldpeas-slice
- type: SolutionContainerManager
solutions:
food:
maxVol: 10
reagents:
- ReagentId: Nutriment
Quantity: 3.5
- ReagentId: Happiness
Quantity: 2
- ReagentId: Pax
Quantity: 1.5

View File

@@ -273,6 +273,9 @@
- id: FoodPizzaCotton
prob: 0.10
orGroup: Pizza
- id: FoodPizzaWorldpeas
prob: 0.05
orGroup: Pizza
- id: KnifePlastic
- type: entity

View File

@@ -2,7 +2,7 @@
parent: BaseItem
name: light replacer
id: LightReplacer
description: An item which uses magnets to easily replace broken lights. Refill By adding more lights into the replacer.
description: An item which uses magnets to easily replace broken lights. Refill by adding more lights into the replacer.
components:
- type: Sprite
sprite: Objects/Specific/Janitorial/light_replacer.rsi

View File

@@ -2,25 +2,25 @@
- type: rcd
id: Invalid # Hidden prototype - do not add to RCDs
mode: Invalid
- type: rcd
id: Deconstruct
name: rcd-component-deconstruct
category: Main
category: WallsAndFlooring
sprite: /Textures/Interface/Radial/RCD/deconstruct.png
mode: Deconstruct
prototype: EffectRCDDeconstructPreview
rotation: Camera
- type: rcd
id: DeconstructLattice # Hidden prototype - do not add to RCDs
id: DeconstructLattice # Hidden prototype - do not add to RCDs
name: rcd-component-deconstruct
mode: Deconstruct
cost: 2
delay: 0
rotation: Camera
fx: EffectRCDConstruct0
- type: rcd
id: DeconstructTile # Hidden prototype - do not add to RCDs
name: rcd-component-deconstruct
@@ -30,7 +30,7 @@
rotation: Camera
fx: EffectRCDDeconstruct4
# Flooring
# Flooring
- type: rcd
id: Plating
name: rcd-component-plating
@@ -44,7 +44,7 @@
rules:
- CanBuildOnEmptyTile
fx: EffectRCDConstruct1
- type: rcd
id: FloorSteel
name: rcd-component-floor-steel
@@ -80,7 +80,7 @@
category: WallsAndFlooring
sprite: /Textures/Interface/Radial/RCD/solid_wall.png
mode: ConstructObject
prototype: WallSolid
prototype: WallSolid
cost: 4
delay: 2
collisionMask: FullTileMask
@@ -113,7 +113,7 @@
- IsWindow
rotation: Fixed
fx: EffectRCDConstruct2
- type: rcd
id: WindowDirectional
category: WindowsAndGrilles
@@ -128,7 +128,7 @@
- IsWindow
rotation: User
fx: EffectRCDConstruct1
- type: rcd
id: ReinforcedWindow
category: WindowsAndGrilles
@@ -142,7 +142,7 @@
- IsWindow
rotation: User
fx: EffectRCDConstruct3
- type: rcd
id: WindowReinforcedDirectional
category: WindowsAndGrilles
@@ -170,7 +170,7 @@
collisionMask: FullTileMask
rotation: Camera
fx: EffectRCDConstruct4
- type: rcd
id: AirlockGlass
category: Airlocks
@@ -182,7 +182,7 @@
collisionMask: FullTileMask
rotation: Camera
fx: EffectRCDConstruct4
- type: rcd
id: Firelock
category: Airlocks
@@ -208,7 +208,7 @@
collisionBounds: "-0.23,-0.49,0.23,-0.36"
rotation: User
fx: EffectRCDConstruct1
- type: rcd
id: BulbLight
category: Lighting
@@ -235,7 +235,7 @@
- MustBuildOnSubfloor
rotation: Fixed
fx: EffectRCDConstruct0
- type: rcd
id: MVCable
category: Electrical
@@ -248,7 +248,7 @@
- MustBuildOnSubfloor
rotation: Fixed
fx: EffectRCDConstruct0
- type: rcd
id: HVCable
category: Electrical
@@ -261,7 +261,7 @@
- MustBuildOnSubfloor
rotation: Fixed
fx: EffectRCDConstruct0
- type: rcd
id: CableTerminal
category: Electrical

View File

@@ -718,6 +718,15 @@
FoodDoughCottonFlat: 1
CottonBol: 4
- type: microwaveMealRecipe
id: RecipeWorldpeasPizza
name: world peazza recipe
result: FoodPizzaWorldpeas
time: 30
solids:
FoodDoughFlat: 1
FoodWorldPeas: 3
#Italian
- type: microwaveMealRecipe
id: RecipeBoiledSpaghetti

View File

@@ -1,7 +1,7 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Taken from tgstation and modified by Swept at https://github.com/tgstation/tgstation/commit/40d75cc340c63582fb66ce15bf75a36115f6bdaa, Spicy Rock Pizza modified from margherita pizza by mkanke, cotton made by mlexf (discord 1143460554963427380)",
"copyright": "Taken from tgstation and modified by Swept at https://github.com/tgstation/tgstation/commit/40d75cc340c63582fb66ce15bf75a36115f6bdaa, Spicy Rock Pizza modified from margherita pizza by mkanke, cotton made by mlexf (discord 1143460554963427380), world peazza modified from margherita by MisterImp (GitHub)",
"size": {
"x": 32,
"y": 32
@@ -149,6 +149,12 @@
},
{
"name": "uranium-slice"
},
{
"name": "worldpeas"
},
{
"name": "worldpeas-slice"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 284 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 B