Exemplo n.º 1
0
    void Start()
    {
        refTransform          = new GameObject().transform;
        refTransform.parent   = part.transform;
        refTransform.rotation = Quaternion.LookRotation(vessel.ReferenceTransform.up, -vessel.ReferenceTransform.forward);
        shipHeading           = new Firespitter.ShipHeading(refTransform);

        try // overdoing the error protection a bit just because I can't be sure the renderer will be valid
        {
            Transform innerDiscTransform = base.internalProp.FindModelTransform(innerDiscName);
            if (innerDiscTransform != null)
            {
                innerDisc = innerDiscTransform.gameObject;
                discMat   = innerDisc.GetComponent <Renderer>().material;
            }
        }
        catch
        {
            Log.err("FSartificialHorizon: Can't find object, or its material: {0}", innerDiscName);
        }

        if (discMat == null)
        {
            useOffset = false;
            Log.info("FSartificialHorizon: Couldn't find disc material");
        }

        if (useOffset)
        {
            testButton         = base.internalProp.FindModelTransform(testButtonName).gameObject;
            minusButton        = base.internalProp.FindModelTransform(minusButtonName).gameObject;
            plusButton         = base.internalProp.FindModelTransform(plusButtonName).gameObject;
            testButtonHandler  = testButton.AddComponent <FSgenericButtonHandler>();
            minusButtonHandler = minusButton.AddComponent <FSgenericButtonHandler>();
            plusButtonHandler  = plusButton.AddComponent <FSgenericButtonHandler>();
            testButtonHandler.mouseDownFunction  = testCageToggle;
            minusButtonHandler.mouseDownFunction = cageMinus;
            plusButtonHandler.mouseDownFunction  = cagePlus;
        }

        needle = base.internalProp.FindModelTransform(outerRingName);
    }