diff --git a/Content.Client/_White/WeaponsModules/WeaponModulesVisuals.cs b/Content.Client/_White/WeaponsModules/WeaponModulesVisuals.cs index 109276264d8..d30db75c367 100644 --- a/Content.Client/_White/WeaponsModules/WeaponModulesVisuals.cs +++ b/Content.Client/_White/WeaponsModules/WeaponModulesVisuals.cs @@ -1,7 +1,4 @@ -using Content.Client.Weapons.Ranged.Components; -using Content.Shared._White.WeaponModules; -using Content.Shared.Rounding; -using Content.Shared.Weapons.Ranged.Systems; +using Content.Shared._White.WeaponModules; using Robust.Client.GameObjects; namespace Content.Client._White.WeaponsModules; @@ -16,26 +13,48 @@ protected override void OnAppearanceChange(EntityUid uid, WeaponModulesComponent if(args.Sprite == null) return; - args.Sprite.LayerSetVisible(ModuleVisualState.HandGuardModule, false); - args.Sprite.LayerSetVisible(ModuleVisualState.BarrelModule, false); - args.Sprite.LayerSetVisible(ModuleVisualState.AimModule, false); + if (AppearanceSystem.TryGetData(uid, ModuleVisualState.BarrelModule, out var barrelModule, args.Component)) + { + if (barrelModule.Length != 0 && barrelModule != "none") + { + args.Sprite.LayerSetState(ModuleVisualState.BarrelModule, barrelModule); + args.Sprite.LayerSetVisible(ModuleVisualState.BarrelModule, true); + } + else + args.Sprite.LayerSetVisible(ModuleVisualState.BarrelModule, false); + } - if (AppearanceSystem.TryGetData(uid, ModuleVisualState.HandGuardModule, out var handguardModule, args.Component) && handguardModule.Length != 0 && handguardModule != "none") + if (AppearanceSystem.TryGetData(uid, ModuleVisualState.HandGuardModule, out var handguardModule, args.Component)) { - args.Sprite.LayerSetState(ModuleVisualState.HandGuardModule, handguardModule); - args.Sprite.LayerSetVisible(ModuleVisualState.HandGuardModule, true); + if (handguardModule.Length != 0 && handguardModule != "none") + { + args.Sprite.LayerSetState(ModuleVisualState.HandGuardModule, handguardModule); + args.Sprite.LayerSetVisible(ModuleVisualState.HandGuardModule, true); + } + else + args.Sprite.LayerSetVisible(ModuleVisualState.HandGuardModule, false); } - if (AppearanceSystem.TryGetData(uid, ModuleVisualState.BarrelModule, out var barrelModule, args.Component) && barrelModule.Length != 0 && barrelModule != "none") + if (AppearanceSystem.TryGetData(uid, ModuleVisualState.AimModule, out var aimModule, args.Component)) { - args.Sprite.LayerSetState(ModuleVisualState.BarrelModule, barrelModule); - args.Sprite.LayerSetVisible(ModuleVisualState.BarrelModule, true); + if (aimModule.Length != 0 && aimModule != "none") + { + args.Sprite.LayerSetState(ModuleVisualState.AimModule, aimModule); + args.Sprite.LayerSetVisible(ModuleVisualState.AimModule, true); + } + else + args.Sprite.LayerSetVisible(ModuleVisualState.AimModule, false); } - if (AppearanceSystem.TryGetData(uid, ModuleVisualState.AimModule, out var aimModule, args.Component) && aimModule.Length != 0 && aimModule != "none") + if (AppearanceSystem.TryGetData(uid, ModuleVisualState.ShutterModule, out var shutterModule, args.Component)) { - args.Sprite.LayerSetState(ModuleVisualState.AimModule, aimModule); - args.Sprite.LayerSetVisible(ModuleVisualState.AimModule, true); + if (shutterModule.Length != 0 && shutterModule != "none") + { + args.Sprite.LayerSetState(ModuleVisualState.ShutterModule, shutterModule); + args.Sprite.LayerSetVisible(ModuleVisualState.ShutterModule, true); + } + else + args.Sprite.LayerSetVisible(ModuleVisualState.ShutterModule, false); } if (AppearanceSystem.TryGetData(uid, Modules.Light, out var data, args.Component)) diff --git a/Content.Server/_White/WeaponModules/WeaponModulesSystem.cs b/Content.Server/_White/WeaponModules/WeaponModulesSystem.cs index 0540f54f800..bbf5284da82 100644 --- a/Content.Server/_White/WeaponModules/WeaponModulesSystem.cs +++ b/Content.Server/_White/WeaponModules/WeaponModulesSystem.cs @@ -125,7 +125,7 @@ private void FlameHiderModuleOnInsert(EntityUid module, FlameHiderModuleComponen return; weaponModulesComponent.WeaponFireEffect = true; - Dirty(module, weaponModulesComponent); + Dirty(weapon, weaponModulesComponent); } private void SilencerModuleOnInsert(EntityUid module, SilencerModuleComponent component, EntGotInsertedIntoContainerMessage args) @@ -142,7 +142,7 @@ private void SilencerModuleOnInsert(EntityUid module, SilencerModuleComponent co weaponModulesComponent.WeaponFireEffect = true; _gunSystem.SetSound(weapon, component.NewSoundGunshot); - Dirty(module, weaponModulesComponent); + Dirty(weapon, weaponModulesComponent); } private void AcceleratorModuleOnInsert(EntityUid module, AcceleratorModuleComponent component, EntGotInsertedIntoContainerMessage args) @@ -205,7 +205,7 @@ private void FlameHiderModuleOnEject(EntityUid module, FlameHiderModuleComponent return; weaponModulesComponent.WeaponFireEffect = false; - Dirty(module, weaponModulesComponent); + Dirty(weapon, weaponModulesComponent); } private void SilencerModuleOnEject(EntityUid module, SilencerModuleComponent component, EntGotRemovedFromContainerMessage args) @@ -217,7 +217,7 @@ private void SilencerModuleOnEject(EntityUid module, SilencerModuleComponent com weaponModulesComponent.WeaponFireEffect = false; _gunSystem.SetSound(weapon, component.OldSoundGunshot!); - Dirty(module, weaponModulesComponent); + Dirty(weapon, weaponModulesComponent); } private void AcceleratorModuleOnEject(EntityUid module, AcceleratorModuleComponent component, EntGotRemovedFromContainerMessage args) diff --git a/Content.Shared/Weapons/Ranged/Components/BallisticAmmoProviderComponent.cs b/Content.Shared/Weapons/Ranged/Components/BallisticAmmoProviderComponent.cs index e29785f7a41..f61a244f511 100644 --- a/Content.Shared/Weapons/Ranged/Components/BallisticAmmoProviderComponent.cs +++ b/Content.Shared/Weapons/Ranged/Components/BallisticAmmoProviderComponent.cs @@ -26,7 +26,7 @@ public sealed partial class BallisticAmmoProviderComponent : Component [ViewVariables(VVAccess.ReadWrite), DataField, AutoNetworkedField] public int UnspawnedCount; - [ViewVariables(VVAccess.ReadWrite), DataField] + [ViewVariables(VVAccess.ReadWrite), DataField, AutoNetworkedField] public EntityWhitelist? Whitelist; public Container Container = default!;