public void ReceiveMessageFromQueueDiscreetly(GameObject sender) { MarkerFunctionality mrkrf = GetComponent <MarkerFunctionality>(); MessageQueueFunctionality mqf = messageQueueBox.GetComponent <MessageQueueFunctionality>(); GameObject consumedMessage = messageQueueBox.GetComponent <MessageQueueFunctionality>().DequeueFromMsgQueue(); //Consume message from queue //check queue status and do marking logic if (mrkrf.status == 1)//Message marked { mrkrf.Escalate(); } else if (mrkrf.status == -1) //Nothing marked thus far { if (mqf.messageQueue.Count > 0) { if (mqf.messageQueue.Peek().GetComponent <MessageFunctionality>().representationHolding.index != -1) { //marked mrkrf.MessageMark(mqf.messageQueue.Peek().GetComponent <MessageFunctionality>().representationHolding); } } } Debug.Log("Message " + consumedMessage.ToString() + " accepted by " + this.gameObject.ToString()); Destroy(consumedMessage); }
public void QueryState() { if (CheckLaserPointer()) { bool toggle = laserPointedActor.gameObject.GetComponent <ActorFunctionality>().ToggleState(); //Now, we also show the message queue box information GameObject mbox = laserPointedActor.gameObject.GetComponent <ActorFunctionality>().messageQueueBox; MessageQueueFunctionality mQueueFunc = mbox.GetComponent <MessageQueueFunctionality>(); mQueueFunc.ToggleMsgQueueInfo(); StateRequest sr = new StateRequest(laserPointedActor.name, toggle); NetworkInterface.HandleRequest(sr); } }