public void InitTarget(GameObject transform) { _partSettings = GetComponent <PartSettings>(); _target = transform; _robber.InitPosition(_target.transform); _partSettings.destinationObjectTag = _target.name; }
public override void SecondPassOnLoad() { // Written, 20.09.2021 GameObject satsuma = GameObject.Find("SATSUMA(557kg, 248)"); GameObject[] wheels = Object.FindObjectsOfType <GameObject>().Where(go => vaildWheelNames.Any(vwn => vwn == go.name)).ToArray(); wheelParts = new Part[wheels.Length]; saveData = loadData(); Trigger trigger = new Trigger("spareTireTrigger", satsuma, new Vector3(0, -0.053f, -1.45f), Vector3.forward * 90); AssemblyTypeJointSettings jointSettings = new AssemblyTypeJointSettings(satsuma.GetComponent <Rigidbody>()); PartSettings settings = new PartSettings() { assembleType = AssembleType.joint, setPositionRotationOnInitialisePart = false, assemblyTypeJointSettings = jointSettings, setPhysicsMaterialOnInitialisePart = true }; for (int i = 0; i < wheels.Length; i++) { GameObject wheel = wheels[i]; PlayMakerFSM useFsm = wheel.GetPlayMaker("Use"); PlayMakerFSM removalFsm = wheel.GetPlayMaker("Removal"); string wheelID = useFsm.FsmVariables.GetFsmString("ID").Value; bool isThisWheelInstall = false; if (saveData?.installedWheelID == wheelID) { isThisWheelInstall = useFsm.FsmVariables.GetFsmString("Corner").Value == ""; } wheelParts[i] = wheel.AddComponent <Part>(); wheelParts[i].defaultSaveInfo = new PartSaveInfo() { installed = wheelID == "wheel_steel5" && !removalFsm.enabled }; wheelParts[i].initPart(isThisWheelInstall ? new PartSaveInfo() { installed = true } : null, settings, trigger); } ModConsole.Print(string.Format("{0} v{1}: Loaded.", Name, Version)); }