using UnityEngine.Scripting; [Preserve] public class NetPackageVehicleUpdatePartRebirth : NetPackage { public NetPackageVehicleUpdatePartRebirth Setup(int _senderId, int _currentVehicleID, int _slotNumber, float _currentItemUseTimes, int _itemQuality, string _currentItemName) { //Log.Out("NetPackageVehicleUpdatePartRebirth-Setup START"); this.senderId = _senderId; this.currentVehicleID = _currentVehicleID; this.slotNumber = _slotNumber; this.currentItemUseTimes = _currentItemUseTimes; this.itemQuality = _itemQuality; this.currentItemName = _currentItemName; return this; } public override void read(PooledBinaryReader _br) { this.senderId = _br.ReadInt32(); this.currentVehicleID = _br.ReadInt32(); this.slotNumber = _br.ReadInt32(); this.currentItemUseTimes = _br.ReadSingle(); this.itemQuality = _br.ReadInt32(); this.currentItemName = _br.ReadString(); } public override void write(PooledBinaryWriter _bw) { base.write(_bw); _bw.Write(this.senderId); _bw.Write(this.currentVehicleID); _bw.Write(this.slotNumber); _bw.Write(this.currentItemUseTimes); _bw.Write(this.itemQuality); _bw.Write(this.currentItemName); } public override void ProcessPackage(World _world, GameManager _callbacks) { //Log.Out("NetPackageVehicleUpdatePartRebirth-ProcessPackage START"); if (_world == null) { //Log.Out("NetPackageVehicleUpdatePartRebirth-ProcessPackage 1"); return; } EntityVehicleRebirth entityVehicle = GameManager.Instance.World.GetEntity(this.currentVehicleID) as EntityVehicleRebirth; if (entityVehicle == null) { //Log.Out("NetPackageVehicleUpdatePartRebirth-ProcessPackage 2"); return; } if (currentItemName.Trim().Length > 0) { ItemValue vehiclePart = ItemClass.GetItem(currentItemName, false); if (vehiclePart != null) { //Log.Out("NetPackageVehicleUpdatePartRebirth-ProcessPackage slotNumber: " + slotNumber); //Log.Out("NetPackageVehicleUpdatePartRebirth-ProcessPackage currentItemUseTimes: " + currentItemUseTimes); //Log.Out("NetPackageVehicleUpdatePartRebirth-ProcessPackage currentItemName: " + currentItemName); vehiclePart.UseTimes = currentItemUseTimes; vehiclePart.Quality = (ushort)this.itemQuality; entityVehicle.itemValues[this.slotNumber] = vehiclePart; if (SingletonMonoBehaviour.Instance.IsServer) { //Log.Out("NetPackageVehicleUpdatePartRebirth-ProcessPackage 4"); SingletonMonoBehaviour.Instance.SendPackage(NetPackageManager.GetPackage().Setup(this.senderId, this.currentVehicleID, this.slotNumber, this.currentItemUseTimes, this.itemQuality, this.currentItemName), false, -1, this.senderId, -1, null, 192); } } } else { entityVehicle.itemValues[this.slotNumber] = ItemValue.None; if (SingletonMonoBehaviour.Instance.IsServer) { //Log.Out("NetPackageVehicleUpdatePartRebirth-ProcessPackage 5"); SingletonMonoBehaviour.Instance.SendPackage(NetPackageManager.GetPackage().Setup(this.senderId, this.currentVehicleID, this.slotNumber, this.currentItemUseTimes, this.itemQuality, this.currentItemName), false, -1, this.senderId, -1, null, 192); } } } public override int GetLength() { return 10; } private int senderId; private int currentVehicleID; private int slotNumber; private float currentItemUseTimes; private int itemQuality; private string currentItemName; }