Refactor magvisualizer (#8568)
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
using Content.Client.Weapons.Ranged.Systems;
|
||||
|
||||
namespace Content.Client.Weapons.Ranged.Components;
|
||||
|
||||
/// <summary>
|
||||
/// Visualizer for gun mag presence; can change states based on ammo count or toggle visibility entirely.
|
||||
/// </summary>
|
||||
[RegisterComponent, Friend(typeof(GunSystem))]
|
||||
public sealed class MagazineVisualsComponent : Component
|
||||
{
|
||||
/// <summary>
|
||||
/// What RsiState we use.
|
||||
/// </summary>
|
||||
[DataField("magState")] public string? MagState;
|
||||
|
||||
/// <summary>
|
||||
/// How many steps there are
|
||||
/// </summary>
|
||||
[DataField("steps")] public int MagSteps;
|
||||
|
||||
/// <summary>
|
||||
/// Should we hide when the count is 0
|
||||
/// </summary>
|
||||
[DataField("zeroVisible")] public bool ZeroVisible;
|
||||
}
|
||||
|
||||
public enum GunVisualLayers : byte
|
||||
{
|
||||
Base,
|
||||
BaseUnshaded,
|
||||
Mag,
|
||||
MagUnshaded,
|
||||
}
|
||||
@@ -1,62 +1,61 @@
|
||||
using Content.Client.Weapons.Ranged.Components;
|
||||
using Content.Shared.Rounding;
|
||||
using Content.Shared.Weapons.Ranged.Systems;
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Client.GameObjects;
|
||||
using SharedGunSystem = Content.Shared.Weapons.Ranged.Systems.SharedGunSystem;
|
||||
|
||||
namespace Content.Client.Weapons.Ranged.Components;
|
||||
namespace Content.Client.Weapons.Ranged.Systems;
|
||||
|
||||
[UsedImplicitly]
|
||||
public sealed class MagVisualizer : AppearanceVisualizer
|
||||
public sealed partial class GunSystem
|
||||
{
|
||||
[DataField("magState")] private string? _magState;
|
||||
[DataField("steps")] private int _magSteps;
|
||||
[DataField("zeroVisible")] private bool _zeroVisible;
|
||||
|
||||
public override void InitializeEntity(EntityUid entity)
|
||||
private void InitializeMagazineVisuals()
|
||||
{
|
||||
base.InitializeEntity(entity);
|
||||
var sprite = IoCManager.Resolve<IEntityManager>().GetComponent<ISpriteComponent>(entity);
|
||||
SubscribeLocalEvent<MagazineVisualsComponent, ComponentInit>(OnMagazineVisualsInit);
|
||||
SubscribeLocalEvent<MagazineVisualsComponent, AppearanceChangeEvent>(OnMagazineVisualsChange);
|
||||
}
|
||||
|
||||
private void OnMagazineVisualsInit(EntityUid uid, MagazineVisualsComponent component, ComponentInit args)
|
||||
{
|
||||
if (!TryComp<SpriteComponent>(uid, out var sprite)) return;
|
||||
|
||||
if (sprite.LayerMapTryGet(GunVisualLayers.Mag, out _))
|
||||
{
|
||||
sprite.LayerSetState(GunVisualLayers.Mag, $"{_magState}-{_magSteps - 1}");
|
||||
sprite.LayerSetState(GunVisualLayers.Mag, $"{component.MagState}-{component.MagSteps - 1}");
|
||||
sprite.LayerSetVisible(GunVisualLayers.Mag, false);
|
||||
}
|
||||
|
||||
if (sprite.LayerMapTryGet(GunVisualLayers.MagUnshaded, out _))
|
||||
{
|
||||
sprite.LayerSetState(GunVisualLayers.MagUnshaded, $"{_magState}-unshaded-{_magSteps - 1}");
|
||||
sprite.LayerSetState(GunVisualLayers.MagUnshaded, $"{component.MagState}-unshaded-{component.MagSteps - 1}");
|
||||
sprite.LayerSetVisible(GunVisualLayers.MagUnshaded, false);
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnChangeData(AppearanceComponent component)
|
||||
private void OnMagazineVisualsChange(EntityUid uid, MagazineVisualsComponent component, ref AppearanceChangeEvent args)
|
||||
{
|
||||
base.OnChangeData(component);
|
||||
|
||||
// tl;dr
|
||||
// 1.If no mag then hide it OR
|
||||
// 2. If step 0 isn't visible then hide it (mag or unshaded)
|
||||
// 3. Otherwise just do mag / unshaded as is
|
||||
var sprite = IoCManager.Resolve<IEntityManager>().GetComponent<ISpriteComponent>(component.Owner);
|
||||
var sprite = args.Sprite;
|
||||
|
||||
if (!component.TryGetData(AmmoVisuals.MagLoaded, out bool magloaded) ||
|
||||
magloaded)
|
||||
if (sprite == null) return;
|
||||
|
||||
if (!args.AppearanceData.TryGetValue(AmmoVisuals.MagLoaded, out var magloaded) ||
|
||||
magloaded is true)
|
||||
{
|
||||
if (!component.TryGetData(AmmoVisuals.AmmoMax, out int capacity))
|
||||
if (!args.AppearanceData.TryGetValue(AmmoVisuals.AmmoMax, out var capacity))
|
||||
{
|
||||
capacity = _magSteps;
|
||||
capacity = component.MagSteps;
|
||||
}
|
||||
|
||||
if (!component.TryGetData(AmmoVisuals.AmmoCount, out int current))
|
||||
if (!args.AppearanceData.TryGetValue(AmmoVisuals.AmmoCount, out var current))
|
||||
{
|
||||
current = _magSteps;
|
||||
current = component.MagSteps;
|
||||
}
|
||||
|
||||
var step = ContentHelpers.RoundToLevels(current, capacity, _magSteps);
|
||||
var step = ContentHelpers.RoundToLevels((int) current, (int) capacity, component.MagSteps);
|
||||
|
||||
if (step == 0 && !_zeroVisible)
|
||||
if (step == 0 && !component.ZeroVisible)
|
||||
{
|
||||
if (sprite.LayerMapTryGet(GunVisualLayers.Mag, out _))
|
||||
{
|
||||
@@ -74,13 +73,13 @@ public sealed class MagVisualizer : AppearanceVisualizer
|
||||
if (sprite.LayerMapTryGet(GunVisualLayers.Mag, out _))
|
||||
{
|
||||
sprite.LayerSetVisible(GunVisualLayers.Mag, true);
|
||||
sprite.LayerSetState(GunVisualLayers.Mag, $"{_magState}-{step}");
|
||||
sprite.LayerSetState(GunVisualLayers.Mag, $"{component.MagState}-{step}");
|
||||
}
|
||||
|
||||
if (sprite.LayerMapTryGet(GunVisualLayers.MagUnshaded, out _))
|
||||
{
|
||||
sprite.LayerSetVisible(GunVisualLayers.MagUnshaded, true);
|
||||
sprite.LayerSetState(GunVisualLayers.MagUnshaded, $"{_magState}-unshaded-{step}");
|
||||
sprite.LayerSetState(GunVisualLayers.MagUnshaded, $"{component.MagState}-unshaded-{step}");
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -97,11 +96,3 @@ public sealed class MagVisualizer : AppearanceVisualizer
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public enum GunVisualLayers : byte
|
||||
{
|
||||
Base,
|
||||
BaseUnshaded,
|
||||
Mag,
|
||||
MagUnshaded,
|
||||
}
|
||||
@@ -65,6 +65,7 @@ public sealed partial class GunSystem : SharedGunSystem
|
||||
// Plays animated effects on the client.
|
||||
SubscribeNetworkEvent<HitscanEvent>(OnHitscan);
|
||||
|
||||
InitializeMagazineVisuals();
|
||||
InitializeSpentAmmo();
|
||||
}
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@ namespace Content.Server.Entry
|
||||
"DiseaseMachineVisuals",
|
||||
"HandheldGPS",
|
||||
"SpentAmmoVisuals",
|
||||
"MagazineVisuals",
|
||||
"ToggleableLightVisuals",
|
||||
"CableVisualizer",
|
||||
"PotencyVisuals",
|
||||
|
||||
@@ -14,9 +14,8 @@
|
||||
map: ["enum.GunVisualLayers.Base"]
|
||||
- state: mag-1
|
||||
map: ["enum.GunVisualLayers.Mag"]
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
|
||||
@@ -16,12 +16,11 @@
|
||||
- type: Sprite
|
||||
sprite: Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.rsi
|
||||
netsync: false
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
|
||||
# Boxes
|
||||
- type: entity
|
||||
@@ -38,12 +37,11 @@
|
||||
map: ["enum.GunVisualLayers.Base"]
|
||||
- state: mag10-1
|
||||
map: ["enum.GunVisualLayers.Mag"]
|
||||
- type: MagazineVisuals
|
||||
magState: mag10
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag10
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
|
||||
- type: entity
|
||||
parent: BaseMagazineBoxCaselessRifle
|
||||
@@ -59,12 +57,11 @@
|
||||
map: ["enum.GunVisualLayers.Base"]
|
||||
- state: magb-1
|
||||
map: ["enum.GunVisualLayers.Mag"]
|
||||
- type: MagazineVisuals
|
||||
magState: magb
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: magb
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
|
||||
- type: entity
|
||||
parent: BaseMagazineBoxCaselessRifle
|
||||
@@ -81,12 +78,11 @@
|
||||
- state: magb-1
|
||||
map: ["enum.GunVisualLayers.Mag"]
|
||||
- state: rubber-b
|
||||
- type: MagazineVisuals
|
||||
magState: magb
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: magb
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
|
||||
- type: entity
|
||||
parent: BaseMagazineBoxCaselessRifle
|
||||
|
||||
@@ -16,12 +16,11 @@
|
||||
- type: Sprite
|
||||
sprite: Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.rsi
|
||||
netsync: false
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
|
||||
# Boxes
|
||||
- type: entity
|
||||
@@ -38,12 +37,11 @@
|
||||
map: ["enum.GunVisualLayers.Base"]
|
||||
- state: magb-1
|
||||
map: ["enum.GunVisualLayers.Mag"]
|
||||
- type: MagazineVisuals
|
||||
magState: magb
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: magb
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
|
||||
- type: entity
|
||||
parent: BaseMagazineBoxLightRifle
|
||||
|
||||
@@ -15,12 +15,11 @@
|
||||
- type: Sprite
|
||||
sprite: Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi
|
||||
netsync: false
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
|
||||
# Boxes
|
||||
- type: entity
|
||||
|
||||
@@ -16,12 +16,11 @@
|
||||
- type: Sprite
|
||||
sprite: Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi
|
||||
netsync: false
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
|
||||
# Boxes
|
||||
- type: entity
|
||||
|
||||
@@ -15,12 +15,11 @@
|
||||
- type: Sprite
|
||||
sprite: Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi
|
||||
netsync: false
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
|
||||
# Boxes
|
||||
- type: entity
|
||||
@@ -37,12 +36,11 @@
|
||||
map: ["enum.GunVisualLayers.Base"]
|
||||
- state: magb-1
|
||||
map: ["enum.GunVisualLayers.Mag"]
|
||||
- type: MagazineVisuals
|
||||
magState: magb
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: magb
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
|
||||
- type: entity
|
||||
parent: BaseMagazineBoxRifle
|
||||
@@ -59,12 +57,11 @@
|
||||
- state: magb-1
|
||||
map: ["enum.GunVisualLayers.Mag"]
|
||||
- state: practice-b
|
||||
- type: MagazineVisuals
|
||||
magState: magb
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: magb
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
|
||||
- type: entity
|
||||
parent: BaseMagazineBoxRifle
|
||||
|
||||
@@ -24,12 +24,11 @@
|
||||
map: ["enum.GunVisualLayers.Base"]
|
||||
- state: mag-1
|
||||
map: ["enum.GunVisualLayers.Mag"]
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
|
||||
- type: entity
|
||||
id: BaseMagazineCaselessRifleShort
|
||||
@@ -70,12 +69,11 @@
|
||||
map: ["enum.GunVisualLayers.Base"]
|
||||
- state: mag-1
|
||||
map: ["enum.GunVisualLayers.Mag"]
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 6
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 6
|
||||
zeroVisible: false
|
||||
|
||||
- type: entity
|
||||
id: MagazineCaselessRifle10x24
|
||||
@@ -102,12 +100,11 @@
|
||||
map: ["enum.GunVisualLayers.Base"]
|
||||
- state: mag-1
|
||||
map: ["enum.GunVisualLayers.Mag"]
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 6
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 6
|
||||
zeroVisible: false
|
||||
|
||||
# No flash
|
||||
|
||||
@@ -125,12 +122,11 @@
|
||||
map: ["enum.GunVisualLayers.Base"]
|
||||
- state: mag-1
|
||||
map: ["enum.GunVisualLayers.Mag"]
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 6
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 6
|
||||
zeroVisible: false
|
||||
|
||||
- type: entity
|
||||
id: MagazinePistolCaselessRiflePractice
|
||||
@@ -146,12 +142,11 @@
|
||||
map: ["enum.GunVisualLayers.Base"]
|
||||
- state: mag-1
|
||||
map: ["enum.GunVisualLayers.Mag"]
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 6
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 6
|
||||
zeroVisible: false
|
||||
|
||||
- type: entity
|
||||
id: MagazinePistolCaselessRifleRubber
|
||||
@@ -167,12 +162,11 @@
|
||||
map: ["enum.GunVisualLayers.Base"]
|
||||
- state: mag-1
|
||||
map: ["enum.GunVisualLayers.Mag"]
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 6
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 6
|
||||
zeroVisible: false
|
||||
|
||||
- type: entity
|
||||
id: MagazineCaselessRifle
|
||||
|
||||
@@ -19,9 +19,8 @@
|
||||
map: ["enum.GunVisualLayers.Base"]
|
||||
- state: mag-1
|
||||
map: ["enum.GunVisualLayers.Mag"]
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
|
||||
@@ -25,12 +25,11 @@
|
||||
map: ["enum.GunVisualLayers.Base"]
|
||||
- state: mag-1
|
||||
map: ["enum.GunVisualLayers.Mag"]
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
|
||||
# Magazines
|
||||
- type: entity
|
||||
@@ -48,12 +47,11 @@
|
||||
size: 10
|
||||
- type: Sprite
|
||||
sprite: Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/light_rifle_box.rsi
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 8
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 8
|
||||
zeroVisible: false
|
||||
|
||||
- type: entity
|
||||
id: MagazineLightRifle
|
||||
@@ -152,9 +150,8 @@
|
||||
capacity: 80
|
||||
- type: Sprite
|
||||
sprite: Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/pk_box.rsi
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 7
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 7
|
||||
zeroVisible: false
|
||||
|
||||
@@ -23,12 +23,11 @@
|
||||
map: ["enum.GunVisualLayers.Base"]
|
||||
- state: mag-1
|
||||
map: ["enum.GunVisualLayers.Mag"]
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 5
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 5
|
||||
zeroVisible: false
|
||||
|
||||
- type: entity
|
||||
id: BaseMagazineMagnumSubMachineGun
|
||||
@@ -55,12 +54,11 @@
|
||||
map: ["enum.GunVisualLayers.Base"]
|
||||
- state: mag-1
|
||||
map: ["enum.GunVisualLayers.Mag"]
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
|
||||
- type: entity
|
||||
id: MagazineMagnum
|
||||
|
||||
@@ -23,12 +23,11 @@
|
||||
map: ["enum.GunVisualLayers.Base"]
|
||||
- state: mag-1
|
||||
map: ["enum.GunVisualLayers.Mag"]
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 5
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 5
|
||||
zeroVisible: false
|
||||
|
||||
- type: entity
|
||||
id: BaseMagazinePistolHighCapacity
|
||||
@@ -55,12 +54,11 @@
|
||||
map: ["enum.GunVisualLayers.Base"]
|
||||
- state: mag-1
|
||||
map: ["enum.GunVisualLayers.Mag"]
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 7
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 7
|
||||
zeroVisible: false
|
||||
|
||||
- type: entity
|
||||
id: BaseMagazinePistolSubMachineGun # Yeah it's weird but it's pistol caliber
|
||||
@@ -87,13 +85,11 @@
|
||||
map: ["enum.GunVisualLayers.Base"]
|
||||
- state: mag-1
|
||||
map: ["enum.GunVisualLayers.Mag"]
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
|
||||
- type: entity
|
||||
id: MagazinePistolSubMachineGunTopMounted
|
||||
name: WT550 magazine (.35 auto top-mounted)
|
||||
@@ -116,12 +112,11 @@
|
||||
- state: mag-unshaded-1
|
||||
map: ["enum.GunVisualLayers.MagUnshaded"]
|
||||
shader: unshaded
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 6
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 6
|
||||
zeroVisible: false
|
||||
|
||||
- type: entity
|
||||
id: MagazinePistolCalicoTopMounted
|
||||
@@ -138,12 +133,11 @@
|
||||
layers:
|
||||
- state: icon
|
||||
map: ["enum.GunVisualLayers.Base"]
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 1
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 1
|
||||
zeroVisible: false
|
||||
|
||||
- type: entity
|
||||
id: MagazinePistol
|
||||
|
||||
@@ -24,12 +24,11 @@
|
||||
map: ["enum.GunVisualLayers.Base"]
|
||||
- state: mag-1
|
||||
map: ["enum.GunVisualLayers.Mag"]
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
|
||||
# Magazines
|
||||
- type: entity
|
||||
|
||||
@@ -25,12 +25,11 @@
|
||||
map: ["enum.GunVisualLayers.Base"]
|
||||
- state: mag-1
|
||||
map: ["enum.GunVisualLayers.Mag"]
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 2
|
||||
zeroVisible: false
|
||||
|
||||
- type: entity
|
||||
id: MagazineShotgun
|
||||
|
||||
@@ -26,12 +26,11 @@
|
||||
map: [ "enum.GunVisualLayers.Base" ]
|
||||
- state: base-6
|
||||
map: [ "enum.GunVisualLayers.Mag" ]
|
||||
- type: MagazineVisuals
|
||||
magState: base
|
||||
steps: 7
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: base
|
||||
steps: 7
|
||||
zeroVisible: false
|
||||
|
||||
- type: entity
|
||||
id: SpeedLoaderMagnumFlash
|
||||
@@ -47,12 +46,11 @@
|
||||
map: [ "enum.GunVisualLayers.Base" ]
|
||||
- state: flash-6
|
||||
map: [ "enum.GunVisualLayers.Mag" ]
|
||||
- type: MagazineVisuals
|
||||
magState: flash
|
||||
steps: 7
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: flash
|
||||
steps: 7
|
||||
zeroVisible: false
|
||||
|
||||
- type: entity
|
||||
id: SpeedLoaderMagnumHighVelocity
|
||||
@@ -68,12 +66,11 @@
|
||||
map: [ "enum.GunVisualLayers.Base" ]
|
||||
- state: high-velocity-6
|
||||
map: [ "enum.GunVisualLayers.Mag" ]
|
||||
- type: MagazineVisuals
|
||||
magState: high-velocity
|
||||
steps: 7
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: high-velocity
|
||||
steps: 7
|
||||
zeroVisible: false
|
||||
|
||||
- type: entity
|
||||
id: SpeedLoaderMagnumPractice
|
||||
@@ -89,12 +86,11 @@
|
||||
map: [ "enum.GunVisualLayers.Base" ]
|
||||
- state: practice-6
|
||||
map: [ "enum.GunVisualLayers.Mag" ]
|
||||
- type: MagazineVisuals
|
||||
magState: practice
|
||||
steps: 7
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: practice
|
||||
steps: 7
|
||||
zeroVisible: false
|
||||
|
||||
- type: entity
|
||||
id: SpeedLoaderMagnumRubber
|
||||
@@ -110,9 +106,8 @@
|
||||
map: [ "enum.GunVisualLayers.Base" ]
|
||||
- state: rubber-6
|
||||
map: [ "enum.GunVisualLayers.Mag" ]
|
||||
- type: MagazineVisuals
|
||||
magState: rubber
|
||||
steps: 7
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: rubber
|
||||
steps: 7
|
||||
zeroVisible: false
|
||||
|
||||
@@ -26,12 +26,11 @@
|
||||
map: ["enum.GunVisualLayers.Base"]
|
||||
- state: base-6
|
||||
map: ["enum.GunVisualLayers.Mag"]
|
||||
- type: MagazineVisuals
|
||||
magState: base
|
||||
steps: 7
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: base
|
||||
steps: 7
|
||||
zeroVisible: false
|
||||
|
||||
- type: entity
|
||||
id: SpeedLoaderPistolFlash
|
||||
@@ -46,12 +45,11 @@
|
||||
map: ["enum.GunVisualLayers.Base"]
|
||||
- state: flash-6
|
||||
map: ["enum.GunVisualLayers.Mag"]
|
||||
- type: MagazineVisuals
|
||||
magState: flash
|
||||
steps: 7
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: flash
|
||||
steps: 7
|
||||
zeroVisible: false
|
||||
|
||||
- type: entity
|
||||
id: SpeedLoaderPistolHighVelocity
|
||||
@@ -66,12 +64,11 @@
|
||||
map: ["enum.GunVisualLayers.Base"]
|
||||
- state: high-velocity-6
|
||||
map: ["enum.GunVisualLayers.Mag"]
|
||||
- type: MagazineVisuals
|
||||
magState: high-velocity
|
||||
steps: 7
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: high-velocity
|
||||
steps: 7
|
||||
zeroVisible: false
|
||||
|
||||
- type: entity
|
||||
id: SpeedLoaderPistolPractice
|
||||
@@ -86,12 +83,11 @@
|
||||
map: ["enum.GunVisualLayers.Base"]
|
||||
- state: practice-6
|
||||
map: ["enum.GunVisualLayers.Mag"]
|
||||
- type: MagazineVisuals
|
||||
magState: practice
|
||||
steps: 7
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: practice
|
||||
steps: 7
|
||||
zeroVisible: false
|
||||
|
||||
- type: entity
|
||||
id: SpeedLoaderPistolRubber
|
||||
@@ -106,9 +102,8 @@
|
||||
map: ["enum.GunVisualLayers.Base"]
|
||||
- state: rubber-6
|
||||
map: ["enum.GunVisualLayers.Mag"]
|
||||
- type: MagazineVisuals
|
||||
magState: rubber
|
||||
steps: 7
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: rubber
|
||||
steps: 7
|
||||
zeroVisible: false
|
||||
|
||||
@@ -17,9 +17,8 @@
|
||||
map: ["enum.GunVisualLayers.Base"]
|
||||
- state: mag-5
|
||||
map: ["enum.GunVisualLayers.Mag"]
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 6
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 6
|
||||
zeroVisible: false
|
||||
|
||||
@@ -16,12 +16,11 @@
|
||||
map: ["enum.GunVisualLayers.Base"]
|
||||
- state: mag-6
|
||||
map: ["enum.GunVisualLayers.Mag"]
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 7
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 7
|
||||
zeroVisible: false
|
||||
|
||||
- type: entity
|
||||
id: SpeedLoaderCap
|
||||
|
||||
@@ -16,12 +16,11 @@
|
||||
- type: Battery
|
||||
maxCharge: 1000
|
||||
startingCharge: 1000
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 5
|
||||
zeroVisible: false
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 5
|
||||
zeroVisible: false
|
||||
|
||||
- type: entity
|
||||
name: retro laser gun
|
||||
@@ -43,12 +42,11 @@
|
||||
- type: HitscanBatteryAmmoProvider
|
||||
proto: RedLaser
|
||||
fireCost: 62.5
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 5
|
||||
zeroVisible: true
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 5
|
||||
zeroVisible: true
|
||||
|
||||
- type: entity
|
||||
name: makeshift laser gun
|
||||
@@ -240,12 +238,11 @@
|
||||
- type: HitscanBatteryAmmoProvider
|
||||
proto: XrayLaser
|
||||
fireCost: 100
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 5
|
||||
zeroVisible: true
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 5
|
||||
zeroVisible: true
|
||||
|
||||
- type: entity
|
||||
name: taser
|
||||
@@ -280,12 +277,11 @@
|
||||
- type: Battery
|
||||
maxCharge: 100
|
||||
startingCharge: 100
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 5
|
||||
zeroVisible: true
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 5
|
||||
zeroVisible: true
|
||||
|
||||
- type: entity
|
||||
name: antique laser gun
|
||||
@@ -310,11 +306,10 @@
|
||||
- type: HitscanBatteryAmmoProvider
|
||||
proto: RedMediumLaser
|
||||
fireCost: 100
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 5
|
||||
zeroVisible: true
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 5
|
||||
zeroVisible: true
|
||||
- type: StaticPrice
|
||||
price: 750
|
||||
@@ -39,9 +39,8 @@
|
||||
- type: BallisticAmmoProvider
|
||||
proto: CartridgeMinigun
|
||||
capacity: 1000
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 4
|
||||
zeroVisible: true
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 4
|
||||
zeroVisible: true
|
||||
|
||||
@@ -60,9 +60,8 @@
|
||||
map: ["enum.GunVisualLayers.Mag"]
|
||||
- type: Item
|
||||
sprite: Objects/Weapons/Guns/LMGs/l6.rsi
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 4
|
||||
zeroVisible: true
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 4
|
||||
zeroVisible: true
|
||||
|
||||
@@ -69,12 +69,11 @@
|
||||
capacity: 1
|
||||
soundInsert:
|
||||
path: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 1
|
||||
zeroVisible: true
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 1
|
||||
zeroVisible: true
|
||||
|
||||
- type: entity
|
||||
name: multiple rocket launcher
|
||||
@@ -106,9 +105,8 @@
|
||||
proto: CartridgeRocketSlow
|
||||
soundInsert:
|
||||
path: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 1
|
||||
zeroVisible: true
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 1
|
||||
zeroVisible: true
|
||||
|
||||
@@ -42,12 +42,11 @@
|
||||
containers:
|
||||
gun_magazine: !type:ContainerSlot
|
||||
gun_chamber: !type:ContainerSlot
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 1
|
||||
zeroVisible: true
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 1
|
||||
zeroVisible: true
|
||||
|
||||
- type: entity
|
||||
name: clarissa
|
||||
|
||||
@@ -45,12 +45,11 @@
|
||||
sprite: Objects/Weapons/Guns/Revolvers/deckard.rsi
|
||||
- type: RevolverAmmoProvider
|
||||
capacity: 5
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 4
|
||||
zeroVisible: true
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 4
|
||||
zeroVisible: true
|
||||
|
||||
- type: entity
|
||||
name: Inspector
|
||||
|
||||
@@ -80,12 +80,11 @@
|
||||
containers:
|
||||
gun_magazine: !type:ContainerSlot
|
||||
gun_chamber: !type:ContainerSlot
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 1
|
||||
zeroVisible: true
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 1
|
||||
zeroVisible: true
|
||||
|
||||
- type: entity
|
||||
name: Z8 Bulldog
|
||||
@@ -123,12 +122,11 @@
|
||||
containers:
|
||||
gun_magazine: !type:ContainerSlot
|
||||
gun_chamber: !type:ContainerSlot
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 1
|
||||
zeroVisible: true
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 1
|
||||
zeroVisible: true
|
||||
|
||||
- type: entity
|
||||
name: Wintermute
|
||||
@@ -169,9 +167,8 @@
|
||||
containers:
|
||||
gun_magazine: !type:ContainerSlot
|
||||
gun_chamber: !type:ContainerSlot
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 1
|
||||
zeroVisible: true
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 1
|
||||
zeroVisible: true
|
||||
|
||||
@@ -60,12 +60,11 @@
|
||||
sprite: Objects/Weapons/Guns/SMGs/atreides.rsi
|
||||
- type: Gun
|
||||
fireRate: 10
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 1
|
||||
zeroVisible: true
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 1
|
||||
zeroVisible: true
|
||||
|
||||
- type: entity
|
||||
name: C-20r sub machine gun
|
||||
@@ -86,12 +85,11 @@
|
||||
- type: Gun
|
||||
- type: ChamberMagazineAmmoProvider
|
||||
# autoEject: true # Do not set this until the PVS prediction issue is resolved
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 1
|
||||
zeroVisible: true
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 1
|
||||
zeroVisible: true
|
||||
|
||||
- type: entity
|
||||
name: Drozd
|
||||
@@ -134,12 +132,11 @@
|
||||
containers:
|
||||
gun_magazine: !type:ContainerSlot
|
||||
gun_chamber: !type:ContainerSlot
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 1
|
||||
zeroVisible: true
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 1
|
||||
zeroVisible: true
|
||||
|
||||
- type: entity
|
||||
name: WT550
|
||||
@@ -184,12 +181,11 @@
|
||||
whitelist:
|
||||
tags:
|
||||
- CartridgePistol
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 6
|
||||
zeroVisible: true
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 6
|
||||
zeroVisible: true
|
||||
|
||||
- type: entity
|
||||
name: Drozd
|
||||
|
||||
@@ -74,12 +74,11 @@
|
||||
gun_magazine: !type:ContainerSlot
|
||||
gun_chamber: !type:ContainerSlot
|
||||
- type: MagazineAmmoProvider
|
||||
- type: MagazineVisuals
|
||||
magState: mag
|
||||
steps: 1
|
||||
zeroVisible: true
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: MagVisualizer
|
||||
magState: mag
|
||||
steps: 1
|
||||
zeroVisible: true
|
||||
|
||||
- type: entity
|
||||
name: double-barreled shotgun
|
||||
|
||||
Reference in New Issue
Block a user