Fix RevolverBarrelComponent ExposeData not checking if serializer is reading

This commit is contained in:
Víctor Aguilera Puerto
2020-06-22 04:10:44 +02:00
parent 2944652a5d
commit 3f7bd3010c

View File

@@ -42,8 +42,15 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels
{ {
base.ExposeData(serializer); base.ExposeData(serializer);
serializer.DataField(ref _caliber, "caliber", BallisticCaliber.Unspecified); serializer.DataField(ref _caliber, "caliber", BallisticCaliber.Unspecified);
var capacity = serializer.ReadDataField("capacity", 6);
_ammoSlots = new IEntity[capacity]; if (serializer.Reading)
{
var capacity = serializer.ReadDataField("capacity", 6);
_ammoSlots = new IEntity[capacity];
}
// TODO: Writing?
// Sounds // Sounds
serializer.DataField(ref _soundEject, "soundEject", "/Audio/Guns/MagOut/revolver_magout.ogg"); serializer.DataField(ref _soundEject, "soundEject", "/Audio/Guns/MagOut/revolver_magout.ogg");
@@ -60,7 +67,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels
{ {
_appearanceComponent = appearanceComponent; _appearanceComponent = appearanceComponent;
} }
_appearanceComponent?.SetData(MagazineBarrelVisuals.MagLoaded, true); _appearanceComponent?.SetData(MagazineBarrelVisuals.MagLoaded, true);
} }
@@ -78,7 +85,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels
{ {
return false; return false;
} }
if (ammoComponent.Caliber != _caliber) if (ammoComponent.Caliber != _caliber)
{ {
Owner.PopupMessage(user, Loc.GetString("Wrong caliber")); Owner.PopupMessage(user, Loc.GetString("Wrong caliber"));
@@ -208,7 +215,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels
{ {
return TryInsertBullet(eventArgs.User, eventArgs.Using); return TryInsertBullet(eventArgs.User, eventArgs.Using);
} }
[Verb] [Verb]
private sealed class SpinRevolverVerb : Verb<RevolverBarrelComponent> private sealed class SpinRevolverVerb : Verb<RevolverBarrelComponent>
{ {