public void AfterFlagPlanted(FlagSite data) { if (data.vessel.id == Guid.Empty) { data.vessel.id = Guid.NewGuid(); } VesselProtoSystem.Singleton.MessageSender.SendVesselMessage(data.vessel, true); }
public void DoPlantFlag(StringValue flagname, StringValue flagtext) { CheckEvaController(); if (!shared.Vessel.isEVA || !kerbaleva.part.GroundContact) { return; } PlayAnimation(new StringValue("idle")); StopAnimation(new StringValue("idle")); PlayAnimation(new StringValue("flag_plant")); var flag = FlagSite.CreateFlag((shared.Vessel.GetWorldPos3D() + shared.Vessel.transform.forward * 0.26f - shared.Vessel.transform.up * 0.20f), shared.Vessel.transform.rotation, kerbaleva.part); flag.placedBy = kerbaleva.vessel.vesselName; flag.PlaqueText = flagtext.ToString(); flag.vessel.vesselName = flagname; kerbaleva.part.protoModuleCrew[0].flightLog.AddEntryUnique(FlightLog.EntryType.PlantFlag, kerbaleva.vessel.orbit.referenceBody.name); kerbaleva.part.protoModuleCrew[0].UpdateExperience(); int count = FlightGlobals.VesselsLoaded.Count; while (count-- > 0) { Vessel vessel = FlightGlobals.VesselsLoaded[count]; if (vessel == null) { continue; } if (!vessel.loaded) { continue; } if (vessel == FlightGlobals.ActiveVessel) { continue; } if (vessel.vesselType == VesselType.EVA) { ProtoCrewMember protoCrewMember = vessel.GetVesselCrew()[0]; protoCrewMember.flightLog.AddEntryUnique(FlightLog.EntryType.PlantFlag, kerbaleva.vessel.orbit.referenceBody.name); protoCrewMember.UpdateExperience(); continue; } if (vessel.situation != Vessel.Situations.LANDED) { if (vessel.situation != Vessel.Situations.SPLASHED) { if (vessel.situation != Vessel.Situations.PRELAUNCH) { continue; } } } List <ProtoCrewMember> vesselCrew = vessel.GetVesselCrew(); int count2 = vesselCrew.Count; while (count2-- > 0) { ProtoCrewMember protoCrewMember2 = vesselCrew[count2]; protoCrewMember2.flightLog.AddEntryUnique(FlightLog.EntryType.PlantFlag, kerbaleva.vessel.orbit.referenceBody.name); protoCrewMember2.UpdateExperience(); } } }