private void OffsetGizmoSpawned(EditorGizmos.GizmoOffset data)
        {
            GizmoEvents.rotateGizmoActive = false;
            GizmoEvents.offsetGizmoActive = true;
            GizmoEvents.gizmosOffset      = HighLogic.FindObjectsOfType <EditorGizmos.GizmoOffset> ();
            GizmoEvents.gizmoOffsetHandle = HighLogic.FindObjectOfType <EditorGizmos.GizmoOffsetHandle> ();

            if (EditorLogic.SelectedPart != null)
            {
                Space sp = GizmoEvents.gizmosOffset[0].CoordSpace;
                Log.dbg("gizmoOffset == null, EditorLogic.SelectedPart: {0}", EditorLogic.SelectedPart.partInfo.title);
                Log.dbg("coordSpace: {0}", sp);

                if (GizmoEvents.gizmosOffset[0].CoordSpace == Space.Self)
                {
                    GizmoEvents.gizmosOffset[0].transform.rotation = EditorLogic.SelectedPart.transform.rotation;
                }
                else
                {
                    GizmoEvents.gizmosOffset[0].transform.rotation = Quaternion.identity;
                }
            }

            Log.dbg("Offset gizmo was spawned 2");
        }
Ejemplo n.º 2
0
 internal static void CloseGizmo()
 {
     if (moveGizmo != null)
     {
         moveGizmo.Detach();
         moveGizmo = null;
     }
 }
Ejemplo n.º 3
0
 private void OffsetGizmoSpawned(EditorGizmos.GizmoOffset data)
 {
     GizmoEvents.rotateGizmoActive = false;
     GizmoEvents.offsetGizmoActive = true;
     GizmoEvents.gizmosOffset      = HighLogic.FindObjectsOfType <EditorGizmos.GizmoOffset> ();
     GizmoEvents.gizmoOffsetHandle = HighLogic.FindObjectOfType <EditorGizmos.GizmoOffsetHandle> ();
     Log.Info("Offset gizmo was spawned");
 }
            private void Start()
            // I use Start instead of Awake because whatever setup the editor does to the gizmo won't be done yet
            {
                EditorGizmos.GizmoRotate rotate = null;
                EditorGizmos.GizmoOffset offset = null;

                if (gameObject.GetComponentCached(ref rotate) != null)
                {
                    onRotateGizmoSpawned.Fire(rotate);
                }
                else if (gameObject.GetComponentCached(ref offset) != null)
                {
                    onOffsetGizmoSpawned.Fire(offset);
                }
                else
                {
                    Log.warn("Didn't find a gizmo on this GameObject -- something has broken");
                }

                // could destroy this MB now, unless you wanted to use OnDestroy to sent an event
            }
Ejemplo n.º 5
0
        internal static void SetupMoveGizmo(GameObject target, Quaternion sourceRotation, Callback <Vector3> OnMoveCB, Callback <Vector3> WhenMovedCB)
        {
            if (moveGizmo != null)
            {
                moveGizmo.Detach();
                moveGizmo = null;
            }

            moveGizmo = EditorGizmos.GizmoOffset.Attach(target.transform, sourceRotation, OnMoveCB, WhenMovedCB, FlightCamera.fetch.mainCamera);
            moveGizmo.SetCoordSystem(Space.Self);

            var transforms = moveGizmo.gameObject.GetComponentsInChildren <Transform>(true);

            for (int i = 0; i < transforms.Length; i++)
            {
                // don't set trigger collider
                if ((transforms[i].gameObject.GetComponent <Collider>() != null) && (transforms[i].gameObject.GetComponent <Collider>().isTrigger))
                {
                    continue;
                }
                transforms[i].gameObject.layer = KerbalKonstructs.vectorLayer;
            }
        }
 private void OffsetGizmoSpawned(EditorGizmos.GizmoOffset data)
 {
     Log.trace("Offset gizmo was spawned 1");
 }
Ejemplo n.º 7
0
 private void OffsetGizmoSpawned(EditorGizmos.GizmoOffset data)
 {
     Log.Info("Offset gizmo was spawned");
 }