public PlexiglassPacketRegistry(PacketDirectionality directionality, IPropertyBag propertyBag = null, IStateMachine gameInstance = null) { if (directionality == PacketDirectionality.BIDIRECTIONAL || directionality == PacketDirectionality.POLYDIRECTIONAL) { Console.WriteLine("[PLXI] [WARNING] A PacketRegistry with " + Enum.GetName(typeof(PacketDirectionality), directionality) + " isn't reccomended! This is a direction circumvention of the purpose of directionality."); } Directionality = directionality; packetRegistrations = new Dictionary <Type, Type>(); this.propertyBag = propertyBag; this.gameInstance = gameInstance; }
public static bool FuzzyEquals(PacketDirectionality lhs, PacketDirectionality rhs) { switch (lhs) { case PacketDirectionality.BIDIRECTIONAL: return(rhs == PacketDirectionality.SERVER_TO_CLIENT || rhs == PacketDirectionality.CLIENT_TO_SERVER); case PacketDirectionality.POLYDIRECTIONAL: return(true); case PacketDirectionality.SERVER_TO_CLIENT: case PacketDirectionality.CLIENT_TO_SERVER: return(lhs == rhs || rhs == PacketDirectionality.BIDIRECTIONAL || rhs == PacketDirectionality.POLYDIRECTIONAL); case PacketDirectionality.CLIENT_TO_CLIENT: return(lhs == rhs || rhs == PacketDirectionality.POLYDIRECTIONAL); case PacketDirectionality.ANTIDIRECTIONAL: return(false); default: return(false); } }