コード例 #1
0
        public override void OnStart(StartState state)
        {
            base.OnStart(state);

            BaseField statusField = base.Fields["status"];

            statusField.guiName = statusText;

            lights = new UtilisLightList(part.FindModelComponents <Light>());

            if (proceduralDeploy || manualDeploy)
            {
                if (transformName != string.Empty)
                {
                    pivot = part.FindModelTransform(transformName);
                    if (persistent)
                    {
                        Vector3 old = pivot.localEulerAngles;
                        switch (axis)
                        {
                        case "x":
                            pivot.localEulerAngles = new Vector3(last, old.y, old.z);
                            break;

                        case "y":
                            pivot.localEulerAngles = new Vector3(old.x, last, old.z);
                            break;

                        case "z":
                            pivot.localEulerAngles = new Vector3(old.x, old.y, last);
                            break;
                        }
                    }
                }
                else
                {
                    log("ERROR: <string> 'transformName' is empty. Check CFG file. 'proceduralDeploy' or 'manualDeploy' were set to True");
                    throw new Exception("ERROR: Pivot Transform set to null. ");
                }
            }

            if (usedRenderers.Count <= 1)
            {
                renderers = part.FindModelComponents <Renderer>();
            }
            else
            {
                int count = usedRenderers.Count;

                for (int i = 0; i < count; i++)
                {
                    renderers.Add(part.FindModelComponent <Renderer>(usedRenderers[i]));
                }
            }
            mpb = new MaterialPropertyBlock();

            if (string.IsNullOrEmpty(shaderProperty))
            {
                log("shaderProperty returned empty or null. Check CFG file.");
            }
            else
            {
                shaderPropertyInt = Shader.PropertyToID(shaderProperty);
            }
        }
コード例 #2
0
        private void Setup()
        {
            //get events
            //u = new UtilisLog("["+ModuleID+"]");

            turnOn = base.Events["LightOn"];

            turnOff = base.Events["LightOff"];

            setupFields(base.Fields["Intensity"], AdvancedLightTweakable);

            setupFields(base.Fields["Range"], AdvancedLightTweakable);

            setupFields(base.Fields["SpotAngle"], AdvancedLightTweakable);

            //u.Log ("base.Events setup complete.");

            //u.Log ("ToggleState called.");

            //get lights
            if (lightsName != string.Empty)
            {
                List <Light> lights = part.FindModelComponents <Light>(lightsName);

                if (lights.Count != 0 || lights != null)
                {
                    LightList = new UtilisLightList(lights);

                    //u.Log ("LightList created");
                }
                else
                {
                    //u.Exception("<string> lightsName FindModelComponents query returned null or had a length of 0.");
                }
            }
            else
            {
                //u.Exception("<string> lightsName is empty.");
            }

            //get renderers
            List <Renderer> rList = part.FindModelComponents <Renderer>();

            if (!string.IsNullOrEmpty(excludeRenderList))
            {
                if (rList != null || rList.Count > 0)
                {
                    renderers = new UtilisRendererList(rList, excludedRenderers, ShaderProperty);
                }
                else
                {
                    //u.Exception("No Unity Renderer components found in model.mu file.");
                }
            }
            else
            {
                //u.Log ("No excluded Renderers found.");
                if (rList != null || rList.Count > 0)
                {
                    renderers = new UtilisRendererList(rList, ShaderProperty);
                }
            }

            //u.Log ("LightList state is set.");

            //u.Log ("renderers state is set.");

            //set events state
            if (isOn)
            {
                LightList.Enable();
                //UpdateColor(Color.cyan);
                turnOn.active = false;

                turnOff.active = true;
            }
            else
            {
                LightList.Disable();
                //UpdateColor(Color.black);
                turnOn.active = true;

                turnOff.active = false;
            }

            //part.AddOnMouseExit(new Part.OnActionDelegate(OnMouseExit));
        }