Всякое по мелочи (#148)

* fix: у мартышек снова отображается одежда

* fix: с зеркалом снова можно взаимодействовать

* tweak: шлюзы культа теперь работают как двери, а не шлюзы

* remove: убрано отображение текущего патрона у револьверов

* add: новые плитки для мапперов
This commit is contained in:
Remuchi
2024-03-01 15:51:17 +07:00
committed by GitHub
parent 95589e29c1
commit 9430e2d53c
41 changed files with 284 additions and 276 deletions

View File

@@ -102,13 +102,8 @@ public sealed class ClientClothingSystem : ClothingSystem
// if that returned nothing, attempt to find generic data // if that returned nothing, attempt to find generic data
if (layers == null && !item.ClothingVisuals.TryGetValue(args.Slot, out layers)) if (layers == null && !item.ClothingVisuals.TryGetValue(args.Slot, out layers))
{ {
if (!TryComp(args.Equipee, out HumanoidAppearanceComponent? humanoid))
{
return;
}
// No generic data either. Attempt to generate defaults from the item's RSI & item-prefixes // No generic data either. Attempt to generate defaults from the item's RSI & item-prefixes
if (!TryGetDefaultVisuals(uid, item, args.Slot, inventory.SpeciesId, humanoid, out layers)) if (!TryGetDefaultVisuals(uid, item, args.Slot, inventory.SpeciesId, args.Equipee, out layers))
return; return;
} }
@@ -139,7 +134,7 @@ public sealed class ClientClothingSystem : ClothingSystem
ClothingComponent clothing, ClothingComponent clothing,
string slot, string slot,
string? speciesId, string? speciesId,
HumanoidAppearanceComponent humanoid, EntityUid? target,
[NotNullWhen(true)] out List<PrototypeLayerData>? layers) [NotNullWhen(true)] out List<PrototypeLayerData>? layers)
{ {
layers = null; layers = null;
@@ -166,10 +161,13 @@ public sealed class ClientClothingSystem : ClothingSystem
state = $"{clothing.EquippedState}"; state = $"{clothing.EquippedState}";
// body type specific // body type specific
var bodyTypeProto = _prototypeManager.Index<BodyTypePrototype>(humanoid.BodyType); if (TryComp(target, out HumanoidAppearanceComponent? humanoid))
if (rsi.TryGetState($"{state}-{bodyTypeProto.Name}", out _))
{ {
state = $"{state}-{bodyTypeProto.Name}"; var bodyTypeProto = _prototypeManager.Index<BodyTypePrototype>(humanoid.BodyType);
if (rsi.TryGetState($"{state}-{bodyTypeProto.Name}", out _))
{
state = $"{state}-{bodyTypeProto.Name}";
}
} }
// species specific // species specific
@@ -389,4 +387,4 @@ public sealed class ClientClothingSystem : ClothingSystem
sprite.LayerSetVisible(layer, true); sprite.LayerSetVisible(layer, true);
} }
} }

View File

@@ -434,7 +434,7 @@ public sealed partial class GunSystem
})); }));
} }
public void Update(int currentIndex, bool?[] bullets) public void Update(bool?[] bullets)
{ {
_bulletsList.RemoveAllChildren(); _bulletsList.RemoveAllChildren();
var capacity = bullets.Length; var capacity = bullets.Length;
@@ -456,10 +456,10 @@ public sealed partial class GunSystem
var texture = StaticIoC.ResC.GetTexture(texturePath); var texture = StaticIoC.ResC.GetTexture(texturePath);
var spentTexture = StaticIoC.ResC.GetTexture("/Textures/Interface/ItemStatus/Bullets/empty.png"); var spentTexture = StaticIoC.ResC.GetTexture("/Textures/Interface/ItemStatus/Bullets/empty.png");
FillBulletRow(currentIndex, bullets, _bulletsList, texture, spentTexture); FillBulletRow(bullets, _bulletsList, texture, spentTexture);
} }
private void FillBulletRow(int currentIndex, bool?[] bullets, Control container, Texture texture, Texture emptyTexture) private void FillBulletRow(bool?[] bullets, Control container, Texture texture, Texture emptyTexture)
{ {
var capacity = bullets.Length; var capacity = bullets.Length;
var colorA = Color.FromHex("#b68f0e"); var colorA = Color.FromHex("#b68f0e");
@@ -467,7 +467,6 @@ public sealed partial class GunSystem
var colorSpentA = Color.FromHex("#b50e25"); var colorSpentA = Color.FromHex("#b50e25");
var colorSpentB = Color.FromHex("#d3745f"); var colorSpentB = Color.FromHex("#d3745f");
var colorGoneA = Color.FromHex("#000000"); var colorGoneA = Color.FromHex("#000000");
var colorGoneB = Color.FromHex("#222222");
var altColor = false; var altColor = false;
var scale = 1.3f; var scale = 1.3f;
@@ -480,15 +479,6 @@ public sealed partial class GunSystem
{ {
MinSize = texture.Size * scale, MinSize = texture.Size * scale,
}; };
if (i == currentIndex)
{
box.AddChild(new TextureRect
{
Texture = texture,
TextureScale = new Vector2(scale, scale),
ModulateSelfOverride = Color.LimeGreen,
});
}
Color color; Color color;
Texture bulletTexture = texture; Texture bulletTexture = texture;
@@ -506,7 +496,7 @@ public sealed partial class GunSystem
} }
else else
{ {
color = altColor ? colorGoneA : colorGoneB; color = colorGoneA;
} }
box.AddChild(new TextureRect box.AddChild(new TextureRect

View File

@@ -29,7 +29,7 @@ public sealed partial class GunSystem
private void OnRevolverAmmoUpdate(EntityUid uid, RevolverAmmoProviderComponent component, UpdateAmmoCounterEvent args) private void OnRevolverAmmoUpdate(EntityUid uid, RevolverAmmoProviderComponent component, UpdateAmmoCounterEvent args)
{ {
if (args.Control is not RevolverStatusControl control) return; if (args.Control is not RevolverStatusControl control) return;
control.Update(component.CurrentIndex, component.Chambers); control.Update(component.Chambers);
} }
private void OnRevolverCounter(EntityUid uid, RevolverAmmoProviderComponent component, AmmoCounterControlEvent args) private void OnRevolverCounter(EntityUid uid, RevolverAmmoProviderComponent component, AmmoCounterControlEvent args)

View File

@@ -39,6 +39,7 @@ public sealed class MagicMirrorSystem : EntitySystem
subs.Event<MagicMirrorRemoveSlotMessage>(OnTryMagicMirrorRemoveSlot); subs.Event<MagicMirrorRemoveSlotMessage>(OnTryMagicMirrorRemoveSlot);
}); });
SubscribeLocalEvent<MagicMirrorComponent, InteractHandEvent>(OnMagicMirrorInWorldInteract);
SubscribeLocalEvent<MagicMirrorComponent, AfterInteractEvent>(OnMagicMirrorInteract); SubscribeLocalEvent<MagicMirrorComponent, AfterInteractEvent>(OnMagicMirrorInteract);
SubscribeLocalEvent<MagicMirrorComponent, MagicMirrorSelectDoAfterEvent>(OnSelectSlotDoAfter); SubscribeLocalEvent<MagicMirrorComponent, MagicMirrorSelectDoAfterEvent>(OnSelectSlotDoAfter);
@@ -49,9 +50,19 @@ public sealed class MagicMirrorSystem : EntitySystem
SubscribeLocalEvent<MagicMirrorComponent, BoundUserInterfaceCheckRangeEvent>(OnMirrorRangeCheck); SubscribeLocalEvent<MagicMirrorComponent, BoundUserInterfaceCheckRangeEvent>(OnMirrorRangeCheck);
} }
private void OnMirrorRangeCheck(EntityUid uid, MagicMirrorComponent component, ref BoundUserInterfaceCheckRangeEvent args) private void OnMagicMirrorInWorldInteract(Entity<MagicMirrorComponent> mirror, ref InteractHandEvent args)
{ {
if (!Exists(component.Target) || !_interaction.InRangeUnobstructed(uid, component.Target.Value)) UpdateInterface(mirror.Owner, args.User, mirror.Comp);
}
private void OnMirrorRangeCheck(
EntityUid uid,
MagicMirrorComponent component,
ref BoundUserInterfaceCheckRangeEvent args)
{
component.Target ??= args.Player.AttachedEntity;
if (!component.Target.HasValue || !_interaction.InRangeUnobstructed(uid, component.Target!.Value))
{ {
args.Result = BoundUserInterfaceRangeResult.Fail; args.Result = BoundUserInterfaceRangeResult.Fail;
} }
@@ -92,16 +103,17 @@ public sealed class MagicMirrorSystem : EntitySystem
Marking = message.Marking, Marking = message.Marking,
}; };
_doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, user, component.SelectSlotTime, doAfter, uid, target: target, used: uid) _doAfterSystem.TryStartDoAfter(
{ new DoAfterArgs(EntityManager, user, component.SelectSlotTime, doAfter, uid, target: target, used: uid)
DistanceThreshold = SharedInteractionSystem.InteractionRange, {
BreakOnTargetMove = true, DistanceThreshold = SharedInteractionSystem.InteractionRange,
BreakOnDamage = true, BreakOnTargetMove = true,
BreakOnHandChange = false, BreakOnDamage = true,
BreakOnUserMove = true, BreakOnHandChange = false,
BreakOnWeightlessMove = false, BreakOnUserMove = true,
NeedHand = true BreakOnWeightlessMove = false,
}, out var doAfterId); NeedHand = true
}, out var doAfterId);
component.DoAfter = doAfterId; component.DoAfter = doAfterId;
_audio.PlayPvs(component.ChangeHairSound, uid); _audio.PlayPvs(component.ChangeHairSound, uid);
@@ -134,7 +146,10 @@ public sealed class MagicMirrorSystem : EntitySystem
UpdateInterface(uid, component.Target.Value, component); UpdateInterface(uid, component.Target.Value, component);
} }
private void OnTryMagicMirrorChangeColor(EntityUid uid, MagicMirrorComponent component, MagicMirrorChangeColorMessage message) private void OnTryMagicMirrorChangeColor(
EntityUid uid,
MagicMirrorComponent component,
MagicMirrorChangeColorMessage message)
{ {
if (component.Target is not { } target || message.Session.AttachedEntity is not { } user) if (component.Target is not { } target || message.Session.AttachedEntity is not { } user)
return; return;
@@ -149,19 +164,24 @@ public sealed class MagicMirrorSystem : EntitySystem
Colors = message.Colors, Colors = message.Colors,
}; };
_doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, user, component.ChangeSlotTime, doAfter, uid, target: target, used: uid) _doAfterSystem.TryStartDoAfter(
{ new DoAfterArgs(EntityManager, user, component.ChangeSlotTime, doAfter, uid, target: target, used: uid)
BreakOnTargetMove = true, {
BreakOnDamage = true, BreakOnTargetMove = true,
BreakOnHandChange = false, BreakOnDamage = true,
BreakOnUserMove = true, BreakOnHandChange = false,
BreakOnWeightlessMove = false, BreakOnUserMove = true,
NeedHand = true BreakOnWeightlessMove = false,
}, out var doAfterId); NeedHand = true
}, out var doAfterId);
component.DoAfter = doAfterId; component.DoAfter = doAfterId;
} }
private void OnChangeColorDoAfter(EntityUid uid, MagicMirrorComponent component, MagicMirrorChangeColorDoAfterEvent args)
private void OnChangeColorDoAfter(
EntityUid uid,
MagicMirrorComponent component,
MagicMirrorChangeColorDoAfterEvent args)
{ {
if (args.Handled || args.Target == null || args.Cancelled) if (args.Handled || args.Target == null || args.Cancelled)
return; return;
@@ -189,7 +209,10 @@ public sealed class MagicMirrorSystem : EntitySystem
// UpdateInterface(uid, component.Target, message.Session); // UpdateInterface(uid, component.Target, message.Session);
} }
private void OnTryMagicMirrorRemoveSlot(EntityUid uid, MagicMirrorComponent component, MagicMirrorRemoveSlotMessage message) private void OnTryMagicMirrorRemoveSlot(
EntityUid uid,
MagicMirrorComponent component,
MagicMirrorRemoveSlotMessage message)
{ {
if (component.Target is not { } target || message.Session.AttachedEntity is not { } user) if (component.Target is not { } target || message.Session.AttachedEntity is not { } user)
return; return;
@@ -203,22 +226,26 @@ public sealed class MagicMirrorSystem : EntitySystem
Slot = message.Slot, Slot = message.Slot,
}; };
_doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, user, component.RemoveSlotTime, doAfter, uid, target: target, used: uid) _doAfterSystem.TryStartDoAfter(
{ new DoAfterArgs(EntityManager, user, component.RemoveSlotTime, doAfter, uid, target: target, used: uid)
DistanceThreshold = SharedInteractionSystem.InteractionRange, {
BreakOnTargetMove = true, DistanceThreshold = SharedInteractionSystem.InteractionRange,
BreakOnDamage = true, BreakOnTargetMove = true,
BreakOnHandChange = false, BreakOnDamage = true,
BreakOnUserMove = true, BreakOnHandChange = false,
BreakOnWeightlessMove = false, BreakOnUserMove = true,
NeedHand = true BreakOnWeightlessMove = false,
}, out var doAfterId); NeedHand = true
}, out var doAfterId);
component.DoAfter = doAfterId; component.DoAfter = doAfterId;
_audio.PlayPvs(component.ChangeHairSound, uid); _audio.PlayPvs(component.ChangeHairSound, uid);
} }
private void OnRemoveSlotDoAfter(EntityUid uid, MagicMirrorComponent component, MagicMirrorRemoveSlotDoAfterEvent args) private void OnRemoveSlotDoAfter(
EntityUid uid,
MagicMirrorComponent component,
MagicMirrorRemoveSlotDoAfterEvent args)
{ {
if (args.Handled || args.Target == null || args.Cancelled) if (args.Handled || args.Target == null || args.Cancelled)
return; return;
@@ -245,7 +272,10 @@ public sealed class MagicMirrorSystem : EntitySystem
UpdateInterface(uid, component.Target.Value, component); UpdateInterface(uid, component.Target.Value, component);
} }
private void OnTryMagicMirrorAddSlot(EntityUid uid, MagicMirrorComponent component, MagicMirrorAddSlotMessage message) private void OnTryMagicMirrorAddSlot(
EntityUid uid,
MagicMirrorComponent component,
MagicMirrorAddSlotMessage message)
{ {
if (component.Target == null) if (component.Target == null)
return; return;
@@ -261,7 +291,8 @@ public sealed class MagicMirrorSystem : EntitySystem
Category = message.Category, Category = message.Category,
}; };
_doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, message.Session.AttachedEntity.Value, component.AddSlotTime, doAfter, uid, target: component.Target.Value, used: uid) _doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, message.Session.AttachedEntity.Value,
component.AddSlotTime, doAfter, uid, target: component.Target.Value, used: uid)
{ {
BreakOnTargetMove = true, BreakOnTargetMove = true,
BreakOnDamage = true, BreakOnDamage = true,
@@ -274,9 +305,11 @@ public sealed class MagicMirrorSystem : EntitySystem
component.DoAfter = doAfterId; component.DoAfter = doAfterId;
_audio.PlayPvs(component.ChangeHairSound, uid); _audio.PlayPvs(component.ChangeHairSound, uid);
} }
private void OnAddSlotDoAfter(EntityUid uid, MagicMirrorComponent component, MagicMirrorAddSlotDoAfterEvent args) private void OnAddSlotDoAfter(EntityUid uid, MagicMirrorComponent component, MagicMirrorAddSlotDoAfterEvent args)
{ {
if (args.Handled || args.Target == null || args.Cancelled || !TryComp(component.Target, out HumanoidAppearanceComponent? humanoid)) if (args.Handled || args.Target == null || args.Cancelled ||
!TryComp(component.Target, out HumanoidAppearanceComponent? humanoid))
return; return;
MarkingCategories category; MarkingCategories category;
@@ -301,7 +334,6 @@ public sealed class MagicMirrorSystem : EntitySystem
_humanoid.AddMarking(component.Target.Value, marking, Color.Black); _humanoid.AddMarking(component.Target.Value, marking, Color.Black);
UpdateInterface(uid, component.Target.Value, component); UpdateInterface(uid, component.Target.Value, component);
} }
private void UpdateInterface(EntityUid mirrorUid, EntityUid targetUid, MagicMirrorComponent component) private void UpdateInterface(EntityUid mirrorUid, EntityUid targetUid, MagicMirrorComponent component)
@@ -332,4 +364,4 @@ public sealed class MagicMirrorSystem : EntitySystem
{ {
ent.Comp.Target = null; ent.Comp.Target = null;
} }
} }

View File

@@ -0,0 +1,11 @@
tiles-dark-floor-pavement-alt = тёмное стальное покрытие (альтернативное)
tiles-dark-floor-pavement-vertical-alt = тёмное стальное вертикальное покрытие (альтернативное)
tiles-dark-floor-herringbone-alt = тёмное стальное покрытие мозаикой (альтернативное)
tiles-steel-floor-pavement-alt = стальное покрытие (альтернативное)
tiles-steel-floor-pavement-vertical-alt = стальное вертикальное покрытие (альтернативное)
tiles-steel-floor-herringbone-alt = стальное покрытие мозаикой (альтернативное)
tiles-white-floor-pavement-alt = белое стальное покрытие (альтернативное)
tiles-white-floor-pavement-vertical-alt = белое стальное вертикальное покрытие (альтернативное)
tiles-white-floor-herringbone-alt = белое стальное покрытие мозаикой (альтернативное)

View File

@@ -35,8 +35,8 @@ gun-chamber-bolt-closed = Затвор закрыт
gun-chamber-bolt-opened = Затвор открыт gun-chamber-bolt-opened = Затвор открыт
gun-chamber-bolt-close = Закрыть завтор gun-chamber-bolt-close = Закрыть завтор
gun-chamber-bolt-open = Открыть затвор gun-chamber-bolt-open = Открыть затвор
gun-chamber-bolt-closed-state = закрыт gun-chamber-bolt-closed-state = открыт
gun-chamber-bolt-open-state = открыт gun-chamber-bolt-open-state = закрыт
gun-chamber-rack = Разрядить gun-chamber-rack = Разрядить
# MagazineAmmoProvider # MagazineAmmoProvider

View File

@@ -3,18 +3,19 @@
name: mirror name: mirror
description: 'Mirror mirror on the wall , who''s the most robust of them all?' description: 'Mirror mirror on the wall , who''s the most robust of them all?'
components: components:
- type: WallMount - type: WallMount
- type: Sprite - type: Sprite
sprite: Structures/Wallmounts/mirror.rsi sprite: Structures/Wallmounts/mirror.rsi
state: mirror state: mirror
- type: InteractionOutline - type: InteractionOutline
- type: Clickable - type: Clickable
- type: Transform - type: Transform
anchored: true anchored: true
- type: MagicMirror - type: MagicMirror
- type: ActivatableUI - type: ActivatableUI
key: enum.MagicMirrorUiKey.Key key: enum.MagicMirrorUiKey.Key
- type: UserInterface singleUser: true
interfaces: - type: UserInterface
- key: enum.MagicMirrorUiKey.Key interfaces:
type: MagicMirrorBoundUserInterface - key: enum.MagicMirrorUiKey.Key
type: MagicMirrorBoundUserInterface

View File

@@ -0,0 +1,162 @@
- type: tile
id: FloorDarkPavementAlt
name: tiles-dark-floor-pavement-alt
sprite: /Textures/White/Tiles/dark_pavement.png
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemDark
heatCapacity: 10000
- type: tile
id: FloorDarkPavementVerticalAlt
name: tiles-dark-floor-pavement-vertical-alt
sprite: /Textures/White/Tiles/dark_pavement_vertical.png
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemDark
heatCapacity: 10000
- type: tile
id: FloorDarkHerringboneAlt
name: tiles-dark-floor-herringbone-alt
sprite: /Textures/White/Tiles/dark_herringbone.png
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemDark
heatCapacity: 10000
- type: tile
id: FloorSteelHerringboneAlt
name: tiles-steel-floor-herringbone-alt
sprite: /Textures/White/Tiles/steel_herringbone.png
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemSteel
heatCapacity: 10000
- type: tile
id: FloorSteelPavementAlt
name: tiles-steel-floor-pavement-alt
sprite: /Textures/White/Tiles/steel_pavement.png
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepFloor
itemDrop: FloorTileItemSteel
heatCapacity: 10000
- type: tile
id: FloorSteelPavementVerticalAlt
name: tiles-steel-floor-pavement-vertical-alt
sprite: /Textures/White/Tiles/steel_pavement_vertical.png
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemSteel
heatCapacity: 10000
- type: tile
id: FloorWhiteHerringboneAlt
name: tiles-white-floor-herringbone-alt
sprite: /Textures/White/Tiles/white_herringbone.png
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemWhite
heatCapacity: 10000
- type: tile
id: FloorWhitePavementAlt
name: tiles-white-floor-pavement-alt
sprite: /Textures/White/Tiles/white_pavement.png
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemWhite
heatCapacity: 10000
- type: tile
id: FloorWhitePavementVerticalAlt
name: tiles-white-floor-pavement-vertical-alt
sprite: /Textures/White/Tiles/white_pavement_vertical.png
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemWhite
heatCapacity: 10000

View File

@@ -1,6 +1,6 @@
- type: entity - type: entity
id: AirlockGlassCult id: AirlockGlassCult
parent: BaseStructure parent: BaseMaterialDoor
name: runic airlock name: runic airlock
description: Strange glass airlock with a rune. description: Strange glass airlock with a rune.
components: components:
@@ -8,65 +8,32 @@
soundGroups: soundGroups:
Brute: Brute:
collection: GlassSmash collection: GlassSmash
- type: InteractionOutline
- type: Sprite - type: Sprite
sprite: /Textures/White/Cult/Structures/cult_airlock.rsi sprite: /Textures/White/Cult/Structures/cult_airlock.rsi
layers: layers:
- state: closed - state: closed
map: ["enum.DoorVisualLayers.Base"] map: ["enum.DoorVisualLayers.Base"]
- state: closed_unlit
shader: unshaded
map: ["enum.DoorVisualLayers.BaseUnlit"]
- state: welded
map: ["enum.WeldableLayers.BaseWelded"]
visible: false
- state: bolted_unlit
shader: unshaded
map: ["enum.DoorVisualLayers.BaseBolted"]
- state: emergency_unlit
map: ["enum.DoorVisualLayers.BaseEmergencyAccess"]
shader: unshaded
- state: panel_closed
map: ["enum.WiresVisualLayers.MaintenancePanel"]
visible: false
- type: AnimationPlayer
- type: Physics - type: Physics
- type: Fixtures bodyType: Static
fixtures: - type: Occluder
fix1: enabled: false
shape:
!type:PhysShapeAabb
bounds: "-0.49,-0.49,0.49,0.49" # don't want this colliding with walls or they won't close
density: 100
mask:
- FullTileMask
layer:
- GlassAirlockLayer
- type: Door - type: Door
occludes: false occludes: false
bumpOpen: true
crushDamage: crushDamage:
types: types:
Blunt: 15 Blunt: 15
openSound: openSound:
path: /Audio/Machines/airlock_open.ogg path: /Audio/Effects/stonedoor_openclose.ogg
closeSound: closeSound:
path: /Audio/Machines/airlock_close.ogg path: /Audio/Effects/stonedoor_openclose.ogg
denySound: denySound:
path: /Audio/Machines/airlock_deny.ogg path: /Audio/Machines/airlock_deny.ogg
- type: Airlock
openUnlitVisible: true
- type: DoorBolt
- type: Appearance
- type: Airtight - type: Airtight
fixVacuum: true fixVacuum: true
noAirWhenFullyAirBlocked: false noAirWhenFullyAirBlocked: false
- type: RadiationBlocker - type: RadiationBlocker
resistance: 2 resistance: 2
- type: Occluder
enabled: false
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
- type: Destructible - type: Destructible
thresholds: thresholds:
- trigger: - trigger:
@@ -76,8 +43,6 @@
- !type:DoActsBehavior - !type:DoActsBehavior
acts: ["Destruction"] acts: ["Destruction"]
- type: RunicDoor - type: RunicDoor
- type: ApcPowerReceiver
needsPower: false
- type: Construction - type: Construction
graph: AirlockGlassCult graph: AirlockGlassCult
node: airlock node: airlock

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 298 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 946 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 675 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 312 B

View File

@@ -41,157 +41,6 @@
}, },
{ {
"name": "assembly" "name": "assembly"
},
{
"name": "bolted_unlit"
},
{
"name": "welded"
},
{
"name": "closing_unlit",
"delays": [
[
0.1,
0.1,
0.1,
0.1,
0.1,
0.1
]
]
},
{
"name": "deny_unlit",
"delays": [
[
0.1,
0.1,
0.1,
0.1,
0.1,
0.1
]
]
},
{
"name": "emergency_unlit",
"delays": [
[
1.2,
1.2
]
]
},
{
"name": "opening_unlit",
"delays": [
[
0.1,
0.1,
0.1,
0.1,
0.1,
0.1
]
]
},
{
"name": "panel_closed"
},
{
"name": "panel_open"
},
{
"name": "panel_opening",
"delays": [
[
0.1,
0.1,
0.1,
0.1,
0.1,
0.1
]
]
},
{
"name": "panel_closing",
"delays": [
[
0.1,
0.1,
0.1,
0.1,
0.1,
0.1
]
]
},
{
"name": "sparks",
"delays": [
[
0.1,
0.1,
0.1,
0.1,
0.1,
0.1
]
]
},
{
"name": "sparks_damaged",
"delays": [
[
0.1,
0.1,
0.1,
0.1,
0.1,
0.1,
1.7
]
]
},
{
"name": "sparks_open",
"delays": [
[
0.1,
0.1,
0.1,
0.1,
0.1,
0.1
]
]
},
{
"name": "sparks_broken",
"delays": [
[
0.1,
0.1,
0.1,
0.1,
0.1,
0.1
]
]
},
{
"name": "bolted_open_unlit"
},
{
"name": "closed_unlit"
},
{
"name": "emergency_open_unlit"
},
{
"name": "open_unlit"
} }
] ]
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 962 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 328 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 576 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 617 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 448 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 507 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 420 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 356 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 337 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 337 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 337 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 B