Всякое по мелочи (#148)
* fix: у мартышек снова отображается одежда * fix: с зеркалом снова можно взаимодействовать * tweak: шлюзы культа теперь работают как двери, а не шлюзы * remove: убрано отображение текущего патрона у револьверов * add: новые плитки для мапперов
@@ -102,13 +102,8 @@ public sealed class ClientClothingSystem : ClothingSystem
|
||||
// if that returned nothing, attempt to find generic data
|
||||
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
|
||||
if (!TryGetDefaultVisuals(uid, item, args.Slot, inventory.SpeciesId, humanoid, out layers))
|
||||
if (!TryGetDefaultVisuals(uid, item, args.Slot, inventory.SpeciesId, args.Equipee, out layers))
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -139,7 +134,7 @@ public sealed class ClientClothingSystem : ClothingSystem
|
||||
ClothingComponent clothing,
|
||||
string slot,
|
||||
string? speciesId,
|
||||
HumanoidAppearanceComponent humanoid,
|
||||
EntityUid? target,
|
||||
[NotNullWhen(true)] out List<PrototypeLayerData>? layers)
|
||||
{
|
||||
layers = null;
|
||||
@@ -166,10 +161,13 @@ public sealed class ClientClothingSystem : ClothingSystem
|
||||
state = $"{clothing.EquippedState}";
|
||||
|
||||
// body type specific
|
||||
var bodyTypeProto = _prototypeManager.Index<BodyTypePrototype>(humanoid.BodyType);
|
||||
if (rsi.TryGetState($"{state}-{bodyTypeProto.Name}", out _))
|
||||
if (TryComp(target, out HumanoidAppearanceComponent? humanoid))
|
||||
{
|
||||
state = $"{state}-{bodyTypeProto.Name}";
|
||||
var bodyTypeProto = _prototypeManager.Index<BodyTypePrototype>(humanoid.BodyType);
|
||||
if (rsi.TryGetState($"{state}-{bodyTypeProto.Name}", out _))
|
||||
{
|
||||
state = $"{state}-{bodyTypeProto.Name}";
|
||||
}
|
||||
}
|
||||
|
||||
// species specific
|
||||
@@ -389,4 +387,4 @@ public sealed class ClientClothingSystem : ClothingSystem
|
||||
|
||||
sprite.LayerSetVisible(layer, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -434,7 +434,7 @@ public sealed partial class GunSystem
|
||||
}));
|
||||
}
|
||||
|
||||
public void Update(int currentIndex, bool?[] bullets)
|
||||
public void Update(bool?[] bullets)
|
||||
{
|
||||
_bulletsList.RemoveAllChildren();
|
||||
var capacity = bullets.Length;
|
||||
@@ -456,10 +456,10 @@ public sealed partial class GunSystem
|
||||
var texture = StaticIoC.ResC.GetTexture(texturePath);
|
||||
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 colorA = Color.FromHex("#b68f0e");
|
||||
@@ -467,7 +467,6 @@ public sealed partial class GunSystem
|
||||
var colorSpentA = Color.FromHex("#b50e25");
|
||||
var colorSpentB = Color.FromHex("#d3745f");
|
||||
var colorGoneA = Color.FromHex("#000000");
|
||||
var colorGoneB = Color.FromHex("#222222");
|
||||
|
||||
var altColor = false;
|
||||
var scale = 1.3f;
|
||||
@@ -480,15 +479,6 @@ public sealed partial class GunSystem
|
||||
{
|
||||
MinSize = texture.Size * scale,
|
||||
};
|
||||
if (i == currentIndex)
|
||||
{
|
||||
box.AddChild(new TextureRect
|
||||
{
|
||||
Texture = texture,
|
||||
TextureScale = new Vector2(scale, scale),
|
||||
ModulateSelfOverride = Color.LimeGreen,
|
||||
});
|
||||
}
|
||||
Color color;
|
||||
Texture bulletTexture = texture;
|
||||
|
||||
@@ -506,7 +496,7 @@ public sealed partial class GunSystem
|
||||
}
|
||||
else
|
||||
{
|
||||
color = altColor ? colorGoneA : colorGoneB;
|
||||
color = colorGoneA;
|
||||
}
|
||||
|
||||
box.AddChild(new TextureRect
|
||||
|
||||
@@ -29,7 +29,7 @@ public sealed partial class GunSystem
|
||||
private void OnRevolverAmmoUpdate(EntityUid uid, RevolverAmmoProviderComponent component, UpdateAmmoCounterEvent args)
|
||||
{
|
||||
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)
|
||||
|
||||
@@ -39,6 +39,7 @@ public sealed class MagicMirrorSystem : EntitySystem
|
||||
subs.Event<MagicMirrorRemoveSlotMessage>(OnTryMagicMirrorRemoveSlot);
|
||||
});
|
||||
|
||||
SubscribeLocalEvent<MagicMirrorComponent, InteractHandEvent>(OnMagicMirrorInWorldInteract);
|
||||
SubscribeLocalEvent<MagicMirrorComponent, AfterInteractEvent>(OnMagicMirrorInteract);
|
||||
|
||||
SubscribeLocalEvent<MagicMirrorComponent, MagicMirrorSelectDoAfterEvent>(OnSelectSlotDoAfter);
|
||||
@@ -49,9 +50,19 @@ public sealed class MagicMirrorSystem : EntitySystem
|
||||
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;
|
||||
}
|
||||
@@ -92,16 +103,17 @@ public sealed class MagicMirrorSystem : EntitySystem
|
||||
Marking = message.Marking,
|
||||
};
|
||||
|
||||
_doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, user, component.SelectSlotTime, doAfter, uid, target: target, used: uid)
|
||||
{
|
||||
DistanceThreshold = SharedInteractionSystem.InteractionRange,
|
||||
BreakOnTargetMove = true,
|
||||
BreakOnDamage = true,
|
||||
BreakOnHandChange = false,
|
||||
BreakOnUserMove = true,
|
||||
BreakOnWeightlessMove = false,
|
||||
NeedHand = true
|
||||
}, out var doAfterId);
|
||||
_doAfterSystem.TryStartDoAfter(
|
||||
new DoAfterArgs(EntityManager, user, component.SelectSlotTime, doAfter, uid, target: target, used: uid)
|
||||
{
|
||||
DistanceThreshold = SharedInteractionSystem.InteractionRange,
|
||||
BreakOnTargetMove = true,
|
||||
BreakOnDamage = true,
|
||||
BreakOnHandChange = false,
|
||||
BreakOnUserMove = true,
|
||||
BreakOnWeightlessMove = false,
|
||||
NeedHand = true
|
||||
}, out var doAfterId);
|
||||
|
||||
component.DoAfter = doAfterId;
|
||||
_audio.PlayPvs(component.ChangeHairSound, uid);
|
||||
@@ -134,7 +146,10 @@ public sealed class MagicMirrorSystem : EntitySystem
|
||||
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)
|
||||
return;
|
||||
@@ -149,19 +164,24 @@ public sealed class MagicMirrorSystem : EntitySystem
|
||||
Colors = message.Colors,
|
||||
};
|
||||
|
||||
_doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, user, component.ChangeSlotTime, doAfter, uid, target: target, used: uid)
|
||||
{
|
||||
BreakOnTargetMove = true,
|
||||
BreakOnDamage = true,
|
||||
BreakOnHandChange = false,
|
||||
BreakOnUserMove = true,
|
||||
BreakOnWeightlessMove = false,
|
||||
NeedHand = true
|
||||
}, out var doAfterId);
|
||||
_doAfterSystem.TryStartDoAfter(
|
||||
new DoAfterArgs(EntityManager, user, component.ChangeSlotTime, doAfter, uid, target: target, used: uid)
|
||||
{
|
||||
BreakOnTargetMove = true,
|
||||
BreakOnDamage = true,
|
||||
BreakOnHandChange = false,
|
||||
BreakOnUserMove = true,
|
||||
BreakOnWeightlessMove = false,
|
||||
NeedHand = true
|
||||
}, out var 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)
|
||||
return;
|
||||
@@ -189,7 +209,10 @@ public sealed class MagicMirrorSystem : EntitySystem
|
||||
// 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)
|
||||
return;
|
||||
@@ -203,22 +226,26 @@ public sealed class MagicMirrorSystem : EntitySystem
|
||||
Slot = message.Slot,
|
||||
};
|
||||
|
||||
_doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, user, component.RemoveSlotTime, doAfter, uid, target: target, used: uid)
|
||||
{
|
||||
DistanceThreshold = SharedInteractionSystem.InteractionRange,
|
||||
BreakOnTargetMove = true,
|
||||
BreakOnDamage = true,
|
||||
BreakOnHandChange = false,
|
||||
BreakOnUserMove = true,
|
||||
BreakOnWeightlessMove = false,
|
||||
NeedHand = true
|
||||
}, out var doAfterId);
|
||||
_doAfterSystem.TryStartDoAfter(
|
||||
new DoAfterArgs(EntityManager, user, component.RemoveSlotTime, doAfter, uid, target: target, used: uid)
|
||||
{
|
||||
DistanceThreshold = SharedInteractionSystem.InteractionRange,
|
||||
BreakOnTargetMove = true,
|
||||
BreakOnDamage = true,
|
||||
BreakOnHandChange = false,
|
||||
BreakOnUserMove = true,
|
||||
BreakOnWeightlessMove = false,
|
||||
NeedHand = true
|
||||
}, out var doAfterId);
|
||||
|
||||
component.DoAfter = doAfterId;
|
||||
_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)
|
||||
return;
|
||||
@@ -245,7 +272,10 @@ public sealed class MagicMirrorSystem : EntitySystem
|
||||
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)
|
||||
return;
|
||||
@@ -261,7 +291,8 @@ public sealed class MagicMirrorSystem : EntitySystem
|
||||
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,
|
||||
BreakOnDamage = true,
|
||||
@@ -274,9 +305,11 @@ public sealed class MagicMirrorSystem : EntitySystem
|
||||
component.DoAfter = doAfterId;
|
||||
_audio.PlayPvs(component.ChangeHairSound, uid);
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
MarkingCategories category;
|
||||
@@ -301,7 +334,6 @@ public sealed class MagicMirrorSystem : EntitySystem
|
||||
_humanoid.AddMarking(component.Target.Value, marking, Color.Black);
|
||||
|
||||
UpdateInterface(uid, component.Target.Value, component);
|
||||
|
||||
}
|
||||
|
||||
private void UpdateInterface(EntityUid mirrorUid, EntityUid targetUid, MagicMirrorComponent component)
|
||||
@@ -332,4 +364,4 @@ public sealed class MagicMirrorSystem : EntitySystem
|
||||
{
|
||||
ent.Comp.Target = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Resources/Locale/en-US/_white/tiles.ftl
Normal 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 = белое стальное покрытие мозаикой (альтернативное)
|
||||
@@ -35,8 +35,8 @@ gun-chamber-bolt-closed = Затвор закрыт
|
||||
gun-chamber-bolt-opened = Затвор открыт
|
||||
gun-chamber-bolt-close = Закрыть завтор
|
||||
gun-chamber-bolt-open = Открыть затвор
|
||||
gun-chamber-bolt-closed-state = закрыт
|
||||
gun-chamber-bolt-open-state = открыт
|
||||
gun-chamber-bolt-closed-state = открыт
|
||||
gun-chamber-bolt-open-state = закрыт
|
||||
gun-chamber-rack = Разрядить
|
||||
|
||||
# MagazineAmmoProvider
|
||||
|
||||
@@ -3,18 +3,19 @@
|
||||
name: mirror
|
||||
description: 'Mirror mirror on the wall , who''s the most robust of them all?'
|
||||
components:
|
||||
- type: WallMount
|
||||
- type: Sprite
|
||||
sprite: Structures/Wallmounts/mirror.rsi
|
||||
state: mirror
|
||||
- type: InteractionOutline
|
||||
- type: Clickable
|
||||
- type: Transform
|
||||
anchored: true
|
||||
- type: MagicMirror
|
||||
- type: ActivatableUI
|
||||
key: enum.MagicMirrorUiKey.Key
|
||||
- type: UserInterface
|
||||
interfaces:
|
||||
- key: enum.MagicMirrorUiKey.Key
|
||||
type: MagicMirrorBoundUserInterface
|
||||
- type: WallMount
|
||||
- type: Sprite
|
||||
sprite: Structures/Wallmounts/mirror.rsi
|
||||
state: mirror
|
||||
- type: InteractionOutline
|
||||
- type: Clickable
|
||||
- type: Transform
|
||||
anchored: true
|
||||
- type: MagicMirror
|
||||
- type: ActivatableUI
|
||||
key: enum.MagicMirrorUiKey.Key
|
||||
singleUser: true
|
||||
- type: UserInterface
|
||||
interfaces:
|
||||
- key: enum.MagicMirrorUiKey.Key
|
||||
type: MagicMirrorBoundUserInterface
|
||||
|
||||
162
Resources/Prototypes/White/Tiles/floors.yml
Normal 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
|
||||
@@ -1,6 +1,6 @@
|
||||
- type: entity
|
||||
id: AirlockGlassCult
|
||||
parent: BaseStructure
|
||||
parent: BaseMaterialDoor
|
||||
name: runic airlock
|
||||
description: Strange glass airlock with a rune.
|
||||
components:
|
||||
@@ -8,65 +8,32 @@
|
||||
soundGroups:
|
||||
Brute:
|
||||
collection: GlassSmash
|
||||
- type: InteractionOutline
|
||||
- type: Sprite
|
||||
sprite: /Textures/White/Cult/Structures/cult_airlock.rsi
|
||||
layers:
|
||||
- state: closed
|
||||
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: Fixtures
|
||||
fixtures:
|
||||
fix1:
|
||||
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
|
||||
bodyType: Static
|
||||
- type: Occluder
|
||||
enabled: false
|
||||
- type: Door
|
||||
occludes: false
|
||||
bumpOpen: true
|
||||
crushDamage:
|
||||
types:
|
||||
Blunt: 15
|
||||
openSound:
|
||||
path: /Audio/Machines/airlock_open.ogg
|
||||
path: /Audio/Effects/stonedoor_openclose.ogg
|
||||
closeSound:
|
||||
path: /Audio/Machines/airlock_close.ogg
|
||||
path: /Audio/Effects/stonedoor_openclose.ogg
|
||||
denySound:
|
||||
path: /Audio/Machines/airlock_deny.ogg
|
||||
- type: Airlock
|
||||
openUnlitVisible: true
|
||||
- type: DoorBolt
|
||||
- type: Appearance
|
||||
- type: Airtight
|
||||
fixVacuum: true
|
||||
noAirWhenFullyAirBlocked: false
|
||||
- type: RadiationBlocker
|
||||
resistance: 2
|
||||
- type: Occluder
|
||||
enabled: false
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
damageModifierSet: Metallic
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
@@ -76,8 +43,6 @@
|
||||
- !type:DoActsBehavior
|
||||
acts: ["Destruction"]
|
||||
- type: RunicDoor
|
||||
- type: ApcPowerReceiver
|
||||
needsPower: false
|
||||
- type: Construction
|
||||
graph: AirlockGlassCult
|
||||
node: airlock
|
||||
|
||||
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 120 B |
|
Before Width: | Height: | Size: 298 B |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 120 B |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 946 B |
|
Before Width: | Height: | Size: 675 B |
|
Before Width: | Height: | Size: 120 B |
|
Before Width: | Height: | Size: 312 B |
@@ -41,157 +41,6 @@
|
||||
},
|
||||
{
|
||||
"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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
Before Width: | Height: | Size: 120 B |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 962 B |
|
Before Width: | Height: | Size: 328 B |
|
Before Width: | Height: | Size: 576 B |
|
Before Width: | Height: | Size: 120 B |
|
Before Width: | Height: | Size: 617 B |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 448 B |
|
Before Width: | Height: | Size: 507 B |
|
Before Width: | Height: | Size: 420 B |
|
Before Width: | Height: | Size: 356 B |
BIN
Resources/Textures/White/Tiles/dark_herringbone.png
Normal file
|
After Width: | Height: | Size: 337 B |
BIN
Resources/Textures/White/Tiles/dark_pavement.png
Normal file
|
After Width: | Height: | Size: 247 B |
BIN
Resources/Textures/White/Tiles/dark_pavement_vertical.png
Normal file
|
After Width: | Height: | Size: 252 B |
BIN
Resources/Textures/White/Tiles/steel_herringbone.png
Normal file
|
After Width: | Height: | Size: 337 B |
BIN
Resources/Textures/White/Tiles/steel_pavement.png
Normal file
|
After Width: | Height: | Size: 247 B |
BIN
Resources/Textures/White/Tiles/steel_pavement_vertical.png
Normal file
|
After Width: | Height: | Size: 252 B |
BIN
Resources/Textures/White/Tiles/white_herringbone.png
Normal file
|
After Width: | Height: | Size: 337 B |
BIN
Resources/Textures/White/Tiles/white_pavement.png
Normal file
|
After Width: | Height: | Size: 247 B |
BIN
Resources/Textures/White/Tiles/white_pavement_vertical.png
Normal file
|
After Width: | Height: | Size: 252 B |