internal void SendMessage(MessageBottle n) { switch (VarAttrs["block-type"]) { case "Antenna": MyTransmitTarget m; if (n.MetaData == null) { AppBase.Debug("wow"); } switch (n.MetaData.VarAttrs["method"]) { case "Public": m = MyTransmitTarget.Everyone; break; case "Private": m = MyTransmitTarget.Ally; break; case "Protected": m = MyTransmitTarget.Ally; break; default: m = MyTransmitTarget.Default; break; } AppBase.Debug("Sending: " + n.ToString()); ((IMyRadioAntenna)Block).TransmitMessage(n.ToString(), m); break; case "LaserAntenna": AppBase.Debug("Sending: " + n.ToString()); ((IMyLaserAntenna)Block).TransmitMessage(n.ToString()); break; } }
public override void Tick() { base.Tick(); var messageBottle = new MessageBottle(); XML.Read(Arg, messageBottle); AddChild(messageBottle.root); if (messageBottle.root != null) { messageBottle.root.Tick(); } }
/// <summary> /// Function for create a new child when is called by XML.Read /// </summary> /// <param name="typeName"></param> /// <param name="parent"></param> /// <returns></returns> public override Object Types(string typeName, Object parent) { switch (typeName) { case "message-bottle": var p = parent as MessageBottle; if (p != null) { if (p.IsRoot) { root = new MessageBottle(); root.IsRoot = false; return(root); } } break; case "meta": if (parent as MessageBottle != null) { if (((MessageBottle)parent).MetaData == null) { ((MessageBottle)parent).MetaData = new Meta(); return(((MessageBottle)parent).MetaData); } } break; case "body": { if (parent as MessageBottle != null) { if (((MessageBottle)parent).MBody == null) { ((MessageBottle)parent).MBody = new Body(); return(((MessageBottle)parent).MBody); } } break; } case "send": if (parent as MessageBottle != null && MetaData == null) { } break; } return(null); }
private void SendPortMessage(MessageBottle n) { ports.ForChilds((Object x, int i) => { var port = x as Port; if (port != null) { if (port.VarAttrs["name"] == n.MetaData.VarAttrs["port"]) { port.SendMessage(n); return(-1); } } return(0); }); }
private void SendNetworkMessage(MessageBottle n) { ports.Primary.SendMessage(n); }