예제 #1
0
        private void loadConfigData(ConfigNode node)
        {
            ConfigNode[] emissiveNodes = node.GetNodes("EMISSIVE");
            ConfigNode[] lightNodes    = node.GetNodes("LIGHT");
            emissiveRenderers.Clear();
            Renderer render;

            foreach (ConfigNode enode in emissiveNodes)
            {
                Transform[] trs1 = part.transform.FindChildren(enode.GetStringValue("name"));
                foreach (Transform tr in trs1)
                {
                    render = tr.GetComponent <Renderer>();
                    if (render != null)
                    {
                        emissiveRenderers.Add(render);
                    }
                }
            }
            lightTransforms = new LightData[lightNodes.Length];
            for (int i = 0; i < lightNodes.Length; i++)
            {
                lightTransforms[i] = new LightData(lightNodes[i], part);
            }
            state = (LightAnimationState)Enum.Parse(typeof(LightAnimationState), statePersistence);
        }
예제 #2
0
        private void setState(LightAnimationState state)
        {
            this.state            = state;
            this.statePersistence = state.ToString();
            String guiPrefix = String.Empty;

            switch (state)
            {
            case LightAnimationState.OFF:
                progress = 0;
                updateMeshEmissives(progress, false);
                updateLights(progress, false);
                enableLights(false);
                guiPrefix = "Enable";
                break;

            case LightAnimationState.TURNING_ON:
                progress = 0;
                updateMeshEmissives(progress, false);
                updateLights(progress, false);
                enableLights(true);
                guiPrefix = "Disable";
                break;

            case LightAnimationState.ON:
                progress = animationOnTime;
                updateMeshEmissives(progress, false);
                updateLights(progress, false);
                enableLights(true);
                guiPrefix = "Disable";
                break;

            case LightAnimationState.LOOPING_FORWARD:
                progress = 0;
                updateMeshEmissives(progress, true);
                updateLights(progress, true);
                enableLights(true);
                guiPrefix = "Disable";
                break;

            case LightAnimationState.LOOPING_BACKWARD:
                progress = animationLoopTime;
                updateMeshEmissives(progress, true);
                updateLights(progress, true);
                enableLights(true);
                guiPrefix = "Disable";
                break;

            case LightAnimationState.TURNING_OFF_LOOP:
                updateMeshEmissives(progress, true);
                updateLights(progress, true);
                enableLights(true);
                guiPrefix = "Enable";
                break;

            case LightAnimationState.TURNING_OFF:
                updateMeshEmissives(progress, false);
                updateLights(progress, false);
                enableLights(true);
                guiPrefix = "Enable";
                break;

            default:
                break;
            }
            updateAnimationControllerState();
            Events["enableLightsEvent"].guiName = guiPrefix + " " + actionName;
        }
예제 #3
0
 private void loadConfigData(ConfigNode node)
 {
     ConfigNode[] emissiveNodes = node.GetNodes("EMISSIVE");
     ConfigNode[] lightNodes = node.GetNodes("LIGHT");
     emissiveRenderers.Clear();
     Renderer render;
     foreach(ConfigNode enode in emissiveNodes)
     {
         Transform[] trs1 = part.transform.FindChildren(enode.GetStringValue("name"));
         foreach (Transform tr in trs1)
         {
             render = tr.GetComponent<Renderer>();
             if (render != null)
             {
                 emissiveRenderers.Add(render);
             }
         }
     }
     lightTransforms = new LightData[lightNodes.Length];
     for (int i = 0; i < lightNodes.Length; i++)
     {
         lightTransforms[i] = new LightData(lightNodes[i], part);
     }
     state = (LightAnimationState)Enum.Parse(typeof(LightAnimationState), statePersistence);
 }
예제 #4
0
 private void setState(LightAnimationState state)
 {
     this.state = state;
     this.statePersistence = state.ToString();
     String guiPrefix = String.Empty;
     switch (state)
     {
         case LightAnimationState.OFF:
             progress = 0;
             updateMeshEmissives(progress, false);
             updateLights(progress, false);
             enableLights(false);
             guiPrefix = "Enable";
             break;
         case LightAnimationState.TURNING_ON:
             progress = 0;
             updateMeshEmissives(progress, false);
             updateLights(progress, false);
             enableLights(true);
             guiPrefix = "Disable";
             break;
         case LightAnimationState.ON:
             progress = animationOnTime;
             updateMeshEmissives(progress, false);
             updateLights(progress, false);
             enableLights(true);
             guiPrefix = "Disable";
             break;
         case LightAnimationState.LOOPING_FORWARD:
             progress = 0;
             updateMeshEmissives(progress, true);
             updateLights(progress, true);
             enableLights(true);
             guiPrefix = "Disable";
             break;
         case LightAnimationState.LOOPING_BACKWARD:
             progress = animationLoopTime;
             updateMeshEmissives(progress, true);
             updateLights(progress, true);
             enableLights(true);
             guiPrefix = "Disable";
             break;
         case LightAnimationState.TURNING_OFF_LOOP:
             updateMeshEmissives(progress, true);
             updateLights(progress, true);
             enableLights(true);
             guiPrefix = "Enable";
             break;
         case LightAnimationState.TURNING_OFF:
             updateMeshEmissives(progress, false);
             updateLights(progress, false);
             enableLights(true);
             guiPrefix = "Enable";
             break;
         default:
             break;
     }
     updateAnimationControllerState();
     Events["enableLightsEvent"].guiName = guiPrefix+ " " + actionName;
 }
예제 #5
0
 protected override void loadConfigData(ConfigNode node)
 {
     ConfigNode[] emissiveNodes = node.GetNodes("EMISSIVE");
     ConfigNode[] lightNodes = node.GetNodes("LIGHT");
     List<Transform> trs = new List<Transform>();
     foreach(ConfigNode enode in emissiveNodes)
     {
         Transform[] trs1 = part.transform.FindChildren(enode.GetStringValue("name"));
         foreach (Transform tr in trs1) { trs.Add(tr); }
     }
     emissiveMeshes = trs.ToArray();
     trs.Clear();
     lightTransforms = new LightData[lightNodes.Length];
     for (int i = 0; i < lightNodes.Length; i++)
     {
         lightTransforms[i] = new LightData(lightNodes[i], part);
     }            
     state = (LightAnimationState)Enum.Parse(typeof(LightAnimationState), statePersistence);
 }