public override void OnInspectorGUI() { base.OnInspectorGUI(); EditorGUILayout.Space(); if (targets.Length == 1) { ElectricLight obj = target as ElectricLight; EditorGUILayout.HelpBox($"Voltage:\t{obj.Voltage} V{Environment.NewLine}Current:\t{obj.Current.Magnitude} A{Environment.NewLine}Phase:\t{obj.Current.Phase * (Math.PI / 180.0)}", MessageType.Info); } if (GUILayout.Button("Turn On")) { foreach (var obj in targets) { (obj as ElectricLight).TurnOn(); } } else if (GUILayout.Button("Turn Off")) { foreach (var obj in targets) { (obj as ElectricLight).TurnOff(); } } }
public void CheckForInit() { if (_isInit) { return; } for (int i = 0; i < _plants.Count; i++) { ElectricLight light = ElectricLightManager.instance.FindElectricLight(_plants[i].transform.position); if (light == null) { Debug.Log("Error for plant " + _plants[i] + " index " + i); } else { _plants[i].SetLight(light); } } _isInit = true; }
public ElectricLight FindElectricLight(Vector2 wpos) { float bestDist = float.MaxValue; ElectricLight best = null; for (int i = 0; i < _lights.Count; i++) { Rect rect = _lights[i].GetCollider(); if (rect.Contains(wpos)) { float dist = Vector2.Distance(rect.center, wpos); if (dist < bestDist) { best = _lights[i]; bestDist = dist; } } } return(best); }
public void Register(ElectricLight light) { _lights.Add(light); }
public void Unregister(ElectricLight light) { _lights.Remove(light); }
public void SetLight(ElectricLight light) { _light = light; }