public void SetTargetedBy(ModuleActiveStrut targeter) { this.OldTargeter = this.Targeter; this.Targeter = targeter; this.Mode = Mode.Target; }
public void SetTarget(ModuleActiveStrut target) { this.Target = target; this.Mode = Mode.Linked; this.IsLinked = true; this.IsConnectionOrigin = true; var type = target.IsTargetOnly ? LinkType.Normal : LinkType.Maximum; this.IsEnforced = Config.Instance.GlobalJointEnforcement || type == LinkType.Maximum; this.CreateJoint(this.part.rigidbody, target.part.parent.rigidbody, type, this.Target.transform.position); this.CreateStrut(target.Origin.position, target.IsTargetOnly ? 1 : 0.5f); Util.Util.ResetAllFromTargeting(); OSD.PostMessage("Link established!"); ActiveStrutsAddon.Mode = AddonMode.None; this.UpdateGui(); }
private void ResetActiveStrutToDefault() { this.Target = null; this.Targeter = null; this.IsConnectionOrigin = false; this.IsFreeAttached = false; this.Mode = Mode.Unlinked; this.IsHalfWayExtended = false; this.Id = Guid.NewGuid().ToString(); this.LinkType = LinkType.None; this.OldTargeter = null; this.FreeAttachTarget = null; this.IsFreeAttached = false; this.IsLinked = false; if (!this.IsTargetOnly) { this.DestroyJoint(); this.DestroyStrut(); } }
public StraightOutHintActivePart(Part part, Guid moduleId, GameObject hintObject, ModuleActiveStrut module) : base(part, moduleId) { this.HintObject = hintObject; this.Module = module; this.Duration = Config.Instance.StraightOutHintDuration; }
private static void UpdateStraightOutHint(ModuleActiveStrut module, GameObject hint) { hint.SetActive(false); var ray = new Ray(module.Origin.position, module.Origin.transform.right*-1); RaycastHit info; var maxDist = Config.Instance.MaxDistance; var raycast = Physics.Raycast(ray, out info, maxDist); var trans = hint.transform; trans.position = module.Origin.position; var dist = raycast ? info.distance/2f : maxDist; if (raycast) { trans.LookAt(info.point); } else { trans.LookAt(module.Origin.transform.position + module.Origin.transform.right*-1); } trans.Rotate(new Vector3(0, 1, 0), 90f); trans.Rotate(new Vector3(0, 0, 1), 90f); trans.localScale = new Vector3(0.05f, dist, 0.05f); trans.Translate(new Vector3(0f, dist, 0f)); hint.SetActive(true); //print(string.Format("claculated dist = {0}", dist)); }
private static GameObject CreateStraightOutHintForPart(ModuleActiveStrut module) { var go = GameObject.CreatePrimitive(PrimitiveType.Cylinder); go.SetActive(false); go.name = Guid.NewGuid().ToString(); DestroyImmediate(go.collider); var connDim = Config.Instance.ConnectorDimension; go.transform.localScale = new Vector3(connDim, connDim, connDim); var mr = go.GetComponent<MeshRenderer>(); mr.name = go.name; mr.material = new Material(Shader.Find("Transparent/Diffuse")) {color = Util.Util.MakeColorTransparent(Color.blue)}; UpdateStraightOutHint(module, go); return go; }