private void UpdateStatus() { // Not called UpdateAppearance just because it messes with the load var status = GetStatus(); if (_status == status || !Owner.TryGetComponent(out PowerReceiverComponent? receiver)) { return; } _status = status; Owner.TryGetComponent(out AppearanceComponent? appearance); switch (_status) { // Update load just in case case CellChargerStatus.Off: receiver.Load = 0; appearance?.SetData(CellVisual.Light, CellChargerStatus.Off); break; case CellChargerStatus.Empty: receiver.Load = 0; appearance?.SetData(CellVisual.Light, CellChargerStatus.Empty); break; case CellChargerStatus.Charging: receiver.Load = (int)(_chargeRate / _transferEfficiency); appearance?.SetData(CellVisual.Light, CellChargerStatus.Charging); break; case CellChargerStatus.Charged: receiver.Load = 0; appearance?.SetData(CellVisual.Light, CellChargerStatus.Charged); break; default: throw new ArgumentOutOfRangeException(); } appearance?.SetData(CellVisual.Occupied, _container.ContainedEntity != null); }
protected void UpdateStatus() { // Not called UpdateAppearance just because it messes with the load var status = GetStatus(); if (_status == status) { return; } _status = status; switch (_status) { // Update load just in case case CellChargerStatus.Off: _powerDevice.Load = 0; _appearanceComponent?.SetData(CellVisual.Light, CellChargerStatus.Off); break; case CellChargerStatus.Empty: _powerDevice.Load = 0; _appearanceComponent?.SetData(CellVisual.Light, CellChargerStatus.Empty);; break; case CellChargerStatus.Charging: _appearanceComponent?.SetData(CellVisual.Light, CellChargerStatus.Charging); break; case CellChargerStatus.Charged: _powerDevice.Load = 0; _appearanceComponent?.SetData(CellVisual.Light, CellChargerStatus.Charged); break; default: throw new ArgumentOutOfRangeException(); } _appearanceComponent?.SetData(CellVisual.Occupied, _container.ContainedEntity != null); _status = status; }