Example #1
0
 public void UnloadWeapon()
 {
     _weaponModelLoadController.Unload(_weapon.Asset);
     _lastWeapon.Id = 0;
     _weapon.Id     = 0;
     _weapon.Asset  = default(AssetInfo);
     for (var t = EWeaponPartType.None + 1; t < EWeaponPartType.Length; t++)
     {
         _deafultWeaponPartDic[t] = 0;
         if (!_lastWeaponPartDic[t].Id.Equals(UniversalConsts.InvalidIntId))
         {
             _weaponModelLoadController.Unload(_lastWeaponPartDic[t].Asset);
         }
         _lastWeaponPartDic[t] = new AssetItem
         {
             Id = UniversalConsts.InvalidIntId,
         };
     }
 }
Example #2
0
        private void RefreshAssets()
        {
#if !UnitTest
            if (Logger.IsDebugEnabled)
            {
                Logger.DebugFormat("RefreshAssets cur {0} last {1}", _weapon.Asset, _lastWeapon.Asset);
            }
#endif
            if (_weapon.Id != _lastWeapon.Id)
            {
                if (HasLastWeapon())
                {
                    _weaponModelLoadController.Unload(_lastWeapon.Asset);
                }
                _weaponModelLoadController.LoadWeapon(_weapon.Asset);
            }

            foreach (var partPair in _weaponPartDic)
            {
                var lastPart = _lastWeaponPartDic[partPair.Key];
                if (partPair.Value.Id != lastPart.Id)
                {
                    _weaponModelLoadController.Unload(_lastWeaponPartDic[partPair.Key].Asset);
                    if (partPair.Value.Id > 0)
                    {
                        var location = WeaponTypeConvertUtil.GetLocationByPartType(partPair.Key);
                        _weaponModelLoadController.LoadPart(_weaponPartDic[partPair.Key].Asset, location);
                    }
                }
            }

            _weapon.CopyTo(_lastWeapon);
            foreach (var partPair in _weaponPartDic)
            {
                partPair.Value.CopyTo(_lastWeaponPartDic[partPair.Key]);
            }
        }