public void Light(LightColor color1, LightColor color2) { Off(); switch (color1) { case LightColor.Green: Green = true; break; case LightColor.Yellow: Yellow = true; break; case LightColor.Red: Red = true; break; } switch (color2) { case LightColor.Green: Green = true; break; case LightColor.Yellow: Yellow = true; break; case LightColor.Red: Red = true; break; } }
public Vector3 GetColor(LightColor color) { var idx = (int)color; if (idx < 0 || idx >= 18) return Vector3.Zero; return mColors[idx]; }
public void ChangeColor(LightColor color) { if (color != _lastColor) { SetColor(color); Thread.Sleep(FLASH_LENGTH); SetColor(_lastColor); Thread.Sleep(FLASH_LENGTH); SetColor(color); _lastColor = color; } }
public Light(int x, int y, LightCircuit circuit, LightColor color, LightShape shape) { Assembly assembly = Assembly.GetExecutingAssembly(); string lightName = Enum.GetName(color.GetType(), color).ToLower(); string resourceOn = string.Format("JamesAllen.XmasLights.Images.{0}_on.png", lightName); string resourceOff = string.Format("JamesAllen.XmasLights.Images.{0}_off.png", lightName); Stream streamOn = assembly.GetManifestResourceStream(resourceOn); Stream streamOff = assembly.GetManifestResourceStream(resourceOff); imageOn = (Image)Bitmap.FromStream(streamOn); imageOff = (Image)Bitmap.FromStream(streamOff); this.position = new Point(x, y); this.circuit = circuit; this.color = color; this.shape = shape; }
public void SetFlash(LightColor color) { if (color == LightColor.Off) { throw new ArgumentException("LightColor.Off is invalid"); } LightControlRequest request = new LightControlRequest() { Color = color, Flash = true }; lock (this.outstandingRequestLock) { outstandingRequest = request; outstandingRequestExist.Set(); TraceVerbose.Trace("SetFlash({0}): request queued.", color); } }
void HandleLights() { if (greenLight == null || redLight == null) InitializeLights(); if (core == null || MapView.MapIsEnabled) { litLight = LightColor.NEITHER; } else { bool somethingEnabled = false; if (vessel.GetMasterMechJeb() == core) { foreach (DisplayModule display in core.GetComputerModules<DisplayModule>()) { if (display is MechJebModuleMenu) continue; if (display.enabled && display.showInCurrentScene) { somethingEnabled = true; } } } litLight = (somethingEnabled ? LightColor.GREEN : LightColor.RED); } switch (litLight) { case LightColor.GREEN: if (!greenLight.enabled) TurnOnLight(LightColor.GREEN); if (redLight.enabled) TurnOffLight(LightColor.RED); break; case LightColor.RED: if (greenLight.enabled) TurnOffLight(LightColor.GREEN); if (!redLight.enabled) TurnOnLight(LightColor.RED); break; case LightColor.NEITHER: if (greenLight.enabled) TurnOffLight(LightColor.GREEN); if (redLight.enabled) TurnOffLight(LightColor.RED); break; } }
public void ChangeState() { this.colorState = (LightColor)(((int)this.colorState + 1) % Enum.GetNames(typeof(LightColor)).Length); }
public SecondsLampRow(int max, Func <int> p, LightColor color) : base(max, p, color) { }
public void Render(Camera camera, int depthMap, Matrix4 lightMatrix, Vector2 screenDimensions, bool drawShadow = false) { if (!Checked) { return; } Shader shader; // 3DS MBN shader = OpenTKSharedResources.shaders["Mbn"]; shader.UseProgram(); SetMbnUniforms(camera, shader); // Melee DAT shader = OpenTKSharedResources.shaders["Dat"]; shader.UseProgram(); SetDatUniforms(shader); if (BCH != null) { foreach (BCH_Model mo in BCH.Models.Nodes) { mo.Render(camera.MvpMatrix); } } if (DatMelee != null && OpenTKSharedResources.shaders["Dat"].ProgramCreatedSuccessfully) { DatMelee.Render(camera.MvpMatrix); } LightColor diffuseColor = Runtime.lightSetParam.characterDiffuse.diffuseColor; LightColor ambientColor = Runtime.lightSetParam.characterDiffuse.ambientColor; if (KCL != null && OpenTKSharedResources.shaders["KCL"].ProgramCreatedSuccessfully) { shader = OpenTKSharedResources.shaders["KCL"]; shader.UseProgram(); shader.SetVector3("difLightColor", diffuseColor.R, diffuseColor.G, diffuseColor.B); shader.SetVector3("ambLightColor", ambientColor.R, ambientColor.G, ambientColor.B); KCL.Render(camera.MvpMatrix); } if (BFRES != null && OpenTKSharedResources.shaders["BFRES"].ProgramCreatedSuccessfully && OpenTKSharedResources.shaders["BFRES_PBR"].ProgramCreatedSuccessfully) { if (Runtime.renderPhysicallyBasedRendering == true) { shader = OpenTKSharedResources.shaders["BFRES_PBR"]; } else { shader = OpenTKSharedResources.shaders["BFRES"]; } shader.UseProgram(); shader.SetVector3("difLightColor", diffuseColor.R, diffuseColor.G, diffuseColor.B); shader.SetVector3("ambLightColor", ambientColor.R, ambientColor.G, ambientColor.B); Matrix4 invertedCamera = camera.MvpMatrix.Inverted(); Vector3 lightDirection = new Vector3(0f, 0f, -1f); //Todo. Maybe change direction via AAMP file (configs shader data) shader.SetVector3("lightDirection", Vector3.TransformNormal(lightDirection, invertedCamera).Normalized()); shader.SetVector3("specLightDirection", Vector3.TransformNormal(lightDirection, invertedCamera).Normalized()); shader.SetVector3("difLightDirection", Vector3.TransformNormal(lightDirection, invertedCamera).Normalized()); shader.SetInt("debugOption", (int)Runtime.uvChannel); // This cube map is for a quick test. shader.SetTexture("cmap", RenderTools.dummyTextures[NUD.DummyTextures.StageMapHigh].Id, TextureTarget.TextureCubeMap, 2); BFRES.Render(camera.MvpMatrix); } if (NUD != null && OpenTKSharedResources.shaders["Nud"].ProgramCreatedSuccessfully && OpenTKSharedResources.shaders["NudDebug"].ProgramCreatedSuccessfully) { // Choose the appropriate shader. if (drawShadow) { shader = OpenTKSharedResources.shaders["Shadow"]; } else if (Runtime.renderType != Runtime.RenderTypes.Shaded) { shader = OpenTKSharedResources.shaders["NudDebug"]; } else { shader = OpenTKSharedResources.shaders["Nud"]; } shader.UseProgram(); // Matrices. Matrix4 lightMatrixRef = lightMatrix; shader.SetMatrix4x4("lightMatrix", ref lightMatrixRef); SetCameraMatrixUniforms(camera, shader); SetRenderSettingsUniforms(shader); SetLightingUniforms(shader, camera); shader.SetInt("renderType", (int)Runtime.renderType); shader.SetInt("debugOption", (int)Runtime.uvChannel); shader.SetBoolToInt("drawShadow", Runtime.drawModelShadow); shader.SetTexture("depthMap", depthMap, TextureTarget.Texture2D, 14); SetElapsedDirectUvTime(shader); NUD.Render(VBN, camera, drawShadow, Runtime.drawNudColorIdPass); } }
public TrafficLight(LightColor colorState) { this.currentColor = colorState; }
IEnumerator Lighting() { --countDown; if (countDown < 0) { switch (lightColor) { case LightColor.GREEN_LIGHT: { lightColor = LightColor.YELLOW_LIGHT; TurnOn(yellowLight); TurnOff(greenLight); countDown = yellowTime; break; } case LightColor.YELLOW_LIGHT: { lightColor = LightColor.RED_LIGHT; TurnOn(redLight); TurnOff(yellowLight); countDown = redTime; break; } case LightColor.RED_LIGHT: { lightColor = LightColor.GREEN_LIGHT; TurnOn(greenLight); TurnOff(redLight); countDown = greenTime; break; } default: { lightColor = LightColor.GREEN_LIGHT; TurnOff(redLight); TurnOff(yellowLight); TurnOn(greenLight); countDown = greenTime; break; } } } if (countDownText != null) { countDownText.text = countDown.ToString(); } yield return(new WaitForSeconds(1)); StartCoroutine(Lighting()); }
/// <summary> /// Changes the color of the light /// </summary> public void painttoRed() { this.b = new SolidBrush(Color.Red); light = LightColor.Red; }
public void paintgreen() { this.b = new SolidBrush(Color.Green); light = LightColor.Green; }
/// <summary> /// 点亮 /// </summary> /// <param name="lightId"></param> /// <param name="flash">闪烁</param> /// <returns></returns> public ErrorCode SetLight(int lightId, LightOnOffState onOff, LightColor color) { if (!lightSenders.ContainsKey(lightId)) { if (OnError != null) { OnError.BeginInvoke(null, "无效灯ID", null, null); } return(ErrorCode.灯控制_无效灯ID); } LightState cmd = LightState.OFF; switch (color) { case LightColor.RED: switch (onOff) { case LightOnOffState.ON: cmd = LightState.ON_RED; break; case LightOnOffState.BLINK: cmd = LightState.BLINK_RED; break; case LightOnOffState.OFF: cmd = LightState.OFF; break; } break; case LightColor.GREEN: switch (onOff) { case LightOnOffState.ON: cmd = LightState.ON_GREEN; break; case LightOnOffState.BLINK: cmd = LightState.BLINK_GREEN; break; case LightOnOffState.OFF: cmd = LightState.OFF; break; } break; } var client = lightSenders[lightId]; int retry = 3; while (!client.WriteAndCheckResponse(cmd)) { retry--; if (retry == 0) { string err = string.Format("Light({0}) Retry Send 3 Times Failed", lightId); if (OnError != null) { OnError.BeginInvoke(null, err, null, null); } //3次重发超时异常 NLog.LogManager.GetCurrentClassLogger().Error(err); return(ErrorCode.灯控制_发送灯后超时未收到应答); } } return(ErrorCode.成功); }
public static string DisplayClass(this LightColor color) { return(string.Format("light-display-{0}", color.DisplayName.ToLowerInvariant())); }
public void SetFlash(LightColor color) { }
public void SetSolid(LightColor color) { }
public static void switchEmissive(SmartSensorModuleBase baseM, Light light, bool state, LightColor color = LightColor.WHITE) { light.intensity = (state ? 1 : 0); light.enabled = state; light.enabled = true; light.range = 0.25f; switch (color) { case LightColor.RED: light.color = new Color(1, 0, 0); break; case LightColor.GREEN: light.color = new Color(0, 1, 0); break; case LightColor.BLUE: light.color = new Color(0, 0, 1); break; case LightColor.WHITE: light.color = new Color(1, 1, 1); break; } }
public TrafficLight(LightColor light) { this.Light = light; this.lightsCount = Enum.GetNames(typeof(LightColor)).Length; }
private void RenderCharacterLightGradient(LightColor topColor, LightColor bottomColor) { DrawGradient(new Vector3(topColor.R, topColor.G, topColor.B), new Vector3(bottomColor.R, bottomColor.G, bottomColor.B)); }
/// <summary> /// Change the color of a group of lights. /// </summary> /// <remarks> /// This will automatically turn on the group of lights. /// </remarks> /// <param name="group">Group id.</param> /// <param name="color">Color.</param> public void SetLightColor(int group, LightColor color) { SetLightState(group, true); SendCommand(new byte[] { 0x40, (byte) color }); }
public static Light Ambience(LightColor brightness_0) { return(new Light("AMBIENCE", brightness_0, null)); }
public ColorLight(LightColor light, SoundType sound, object ellipse) { Light = light; Sound = sound; Ellispe = ellipse; }
public static Light Parallel(LightColor brightness_0, Vector3D direction_1) { return(new Light("PARALLEL", brightness_0, direction_1)); }
void TurnOffLight(LightColor which) { switch (which) { case LightColor.GREEN: if (greenLightTransform != null) { greenLightTransform.renderer.material.shader = originalLensShader; greenLightTransform.renderer.material.color = originalLensColor; greenLight.enabled = false; } break; case LightColor.RED: if (redLightTransform != null) { redLightTransform.renderer.material.shader = originalLensShader; redLightTransform.renderer.material.color = originalLensColor; redLight.enabled = false; } break; } }
public static Light Point(LightColor brightness_0, Vector3D position_1) { return(new Light("POINT", brightness_0, position_1)); }
public void SetSolid(LightColor color) { }
Segment GetHello() { const int IntroPeriod = 3000; const int IntroFade = 1000; const int RandomTime = 5500; const int RandomPeriod = 1200; const int RandomFade = 800; const int ResolveTime = 23000; const int ResolveFade = 3000; const int DissolveTime = 31000; const int DissolveFade = 2000; const string HeaderHelloLights = "2,1/2,2/2,3/2,4/2,5/3,1/3,2/3,3/3,4/3,5/4,3/5,3/6,1/6,2/6,3/6,4/6,5/7,1/7,2/7,3/7,4/7,5/9,1/9,2/9,3/9,4/9,5/10,1/10,2/10,3/10,4/10,5/11,1/11,3/11,5/12,1/12,3/12,5/14,1/14,2/14,3/14,4/14,5/15,1/15,2/15,3/15,4/15,5/16,5/17,5/19,1/19,2/19,3/19,4/19,5/20,1/20,2/20,3/20,4/20,5/21,5/22,5/24,2/24,3/24,4/25,1/25,2/25,3/25,4/25,5/26,1/26,5/27,1/27,5/28,1/28,2/28,3/28,4/28,5/29,2/29,3/29,4"; const string BodyHelloLights = "0,0/1,0/2,0/3,0/4,0/5,0/6,0/7,0/8,0/9,0/10,0/11,0/12,0/13,0/14,0/15,0/16,0/17,0/18,0/19,0/20,0/38,0/39,0/40,0/41,0/42,0/43,0/44,0/45,0/46,0/47,0/48,0/49,0/50,0/51,0/52,0/53,0/54,0/55,0/56,0/57,0/58,0/76,0/77,0/78,0/79,0/80,0/81,0/82,0/83,0/84,0/85,0/86,0/87,0/88,0/89,0/90,0/91,0/92,0/93,0/94,0/95,0/96,0/0,1/1,1/2,1/3,1/4,1/5,1/6,1/7,1/8,1/9,1/10,1/11,1/12,1/13,1/14,1/15,1/16,1/17,1/18,1/19,1/20,1/38,1/39,1/40,1/41,1/42,1/43,1/44,1/45,1/46,1/47,1/48,1/49,1/50,1/51,1/52,1/53,1/54,1/55,1/56,1/57,1/" + "58,1/76,1/77,1/78,1/79,1/80,1/81,1/82,1/83,1/84,1/85,1/86,1/87,1/88,1/89,1/90,1/91,1/92,1/93,1/94,1/95,1/96,1/0,2/1,2/19,2/20,2/38,2/39,2/57,2/58,2/76,2/77,2/95,2/96,2/0,3/1,3/19,3/20,3/38,3/39,3/57,3/58,3/76,3/77,3/95,3/96,3/0,4/1,4/19,4/20,4/38,4/39,4/57,4/58,4/76,4/77,4/95,4/96,4/0,5/1,5/19,5/20,5/38,5/39,5/57,5/58,5/76,5/77,5/95,5/96,5/0,6/1,6/19,6/20,6/38,6/39,6/57,6/58,6/76,6/77,6/95,6/96,6/0,7/1,7/19,7/20,7/38,7/39,7/57,7/58,7/76,7/77,7/95,7/96,7/0,8/1,8/19,8/20,8/38,8/39,8/57,8/58,8/76,8" + "/77,8/95,8/96,8/0,9/1,9/19,9/20,9/38,9/39,9/57,9/58,9/76,9/77,9/95,9/96,9/0,10/1,10/19,10/20,10/38,10/39,10/57,10/58,10/76,10/77,10/95,10/96,10/0,11/1,11/19,11/20,11/38,11/39,11/57,11/58,11/76,11/77,11/95,11/96,11/0,12/1,12/19,12/20,12/38,12/39,12/57,12/58,12/76,12/77,12/95,12/96,12/0,13/1,13/19,13/20,13/38,13/39,13/57,13/58,13/76,13/77,13/95,13/96,13/0,14/1,14/19,14/20,14/38,14/39,14/57,14/58,14/76,14/77,14/95,14/96,14/0,15/1,15/19,15/20,15/38,15/39,15/57,15/58,15/76,15/77,15/95,15/96,15/0,16/1" + ",16/19,16/20,16/38,16/39,16/57,16/58,16/76,16/77,16/95,16/96,16/0,17/1,17/19,17/20,17/38,17/39,17/57,17/58,17/76,17/77,17/95,17/96,17/0,18/1,18/19,18/20,18/38,18/39,18/57,18/58,18/76,18/77,18/95,18/96,18/0,19/1,19/19,19/20,19/38,19/39,19/57,19/58,19/76,19/77,19/95,19/96,19/0,20/1,20/19,20/20,20/38,20/39,20/57,20/58,20/76,20/77,20/95,20/96,20/0,21/1,21/19,21/20,21/38,21/39,21/57,21/58,21/76,21/77,21/95,21/96,21/0,22/1,22/19,22/20,22/38,22/39,22/57,22/58,22/76,22/77,22/95,22/96,22/0,23/1,23/19,23/" + "20,23/38,23/39,23/57,23/58,23/76,23/77,23/95,23/96,23/0,24/1,24/19,24/20,24/38,24/39,24/57,24/58,24/76,24/77,24/95,24/96,24/0,25/1,25/19,25/20,25/38,25/39,25/57,25/58,25/76,25/77,25/95,25/96,25/0,26/1,26/19,26/20,26/38,26/39,26/57,26/58,26/76,26/77,26/95,26/96,26/0,27/1,27/19,27/20,27/38,27/39,27/57,27/58,27/76,27/77,27/95,27/96,27/0,28/1,28/19,28/20,28/38,28/39,28/57,28/58,28/76,28/77,28/95,28/96,28/0,29/1,29/19,29/20,29/38,29/39,29/57,29/58,29/76,29/77,29/95,29/96,29/0,30/1,30/19,30/20,30/38,3" + "0/39,30/57,30/58,30/76,30/77,30/95,30/96,30/0,31/1,31/19,31/20,31/38,31/39,31/57,31/58,31/76,31/77,31/95,31/96,31/0,32/1,32/19,32/20,32/38,32/39,32/57,32/58,32/76,32/77,32/95,32/96,32/0,33/1,33/19,33/20,33/38,33/39,33/57,33/58,33/76,33/77,33/95,33/96,33/0,34/1,34/19,34/20,34/38,34/39,34/57,34/58,34/76,34/77,34/95,34/96,34/0,35/1,35/19,35/20,35/38,35/39,35/57,35/58,35/76,35/77,35/95,35/96,35/0,36/1,36/19,36/20,36/38,36/39,36/57,36/58,36/76,36/77,36/95,36/96,36/0,37/1,37/19,37/20,37/38,37/39,37/57" + ",37/58,37/76,37/77,37/95,37/96,37/0,38/1,38/19,38/20,38/21,38/22,38/23,38/24,38/25,38/26,38/27,38/28,38/29,38/30,38/31,38/32,38/33,38/34,38/35,38/36,38/37,38/38,38/39,38/57,38/58,38/76,38/77,38/95,38/96,38/0,39/1,39/19,39/20,39/21,39/22,39/23,39/24,39/25,39/26,39/27,39/28,39/29,39/30,39/31,39/32,39/33,39/34,39/35,39/36,39/37,39/38,39/39,39/57,39/58,39/76,39/77,39/95,39/96,39/0,40/1,40/57,40/58,40/76,40/77,40/95,40/96,40/0,41/1,41/57,41/58,41/76,41/77,41/95,41/96,41/0,42/1,42/57,42/58,42/76,42/77" + ",42/95,42/96,42/0,43/1,43/57,43/58,43/76,43/77,43/95,43/96,43/0,44/1,44/57,44/58,44/76,44/77,44/95,44/96,44/0,45/1,45/57,45/58,45/76,45/77,45/95,45/96,45/0,46/1,46/57,46/58,46/76,46/77,46/95,46/96,46/0,47/1,47/57,47/58,47/76,47/77,47/95,47/96,47/0,48/1,48/57,48/58,48/76,48/77,48/95,48/96,48/0,49/1,49/57,49/58,49/76,49/77,49/95,49/96,49/0,50/1,50/57,50/58,50/76,50/77,50/95,50/96,50/0,51/1,51/57,51/58,51/76,51/77,51/95,51/96,51/0,52/1,52/57,52/58,52/76,52/77,52/95,52/96,52/0,53/1,53/57,53/58,53/76" + ",53/77,53/95,53/96,53/0,54/1,54/57,54/58,54/76,54/77,54/95,54/96,54/0,55/1,55/57,55/58,55/76,55/77,55/95,55/96,55/0,56/1,56/57,56/58,56/76,56/77,56/95,56/96,56/0,57/1,57/19,57/20,57/21,57/22,57/23,57/24,57/25,57/26,57/27,57/28,57/29,57/30,57/31,57/32,57/33,57/34,57/35,57/36,57/37,57/38,57/39,57/57,57/58,57/76,57/77,57/95,57/96,57/0,58/1,58/19,58/20,58/21,58/22,58/23,58/24,58/25,58/26,58/27,58/28,58/29,58/30,58/31,58/32,58/33,58/34,58/35,58/36,58/37,58/38,58/39,58/57,58/58,58/76,58/77,58/95,58/96" + ",58/0,59/1,59/19,59/20,59/38,59/39,59/57,59/58,59/76,59/77,59/95,59/96,59/0,60/1,60/19,60/20,60/38,60/39,60/57,60/58,60/76,60/77,60/95,60/96,60/0,61/1,61/19,61/20,61/38,61/39,61/57,61/58,61/76,61/77,61/95,61/96,61/0,62/1,62/19,62/20,62/38,62/39,62/57,62/58,62/76,62/77,62/95,62/96,62/0,63/1,63/19,63/20,63/38,63/39,63/57,63/58,63/76,63/77,63/95,63/96,63/0,64/1,64/19,64/20,64/38,64/39,64/57,64/58,64/76,64/77,64/95,64/96,64/0,65/1,65/19,65/20,65/38,65/39,65/57,65/58,65/76,65/77,65/95,65/96,65/0,66/1" + ",66/19,66/20,66/38,66/39,66/57,66/58,66/76,66/77,66/95,66/96,66/0,67/1,67/19,67/20,67/38,67/39,67/57,67/58,67/76,67/77,67/95,67/96,67/0,68/1,68/19,68/20,68/38,68/39,68/57,68/58,68/76,68/77,68/95,68/96,68/0,69/1,69/19,69/20,69/38,69/39,69/57,69/58,69/76,69/77,69/95,69/96,69/0,70/1,70/19,70/20,70/38,70/39,70/57,70/58,70/76,70/77,70/95,70/96,70/0,71/1,71/19,71/20,71/38,71/39,71/57,71/58,71/76,71/77,71/95,71/96,71/0,72/1,72/19,72/20,72/38,72/39,72/57,72/58,72/76,72/77,72/95,72/96,72/0,73/1,73/19,73/" + "20,73/38,73/39,73/57,73/58,73/76,73/77,73/95,73/96,73/0,74/1,74/19,74/20,74/38,74/39,74/57,74/58,74/76,74/77,74/95,74/96,74/0,75/1,75/19,75/20,75/38,75/39,75/57,75/58,75/76,75/77,75/95,75/96,75/0,76/1,76/19,76/20,76/38,76/39,76/57,76/58,76/76,76/77,76/95,76/96,76/0,77/1,77/19,77/20,77/38,77/39,77/57,77/58,77/76,77/77,77/95,77/96,77/0,78/1,78/19,78/20,78/38,78/39,78/57,78/58,78/76,78/77,78/95,78/96,78/0,79/1,79/19,79/20,79/38,79/39,79/57,79/58,79/76,79/77,79/95,79/96,79/0,80/1,80/19,80/20,80/38,8" + "0/39,80/57,80/58,80/76,80/77,80/95,80/96,80/0,81/1,81/19,81/20,81/38,81/39,81/57,81/58,81/76,81/77,81/95,81/96,81/0,82/1,82/19,82/20,82/38,82/39,82/57,82/58,82/76,82/77,82/95,82/96,82/0,83/1,83/19,83/20,83/38,83/39,83/57,83/58,83/76,83/77,83/95,83/96,83/0,84/1,84/19,84/20,84/38,84/39,84/57,84/58,84/76,84/77,84/95,84/96,84/0,85/1,85/19,85/20,85/38,85/39,85/57,85/58,85/76,85/77,85/95,85/96,85/0,86/1,86/19,86/20,86/38,86/39,86/57,86/58,86/76,86/77,86/95,86/96,86/0,87/1,87/19,87/20,87/38,87/39,87/57" + ",87/58,87/76,87/77,87/95,87/96,87/0,88/1,88/19,88/20,88/38,88/39,88/57,88/58,88/76,88/77,88/95,88/96,88/0,89/1,89/19,89/20,89/38,89/39,89/57,89/58,89/76,89/77,89/95,89/96,89/0,90/1,90/19,90/20,90/38,90/39,90/57,90/58,90/76,90/77,90/95,90/96,90/0,91/1,91/19,91/20,91/38,91/39,91/57,91/58,91/76,91/77,91/95,91/96,91/0,92/1,92/19,92/20,92/38,92/39,92/57,92/58,92/76,92/77,92/95,92/96,92/0,93/1,93/19,93/20,93/38,93/39,93/57,93/58,93/76,93/77,93/95,93/96,93/0,94/1,94/19,94/20,94/38,94/39,94/57,94/58,94/" + "76,94/77,94/95,94/96,94/0,95/1,95/2,95/3,95/4,95/5,95/6,95/7,95/8,95/9,95/10,95/11,95/12,95/13,95/14,95/15,95/16,95/17,95/18,95/19,95/20,95/38,95/39,95/40,95/41,95/42,95/43,95/44,95/45,95/46,95/47,95/48,95/49,95/50,95/51,95/52,95/53,95/54,95/55,95/56,95/57,95/58,95/76,95/77,95/78,95/79,95/80,95/81,95/82,95/83,95/84,95/85,95/86,95/87,95/88,95/89,95/90,95/91,95/92,95/93,95/94,95/95,95/96,95/0,96/1,96/2,96/3,96/4,96/5,96/6,96/7,96/8,96/9,96/10,96/11,96/12,96/13,96/14,96/15,96/16,96/17,96/18,96/19,9" + "6/20,96/38,96/39,96/40,96/41,96/42,96/43,96/44,96/45,96/46,96/47,96/48,96/49,96/50,96/51,96/52,96/53,96/54,96/55,96/56,96/57,96/58,96/76,96/77,96/78,96/79,96/80,96/81,96/82,96/83,96/84,96/85,96/86,96/87,96/88,96/89,96/90,96/91,96/92,96/93,96/94,96/95,96/96,96"; var headerLayout = new Layout("Shelfinator.Creator.Songs.Layout.Layout-Header.png"); var bodyLayout = new Layout("Shelfinator.Creator.Songs.Layout.Layout-Body.png"); var rand = new Random(0xc0c0a); var points = new List <Tuple <Point, Layout> >(); points.AddRange(HeaderHelloLights.Split('/').Select(p => Point.Parse(p)).Select(p => Tuple.Create(p, headerLayout))); points.AddRange(BodyHelloLights.Split('/').Select(p => Point.Parse(p)).Select(p => Tuple.Create(p, bodyLayout))); points = points.OrderBy(p => rand.Next()).ToList(); var centers = new Dictionary <Layout, Point> { [headerLayout] = new Point(15.5, 3.5), [bodyLayout] = new Point(48, 48), }; var minDist = new Dictionary <Layout, double> { [headerLayout] = 0.707106781186548, [bodyLayout] = 9, }; var spread = new Dictionary <Layout, double> { [headerLayout] = 15.1831418008842, [bodyLayout] = 58.8822509939086, }; var segment = new Segment(); var colors = Helpers.Rainbow6; var color = new LightColor(0, 1000, colors); var fadeOut = DissolveTime; foreach (var point in points) { var center = centers[point.Item2]; var light = point.Item2.GetPositionLight(point.Item1); var dist = ((point.Item1 - center).Length - minDist[point.Item2]) / spread[point.Item2]; // Initial white fade in var time = (dist * (IntroPeriod - IntroFade)).Round(); segment.AddLight(light, time, time + IntroFade, null, 0, 0x101010); // Random colors in the middle time = RandomTime + rand.Next(RandomPeriod); var curColor = -1; while (time < ResolveTime) { ++curColor; while (true) { var nextColor = rand.Next(colors.Count); if (nextColor == curColor) { continue; } curColor = nextColor; break; } segment.AddLight(light, time, time + RandomFade, null, 0, colors[curColor]); time += RandomPeriod; } // Circle colors at end segment.AddLight(light, ResolveTime - ResolveFade, ResolveTime, null, 0, color, 1000 - (dist * 1000).Round()); // Dissolve segment.AddLight(light, fadeOut, 0x000000); fadeOut += DissolveFade / points.Count; } return(segment); }
public void ChangeColor() { this.currentColor++; this.currentColor = (int)this.currentColor > 2 ? 0 : this.currentColor; }
public static void LightColorVector3Uniform(Shader shader, LightColor color, string name) { // Not declared in the Shader class to make the Shader class more portable. shader.SetVector3(name, color.R, color.G, color.B); }
void HandleLights() { if (core == null || MapView.MapIsEnabled) { litLight = LightColor.NEITHER; } else { bool somethingEnabled = false; if (vessel.GetMasterMechJeb() == core) { foreach (DisplayModule display in core.GetComputerModules <DisplayModule>()) { if (display is MechJebModuleMenu) { continue; } if (display.enabled && display.showInCurrentScene) { somethingEnabled = true; } } } litLight = (somethingEnabled ? LightColor.GREEN : LightColor.RED); } switch (litLight) { case LightColor.GREEN: if (!greenLight.enabled) { TurnOnLight(LightColor.GREEN); } if (redLight.enabled) { TurnOffLight(LightColor.RED); } break; case LightColor.RED: if (greenLight.enabled) { TurnOffLight(LightColor.GREEN); } if (!redLight.enabled) { TurnOnLight(LightColor.RED); } break; case LightColor.NEITHER: if (greenLight.enabled) { TurnOffLight(LightColor.GREEN); } if (redLight.enabled) { TurnOffLight(LightColor.RED); } break; } }
List<Segment> MoveSquares() { var movePhase = new List<List<int>> { new List<int> { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, new List<int> { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, }; var result = new List<Segment>(); var phases = new List<List<MoveSquaresItem>> { new List<MoveSquaresItem>(), new List<MoveSquaresItem>() }; MoveSquaresAddPoints(phases, new Point(0, 0), new Point(19, 19), new Point(38, 38), new Size(19, 1), true); MoveSquaresAddPoints(phases, new Point(20, 0), new Point(20, 19), new Point(39, 38), new Size(18, 1), true); MoveSquaresAddPoints(phases, new Point(39, 0), new Point(39, 19), new Point(39, 38), new Size(18, 1), true); MoveSquaresAddPoints(phases, new Point(58, 0), new Point(58, 19), new Point(39, 38), new Size(18, 1), true); MoveSquaresAddPoints(phases, new Point(77, 0), new Point(58, 19), new Point(39, 38), new Size(19, 1), true); MoveSquaresAddPoints(phases, new Point(0, 95), new Point(19, 76), new Point(38, 57), new Size(19, 1), true); MoveSquaresAddPoints(phases, new Point(20, 95), new Point(20, 76), new Point(39, 57), new Size(18, 1), true); MoveSquaresAddPoints(phases, new Point(39, 95), new Point(39, 76), new Point(39, 57), new Size(18, 1), true); MoveSquaresAddPoints(phases, new Point(58, 95), new Point(58, 76), new Point(39, 57), new Size(18, 1), true); MoveSquaresAddPoints(phases, new Point(77, 95), new Point(58, 76), new Point(39, 57), new Size(19, 1), true); MoveSquaresAddPoints(phases, new Point(0, 0), new Point(19, 19), new Point(38, 38), new Size(1, 19), false); MoveSquaresAddPoints(phases, new Point(0, 20), new Point(19, 20), new Point(38, 39), new Size(1, 18), false); MoveSquaresAddPoints(phases, new Point(0, 39), new Point(19, 39), new Point(38, 39), new Size(1, 18), false); MoveSquaresAddPoints(phases, new Point(0, 58), new Point(19, 58), new Point(38, 39), new Size(1, 18), false); MoveSquaresAddPoints(phases, new Point(0, 77), new Point(19, 58), new Point(38, 39), new Size(1, 19), false); MoveSquaresAddPoints(phases, new Point(95, 0), new Point(76, 19), new Point(57, 38), new Size(1, 19), false); MoveSquaresAddPoints(phases, new Point(95, 20), new Point(76, 20), new Point(57, 39), new Size(1, 18), false); MoveSquaresAddPoints(phases, new Point(95, 39), new Point(76, 39), new Point(57, 39), new Size(1, 18), false); MoveSquaresAddPoints(phases, new Point(95, 58), new Point(76, 58), new Point(57, 39), new Size(1, 18), false); MoveSquaresAddPoints(phases, new Point(95, 77), new Point(76, 58), new Point(57, 39), new Size(1, 19), false); var color = new LightColor( new List<int> { 0x101010 }, new List<int> { 0x0a0604 }, new List<int> { 0x0c0403 }, new List<int> { 0x0d060d }, new List<int> { 0x010d03 }, new List<int> { 0x030b10 }, new List<int> { 0x100b00 }, new List<int> { 0x100e0d } ); for (var phase = 0; phase < phases.Count; phase++) { var segment = new Segment(); var time = 0; while (true) { var done = true; foreach (var point in phases[phase]) { if (!point.Done) done = false; var lights = bodyLayout.GetPositionLights(point.position, 2, 2); foreach (var light in lights) { segment.AddLight(light, time, color, 0); segment.AddLight(light, time + 1, 0x000000); } point.Move(movePhase[phase]); } ++time; if (done) break; } result.Add(segment); } return result; }
public TrafficLight(LightColor colorState) { this.colorState = colorState; }
Segment RainbowSquare() { var segment = new Segment(); var color = new LightColor(0, 192, new List<int> { 0x000010, 0x000004, 0x000004, 0x000010, 0x000004, 0x000004, 0x000010 }, new List<int> { 0x100000, 0x001000, 0x100000, 0x001000, 0x100000, 0x001000, 0x100000, 0x001000, 0x100000 }, new List<int> { 0x100010, 0x001010, 0x100010, 0x001010, 0x100010, 0x001010, 0x100010, 0x001010, 0x100010 }, Helpers.Rainbow6.Concat(Helpers.Rainbow6).Concat(Helpers.Rainbow6.Take(1)).ToList() ); for (var ctr = 0; ctr < 97; ++ctr) { foreach (var light in bodyLayout.GetPositionLights(19, ctr, 2, 1)) segment.AddLight(light, 0, 1000, color, ctr, color, ctr + 96, true); foreach (var light in bodyLayout.GetPositionLights(ctr, 19, 1, 2)) segment.AddLight(light, 0, 1000, color, ctr, color, ctr + 96, true); foreach (var light in bodyLayout.GetPositionLights(76, 96 - ctr, 2, 1)) segment.AddLight(light, 0, 1000, color, ctr, color, ctr + 96, true); foreach (var light in bodyLayout.GetPositionLights(96 - ctr, 76, 1, 2)) segment.AddLight(light, 0, 1000, color, ctr, color, ctr + 96, true); if (((ctr < 17) || (ctr >= 23)) && ((ctr < 74) || (ctr >= 80))) { foreach (var light in bodyLayout.GetPositionLights(96 - ctr, 0, 1, 2)) segment.AddLight(light, 0, 1000, color, ctr, color, ctr + 96, true); foreach (var light in bodyLayout.GetPositionLights(0, 96 - ctr, 2, 1)) segment.AddLight(light, 0, 1000, color, ctr, color, ctr + 96, true); foreach (var light in bodyLayout.GetPositionLights(ctr, 95, 1, 2)) segment.AddLight(light, 0, 1000, color, ctr, color, ctr + 96, true); foreach (var light in bodyLayout.GetPositionLights(95, ctr, 2, 1)) segment.AddLight(light, 0, 1000, color, ctr, color, ctr + 96, true); } if ((ctr >= 23) && (ctr < 74)) { foreach (var light in bodyLayout.GetPositionLights(38, 96 - ctr, 2, 1)) segment.AddLight(light, 0, 1000, color, ctr, color, ctr + 96, true); foreach (var light in bodyLayout.GetPositionLights(96 - ctr, 38, 1, 2)) segment.AddLight(light, 0, 1000, color, ctr, color, ctr + 96, true); foreach (var light in bodyLayout.GetPositionLights(57, ctr, 2, 1)) segment.AddLight(light, 0, 1000, color, ctr, color, ctr + 96, true); foreach (var light in bodyLayout.GetPositionLights(ctr, 57, 1, 2)) segment.AddLight(light, 0, 1000, color, ctr, color, ctr + 96, true); } if (ctr < 17) { foreach (var light in bodyLayout.GetPositionLights(ctr, 38, 1, 2)) segment.AddLight(light, 0, 1000, color, ctr + 57, color, ctr + 96 + 57, true); foreach (var light in bodyLayout.GetPositionLights(ctr, 57, 1, 2)) segment.AddLight(light, 0, 1000, color, ctr + 38, color, ctr + 96 + 38, true); foreach (var light in bodyLayout.GetPositionLights(96 - ctr, 38, 1, 2)) segment.AddLight(light, 0, 1000, color, ctr + 38, color, ctr + 96 + 38, true); foreach (var light in bodyLayout.GetPositionLights(96 - ctr, 57, 1, 2)) segment.AddLight(light, 0, 1000, color, ctr + 57, color, ctr + 96 + 57, true); foreach (var light in bodyLayout.GetPositionLights(38, ctr, 2, 1)) segment.AddLight(light, 0, 1000, color, ctr + 57, color, ctr + 96 + 57, true); foreach (var light in bodyLayout.GetPositionLights(57, ctr, 2, 1)) segment.AddLight(light, 0, 1000, color, ctr + 38, color, ctr + 96 + 38, true); foreach (var light in bodyLayout.GetPositionLights(38, 96 - ctr, 2, 1)) segment.AddLight(light, 0, 1000, color, ctr + 38, color, ctr + 96 + 38, true); foreach (var light in bodyLayout.GetPositionLights(57, 96 - ctr, 2, 1)) segment.AddLight(light, 0, 1000, color, ctr + 57, color, ctr + 96 + 57, true); } } return segment; }
public override string ToString() { return($"new PokemonData({PokedexID}, \"{Name}\", PokemonData.Type.{Type1.ToUpper()}, PokemonData.Type.{Type2.ToUpper()}, \"{AbilityCheck(Ability1)}\", {AbilityCheck(Ability2)}, \"{AbilityCheck(HiddenAbility)}\",\n" + $"{MaleRatio}f, {CatchRate}, PokemonData.EggGroup.{EggGroup1.ToUpper()}, PokemonData.EggGroup.{EggGroup2.ToUpper()}, {HatchTime}, {Height}f, {Weight}f,\n" + $"{EvExp.ToString()}, PokemonData.LevelingRate.{ToUpperRemoveSpace(LevelingRate)}, {EvHP.ToString()}, {EvAttack.ToString()}, {EvDefense.ToString()}, {EvSpecialAttack.ToString()}, {EvSpecialDefense.ToString()}, {EvSpeed.ToString()}, PokemonData.PokedexColor.{ToUpperRemoveSpace(PokedexColor)}, {BaseFriendship.ToString()},\n" + $"\"{Species}\", \"{PokedexEntry}\",\n" + $"{BaseHP.ToString()}, {BaseAttack.ToString()}, {BaseDefense.ToString()}, {BaseSpecialAttack.ToString()}, {BaseSpecialDefense.ToString()}, {BaseSpeed.ToString()}, {Luminance.ToString()}f, Color.{LightColor.ToLower()}," + "new int[] {" + $"{MoveLevels(LevelMoves)}" + "},\n" + "new string[]\n" + "{\n" + $"{MoveNames(LevelMoves)}\n" + "},\n" + "new string[] { " + HMandTM(hmAndTM) + " },\n" + "new int[] {" + EvolutionID + "}, new string[] {" + $"\"Level,{EvolutionLevel}\"" + "}),\n"); }
private void SetColor(LightColor color) { var controlBytes = new byte[8]; controlBytes[0] = 0x65; controlBytes[1] = 0x0C; controlBytes[2] = (byte)color; // This is the LED byte controlBytes[3] = 0xFF; _controller.HidSetFeature(controlBytes); }
private void TurnOffLight(LightColor which) { switch (which) { case LightColor.GREEN: if (greenLightTransform != null) { greenLightRenderer.material.SetColor(emissionId, Color.black); greenLight.enabled = false; } break; case LightColor.RED: if (redLightTransform != null) { redLightRenderer.material.SetColor(emissionId, Color.black); redLight.enabled = false; } break; } }
public void Light(LightColor color) { StartCommand(color.ToString()); }
private void ReadMaterialDefinitionFile() { //string line = ""; //while ((line = br.ReadLine()) != null) //{ // string[] parts = line.Split(new char[] { ' ', ',', '[', ']', '=' }); // string[] split = new string[parts.Length]; // int j = 0; // for (int i = 0; i < parts.Length; ++i) // { // if (parts[i] != "") // split[j++] = parts[i]; // } // switch (split[0][0]) // { // case 'c': // LightColor lc = new LightColor(double.Parse(split[3]),double.Parse(split[4]),double.Parse(split[5])); // idList.Add(split[1]); // typeList.Add("Color"); // mateList.Add(lc.GetColor()); // break; // default: // break; // } //} //return; int n = 0; while (true) { int c = ReadSkipSpace(); switch (c) { case -1: return; case '#': ReadLine(); break; case 'M': case 'm': n++; String id = ReadAWord(); if (id.Equals("")) { System.Console.Out.WriteLine(n + "番目の定義にIDが設定されていません"); return; } if (idList.IndexOf(id) != -1) { System.Console.Out.WriteLine(n + "番目に定義されているIDが重複しています ID=" + id); return; } String order = "DIFFUSE"; String subCommand = ReadToKugiri("=").Trim().ToUpper(); if (!subCommand.Equals(order)) { System.Console.Out.WriteLine(n + "番目の定義に" + order + "パラメータが設定されていません"); return; } LightColor lcd = ReadRGB(); if (lcd == null) { System.Console.Out.WriteLine(n + "番目の定義の" + order + "パラメータの設定が不正です"); return; } order = "SPECULAR"; subCommand = ReadToKugiri("=").Trim().ToUpper(); if (!subCommand.Equals(order)) { System.Console.Out.WriteLine(n + "番目の定義に" + order + "パラメータが設定されていません"); return; } LightColor lcs = ReadRGB(); if (lcs == null) { System.Console.Out.WriteLine(n + "番目の定義の" + order + "パラメータの設定が不正です"); return; } double specularSharpness = ReadDouble(); order = "RADIATION"; subCommand = ReadToKugiri("=").Trim().ToUpper(); if (!subCommand.Equals(order)) { System.Console.Out.WriteLine(n + "番目の定義に" + order + "パラメータが設定されていません"); return; } LightColor lcr = ReadRGB(); if (lcr == null) { System.Console.Out.WriteLine(n + "番目の定義の" + order + "パラメータの設定が不正です"); return; } idList.Add(id); typeList.Add("Material"); mateList.Add(new Material(lcd, lcs, specularSharpness, lcr)); break; case 'C': case 'c': n++; id = ReadAWord(); if (id.Equals("")) { System.Console.Out.WriteLine(n + "番目の定義にIDが設定されていません"); return; } if (idList.IndexOf(id) != -1) { System.Console.Out.WriteLine(n + "番目に定義されているIDが重複しています ID=" + id); return; } order = "COLOR"; subCommand = ReadToKugiri("=").Trim().ToUpper(); if (!subCommand.Equals(order)) { System.Console.Out.WriteLine(n + "番目の定義に" + order + "パラメータが設定されていません"); return; } LightColor lc = ReadRGB(); if (lc == null) { System.Console.Out.WriteLine(n + "番目の定義の" + order + "パラメータの設定が不正です"); return; } idList.Add(id); typeList.Add("Color"); mateList.Add(lc.GetColor()); break; default: System.Console.Out.WriteLine("不正なコマンド[" + (char)c + "]が現れました"); return; } } }
public void SetSolid(LightColor color) { LightControlRequest request = new LightControlRequest() { Color = color, Flash = false }; lock (this.outstandingRequestLock) { outstandingRequest = request; outstandingRequestExist.Set(); TraceVerbose.Trace("SetSolid({0}): request queued.", color); } }
public void Light(LightColor color1, LightColor color2) { StartCommand(string.Format("{0} {1}", color1, color2)); }
public void Add(LightColor color) { _colors.Add(color); _colorIndex = 0; }
void handleLights() { bool somethingEnabled = false; foreach (ComputerModule module in core.modules) { if (module.enabled) somethingEnabled = true; } if (MapView.MapIsEnabled) litLight = LightColor.NEITHER; else litLight = (somethingEnabled ? LightColor.GREEN : LightColor.RED); switch (litLight) { case LightColor.GREEN: if (!greenLight.enabled) turnOnLight(LightColor.GREEN); if (redLight.enabled) turnOffLight(LightColor.RED); break; case LightColor.RED: if (greenLight.enabled) turnOffLight(LightColor.GREEN); if (!redLight.enabled) turnOnLight(LightColor.RED); break; case LightColor.NEITHER: if (greenLight.enabled) turnOffLight(LightColor.GREEN); if (redLight.enabled) turnOffLight(LightColor.RED); break; } }
Vector3 ToRgb(LightColor colorType, ref LightDataEntry e) { var ret = new Vector3(); switch(colorType) { case LightColor.Ambient: ToRgb(e.globalAmbient, ref ret); break; case LightColor.Diffuse: ToRgb(e.globalDiffuse, ref ret); break; case LightColor.Top: ToRgb(e.skyColor0, ref ret); break; case LightColor.Middle: ToRgb(e.skyColor1, ref ret); break; case LightColor.MiddleLower: ToRgb(e.skyColor2, ref ret); break; case LightColor.Lower: ToRgb(e.skyColor3, ref ret); break; case LightColor.Horizon: ToRgb(e.skyColor4, ref ret); break; case LightColor.Fog: ToRgb(e.fogColor, ref ret); break; case LightColor.Sun: ToRgb(e.sunColor, ref ret); break; case LightColor.Halo: ToRgb(e.haloColor, ref ret); break; case LightColor.Cloud: ToRgb(e.cloudColor, ref ret); break; default: throw new ArgumentException("Invalid light type"); } return ret; }
public TrafficLight(LightColor color) { this.color = color; }
/// <summary> /// Helper to convert our 'public-facing' color enum to the Delcom light. /// Delcom light has two versions, one supports yellow nad the other suports blue. /// Although Delcom document is vague, distributed DelcomDLL.h has only a single entry BLUELED = 2. /// We observe that each device picks either blue or yellow for this value. /// </summary> /// <param name="inputColor"></param> /// <returns></returns> private DelcomLightColor ConvertColor(LightColor inputColor) { DelcomLightColor result; switch (inputColor) { case LightColor.Red: result = DelcomLightColor.Red; break; case LightColor.Green: result = DelcomLightColor.Green; break; case LightColor.Yellow: result = DelcomLightColor.Blue; break; default: throw new ArgumentException("Unexpected inputColor"); } return result; }
private void OnSequenceChange(LightColor light, SoundType sound) { if (SequenceChange != null) SequenceChange(this, new SequenceChangeEventArgs() { Light = light, Sound = sound }); }
public void ChangeColor() { this.color = this.GetNext(this.color); }
public bool GetColorForTime(int time, LightColor colorType, ref Vector3 color) { if (mDataEntries.Count == 0) return false; if (mEntryArray.Length != mDataEntries.Count) mEntryArray = mDataEntries.ToArray(); if (mEntryArray.Length == 1) { color = ToRgb(colorType, ref mEntryArray[0]); return true; } var maxTime = mEntryArray[mEntryArray.Length - 1].timeValues; if (maxTime == 0 || mEntryArray[0].timeValues > time) { color = ToRgb(colorType, ref mEntryArray[0]); return true; } time %= 2880; var eIndex1 = -1; var eIndex2 = -1; var hasLight = false; var t1 = 1u; var t2 = 1u; for (var i = 0; i < mEntryArray.Length; ++i) { if (i + 1 >= mEntryArray.Length) { eIndex1 = i; eIndex2 = 0; hasLight = true; t1 = mEntryArray[eIndex1].timeValues; t2 = mEntryArray[eIndex2].timeValues + 2880; break; } if (mEntryArray[i].timeValues > time || mEntryArray[i + 1].timeValues <= time) continue; eIndex1 = i; eIndex2 = i + 1; hasLight = true; t1 = mEntryArray[eIndex1].timeValues; t2 = mEntryArray[eIndex2].timeValues; break; } if (hasLight == false) return false; if (t1 >= t2) { color = ToRgb(colorType, ref mEntryArray[eIndex1]); return true; } var diff = t2 - t1; var sat = (time - t1) / (float)diff; var v1 = ToRgb(colorType, ref mEntryArray[eIndex1]); var v2 = ToRgb(colorType, ref mEntryArray[eIndex2]); color = v2 * sat + v1 * (1 - sat); return true; }
void TurnOnLight(LightColor which) { switch (which) { case LightColor.GREEN: if (greenLightTransform != null) { greenLightTransform.renderer.material.shader = lightShader; greenLightTransform.renderer.material.color = Color.green; greenLight.enabled = true; } break; case LightColor.RED: if (redLightTransform != null) { redLightTransform.renderer.material.shader = lightShader; redLightTransform.renderer.material.color = Color.red; redLight.enabled = true; } break; } }
void TurnOnLight(LightColor which) { switch (which) { case LightColor.GREEN: if (greenLightTransform != null) { greenLightTransform.renderer.material.shader = Shader.Find("Self-Illumin/Specular"); greenLightTransform.renderer.material.color = Color.green; greenLight.enabled = true; } break; case LightColor.RED: if (redLightTransform != null) { redLightTransform.renderer.material.shader = Shader.Find("Self-Illumin/Specular"); redLightTransform.renderer.material.color = Color.red; redLight.enabled = true; } break; } }
/// <summary> /// 设置灯颜色,写入灯表 /// </summary> /// <param name="lightId"></param> /// <param name="color"></param> public static void SetLightColor(int lightId, LightColor color) { }
public Vector3 GetColorForTime(LightColor table, uint time) { var idx = (int)table; time %= 2880; if (idx < 0 || idx >= 18) return Vector3.Zero; var timeValues = mTimeTables[idx]; var colorValues = mColorTables[idx]; if (timeValues.Count == 0) return Vector3.Zero; if (timeValues[0] > time) time = timeValues[0]; if (timeValues.Count == 1) return colorValues[0]; var v1 = Vector3.Zero; var v2 = Vector3.Zero; uint t1 = 0; uint t2 = 0; for (var i = 0; i < timeValues.Count; ++i) { if (i + 1 >= timeValues.Count) { v1 = colorValues[i]; v2 = colorValues[0]; t1 = timeValues[i]; t2 = timeValues[0] + 2880; break; } var ts = timeValues[i]; var te = timeValues[i + 1]; if (ts <= time && te >= time) { t1 = ts; t2 = te; v1 = colorValues[i]; v2 = colorValues[i + 1]; break; } } var diff = t2 - t1; if (diff == 0) return v1; var sat = (time - t1) / (float)diff; return (1 - sat) * v1 + sat * v2; }
public void SetFlash(LightColor color) { }