public override void SpawnSetup(Map map, bool respawningAfterLoad) { base.SpawnSetup(map, respawningAfterLoad); Power = GetComp <CompPowerTrader>(); Wireless = GetComp <CompWirelessPower>(); }
public void Register(CompWirelessPower pylon) { if (pylon == null) { return; } if (pylon.Type == WirelessType.None) { return; } if (pylon.Type == WirelessType.Receiver) { if (_transmitters.Contains(pylon)) { _transmitters.Remove(pylon); } if (!_receivers.Contains(pylon)) { _receivers.Add(pylon); } } else { if (_receivers.Contains(pylon)) { _receivers.Remove(pylon); } if (!_transmitters.Contains(pylon)) { _transmitters.Add(pylon); } } }
public CopyPasteData(CompWirelessPower comp) { ChannelId = comp?.Channel?.Id ?? -1; TargetPower = comp?.TargetWatts ?? 0; Type = comp?.Type ?? WirelessType.None; channel = ChannelId == -1 ? null : comp?.Manager?.TryGetChannel(ChannelId); }
public ConfigWindow(CompWirelessPower comp) { Comp = comp; optionalTitle = "RF.Pylon.ConfigureTitle".Translate(Comp.Props.buildingName); drawShadow = true; draggable = true; preventCameraMotion = false; resizeable = false; doCloseButton = false; doCloseX = true; closeOnClickedOutside = true; }
public void UnRegister(CompWirelessPower pylon) { if (pylon == null) { return; } if (_receivers.Contains(pylon)) { _receivers.Remove(pylon); } if (_transmitters.Contains(pylon)) { _transmitters.Remove(pylon); } }
public IEnumerable <PowerChannel> GetAvailableChannels(CompWirelessPower pylon) { if (pylon == null) { yield break; } var current = pylon.Channel; foreach (var pair in channels) { if (pair.Value != current) { yield return(pair.Value); } } }
public bool TryApply(CompWirelessPower comp) { if (ChannelId == -1) { Core.Error("Tried to apply using an invalid CopyPasteData"); return(false); } if (comp == null) { Core.Error("Tried to apply CopyPasteData to a null wireless component."); return(false); } if (channel == null || channel.Destroyed) { Core.Error("Tried to apply CopyPasteData that has a null or invalid channel. Check data.IsValid() first."); return(false); } if (!comp.Props.canSendPower && Type == WirelessType.Transmitter) { Core.Warn($"Did not paste wireless settings on to {comp.parent?.LabelCap}, because it is not allowed to send power."); return(false); } if (comp.Props.fixedPowerLevel != null) { Core.Warn($"Pasting wireless settings, even though this {comp.parent?.LabelCap} has a fixed power level."); } // Already has these settings? if (comp.Type == Type && (comp.Channel?.Id ?? -1) == ChannelId && comp.TargetWatts == TargetPower) { return(true); } comp.SwitchToChannel(channel); comp.SwitchType(Type); if (comp.Props.fixedPowerLevel == null) { comp.TargetWatts = TargetPower; } return(true); }