//private int RegisterStateType(string stateName, StatePeeker peeker, StatePriorityCalculator priority, StateSerializer serializer, StateDeserializer deserializer) { // if(StateCodes.Contains(stateName)) { // Debug.LogException(new Exception("Can not register state type [" + stateName + "] because a state already exists with that name")); // } // StateCodes.Add(stateName); // StateSerializers.Add(serializer); // StateDeserializers.Add(deserializer); // StatePeekers.Add(peeker); // StatePriorityCalculators.Add(priority); // int stateId = StateCodes.Count - 1; // return stateId; //} //public int GetStateCode(string stateName) { // if(StateCodes.Contains(stateName)) { // return StateCodes.IndexOf(stateName); // } // throw new Exception("State with name [" + stateName + "] does not exist"); //} public int RegisterMessageType(string messageName, MessagePeeker peeker, MessagePriorityCalculator priority, MessageSerializer serializer, MessageDeserializer deserializer, MessageProcessor processor) { if (MessageCodes.Contains(messageName)) { Debug.LogException(new Exception("Can not register message type [" + messageName + "] because a message already exists with that name")); } MessageCodes.Add(messageName); MessageSerializers.Add(serializer); MessageDeserializers.Add(deserializer); MessageProcessors.Add(processor); MessagePeekers.Add(peeker); MessagePriorityCalculators.Add(priority); int msgId = MessageCodes.Count - 1; return(msgId); }
//private int RegisterStateType(string stateName, StatePeeker peeker, StatePriorityCalculator priority, StateSerializer serializer, StateDeserializer deserializer) { // if(StateCodes.Contains(stateName)) { // Debug.LogException(new Exception("Can not register state type [" + stateName + "] because a state already exists with that name")); // } // StateCodes.Add(stateName); // StateSerializers.Add(serializer); // StateDeserializers.Add(deserializer); // StatePeekers.Add(peeker); // StatePriorityCalculators.Add(priority); // int stateId = StateCodes.Count - 1; // return stateId; //} //public int GetStateCode(string stateName) { // if(StateCodes.Contains(stateName)) { // return StateCodes.IndexOf(stateName); // } // throw new Exception("State with name [" + stateName + "] does not exist"); //} public int RegisterMessageType(string messageName, MessagePeeker peeker, MessagePriorityCalculator priority, MessageSerializer serializer, MessageDeserializer deserializer, MessageProcessor processor) { if (MessageCodes.Contains(messageName)) { Debug.LogException(new Exception("Can not register message type [" + messageName + "] because a message already exists with that name")); } MessageCodes.Add(messageName); MessageSerializers.Add(serializer); MessageDeserializers.Add(deserializer); MessageProcessors.Add(processor); MessagePeekers.Add(peeker); MessagePriorityCalculators.Add(priority); int msgId = MessageCodes.Count - 1; if (msgId > maxMessageTypes) { Debug.LogException(new Exception("Message type [" + messageName + "] was registered outside the max range [" + maxMessageTypes + "]. Using this message will cause problems")); } return(msgId); }