当前位置: 首页>>代码示例>>C#>>正文


C# ProtoCrewMember.UnregisterExperienceTraits方法代码示例

本文整理汇总了C#中ProtoCrewMember.UnregisterExperienceTraits方法的典型用法代码示例。如果您正苦于以下问题:C# ProtoCrewMember.UnregisterExperienceTraits方法的具体用法?C# ProtoCrewMember.UnregisterExperienceTraits怎么用?C# ProtoCrewMember.UnregisterExperienceTraits使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ProtoCrewMember的用法示例。


在下文中一共展示了ProtoCrewMember.UnregisterExperienceTraits方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: RemoveKerbal

 //Removes a frozen kerbal from the vessel.
 private bool RemoveKerbal(ProtoCrewMember kerbal, int SeatIndx)
 {
     try
     {
          Utilities.Log_Debug("RemoveKerbal " + kerbal.name + " seat " + SeatIndx);
         FrznCrewMbr tmpcrew = _StoredCrewList.Find(a => a.CrewName == kerbal.name);  // Find the thawed kerbal in the frozen kerbal list.
         if (tmpcrew == null)
         {
             FrznCrewMbr frzncrew = new FrznCrewMbr(kerbal.name, SeatIndx, vessel.id, vessel.name);
              Utilities.Log_Debug("Adding _StoredCrewList entry");
             _StoredCrewList.Add(frzncrew);
         }
         else
         {
              Utilities.Log("Found Kerbal in the stored frozen crew list for this part.");
              Utilities.Log("Crewmember:" + tmpcrew.CrewName + " Seat:" + tmpcrew.SeatIdx);
         }
         // Update the saved frozen kerbals dictionary
         KerbalInfo kerbalInfo = new KerbalInfo(Planetarium.GetUniversalTime());
         kerbalInfo.vesselID = CrntVslID;
         kerbalInfo.vesselName = CrntVslName;
         kerbalInfo.type = ProtoCrewMember.KerbalType.Unowned;
         kerbalInfo.status = ProtoCrewMember.RosterStatus.Dead;
         if (partHasInternals)
         {
             kerbalInfo.seatName = part.internalModel.seats[SeatIndx].seatTransformName;
             kerbalInfo.seatIdx = SeatIndx;
         }
         else
         {
             kerbalInfo.seatName = "Unknown";
             kerbalInfo.seatIdx = -1;
         }
         kerbalInfo.partID = CrntPartID;
         kerbalInfo.experienceTraitName = kerbal.experienceTrait.Title;
          Utilities.Log_Debug("Adding New Frozen Crew to dictionary");
         try
         {
             if (!DeepFreeze.Instance.DFgameSettings.KnownFrozenKerbals.ContainsKey(kerbal.name))
             {
                 DeepFreeze.Instance.DFgameSettings.KnownFrozenKerbals.Add(kerbal.name, kerbalInfo);
             }
             if (DeepFreeze.Instance.DFsettings.debugging) DeepFreeze.Instance.DFgameSettings.DmpKnownFznKerbals();
         }
         catch (Exception ex)
         {
              Utilities.Log("Unable to add to knownfrozenkerbals frozen crewmember " + kerbal.name);
              Utilities.Log("Err: " + ex);
             ScreenMessages.PostScreenMessage("DeepFreezer mechanical failure", 5.0f, ScreenMessageStyle.UPPER_CENTER);
             return false;
         }
         if (partHasInternals && ExternalDoorActive)
             Utilities.setHelmetshaders(kerbal.KerbalRef, true);
         // remove the CrewMember from the part crewlist and unregister their traits, because they are frozen, and this is the only way to trick the game.
         kerbal.UnregisterExperienceTraits(part);
         part.protoModuleCrew.Remove(kerbal);
         if (partHasInternals)
         {
             if (part.internalModel.seats[SeatIndx].kerbalRef != kerbal.KerbalRef)
             {
                 part.internalModel.seats[SeatIndx].kerbalRef = kerbal.KerbalRef;
                 setseatstaticoverlay(part.internalModel.seats[SeatIndx]);
             }
             part.internalModel.seats[SeatIndx].taken = true; // Set their seat to Taken, because they are really still there. :)
             seatTakenbyFrznKerbal[SeatIndx] = true;
         }
         // Set our newly frozen Popsicle, er Kerbal, to Unowned type (usually a Crew) and Dead status.
         kerbal.type = ProtoCrewMember.KerbalType.Unowned;
         kerbal.rosterStatus = ProtoCrewMember.RosterStatus.Dead;
         if (kerbal.KerbalRef != null)
         {
             //Remove them from the GUIManager Portrait cams.
             DFPortraits.DestroyPortrait(kerbal.KerbalRef);
         }
         return true;
     }
     catch (Exception ex)
     {
         Debug.Log("Remove Kerbal " + kerbal.name + " for DeepFreeze failed");
         Debug.Log("Err: " + ex);
         return false;
     }
 }
开发者ID:Kerbas-ad-astra,项目名称:DeepFreeze,代码行数:84,代码来源:DeepFreezerPart.cs


注:本文中的ProtoCrewMember.UnregisterExperienceTraits方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。