public static Texture2D GetGizmoTexture()
        {
            // This clever method at getting at the stock texture asset originates in Enhanced Navball.
            ManeuverGizmo       maneuverGizmo       = MapView.ManeuverNodePrefab.GetComponent <ManeuverGizmo>();
            ManeuverGizmoHandle maneuverGizmoHandle = maneuverGizmo.handleNormal;
            Transform           gizmoTransform      = maneuverGizmoHandle.flag;
            Renderer            gizmoRenderer       = gizmoTransform.renderer;

            return((Texture2D)gizmoRenderer.sharedMaterial.mainTexture);
        }
예제 #2
0
 public static Texture2D GetGizmoTexture()
 {
     if (HighLogic.LoadedSceneIsFlight)
     {
         // This clever method at getting at the stock texture asset originates in Enhanced Navball.
         ManeuverGizmo       maneuverGizmo       = MapView.ManeuverNodePrefab.GetComponent <ManeuverGizmo>();
         ManeuverGizmoHandle maneuverGizmoHandle = maneuverGizmo.handleNormal;
         Transform           gizmoTransform      = maneuverGizmoHandle.flag;
         Renderer            gizmoRenderer       = gizmoTransform.renderer;
         return((Texture2D)gizmoRenderer.sharedMaterial.mainTexture);
     }
     // Apparently when not in flight scene, the MapView isn't around yet and we need to return, well, something.
     return(new Texture2D(32, 32));
 }
예제 #3
0
    private void LoadTexture()
    {
        if (_maneuverGizmoTexture == null)
        {
            if (MapView.ManeuverNodePrefab == null)
            {
                throw new ArgumentNullException("MapView.ManeuverNodePrefab");
            }

            ManeuverGizmo maneuverGizmo = MapView.ManeuverNodePrefab.GetComponent <ManeuverGizmo>();
            if (maneuverGizmo == null)
            {
                throw new ArgumentNullException("maneuverGizmo");
            }

            ManeuverGizmoHandle maneuverGizmoHandle = maneuverGizmo.handleNormal;

            if (maneuverGizmoHandle == null)
            {
                throw new ArgumentNullException("maneuverGizmoHandle");
            }

            Transform transform = maneuverGizmoHandle.flag;

            if (transform == null)
            {
                throw new ArgumentNullException("transform");
            }

            Renderer renderer1 = transform.renderer;
            if (renderer1 == null)
            {
                throw new ArgumentNullException("renderer1");
            }

            _maneuverGizmoTexture = renderer1.sharedMaterial;
        }
    }
예제 #4
0
    public void Start()
    {
        PluginConfiguration cfg = KSP.IO.PluginConfiguration.CreateForType <NavBallDockingAlignmentIndicator>();

        cfg.load();
        Vector3 tmp = cfg.GetValue <Vector3>("alignmentmarkercolor", new Vector3(1f, 0f, 0f));                  //default: red
        Color   alignmentmarkercolor   = new Color(tmp.x, tmp.y, tmp.z);
        Vector2 alignmentmarkertexture = cfg.GetValue <Vector2>("alignmentmarkertexture", new Vector2(0f, 2f)); //default: prograde marker

        cfg.save();
        float texturescalefactor = 1f / 3f;

        //get navball object
        GameObject navBall = GameObject.Find("NavBall");
        Transform  navBallVectorsPivotTransform = navBall.transform.FindChild("vectorsPivot");

        navBallBehaviour = navBall.GetComponent <NavBall>();

        //get indicator texture (use the prograde marker, since it has a clear 'upwards' direction)
        ManeuverGizmo       maneuverGizmo       = MapView.ManeuverNodePrefab.GetComponent <ManeuverGizmo>();
        ManeuverGizmoHandle maneuverGizmoHandle = maneuverGizmo.handleNormal;
        Transform           transform           = maneuverGizmoHandle.flag;
        Renderer            renderer            = transform.renderer;
        Material            maneuverTexture     = renderer.sharedMaterial;

        //create alignment indicator game object
        indicator = Create2DObject(
            name: "navballalignmentindicator",
            size: 0.025f,             //the same size as all other markers
            col: alignmentmarkercolor,
            texture: maneuverTexture,
            textureScale: Vector2.one * texturescalefactor,
            textureOffset: alignmentmarkertexture * texturescalefactor,
            parentTransform: navBallVectorsPivotTransform,
            layer: 12             //the navball layer
            );
    }