public override bool Equals(object obj) { if (obj.GetType() == typeof(MuscleConnectionFile)) { MuscleConnectionFile file = (MuscleConnectionFile)obj; if (!file.GetEnd().table.Equals(muscleTable)) { return(false); } if (!file.GetEnd().type.Equals(type)) { return(false); } if (!file.GetStart()[0].Equals(startTable)) { return(false); } if (!file.GetStart()[1].Equals(startSeat)) { return(false); } return(true); } else { return(false); } }
//Helper method to spawn muscle connections based on given connection file private static void SpawnConnection(MuscleConnectionFile file) { //Find start and end gameObjects GameObject start = null, end = null; foreach (NeuronDesignation nd in loadedPlayers) { //Find start if (nd.isGivenNeuron(file.GetStart()[0], file.GetStart()[1])) { start = nd.GetObject(); } } foreach (Muscle m in muscles) { //Find end MuscleType type; if (m is SwingMuscle) { //What type? SwingMuscle swing = m as SwingMuscle; switch (swing.moveDirection) { case SwingMuscle.SwingFunction.Backward: { type = MuscleType.Backward; break; } case SwingMuscle.SwingFunction.Forward: { type = MuscleType.Forward; break; } default: { //So we have something type = MuscleType.Forward; break; } } } else { //Stance muscle type = MuscleType.Stance; } if (m.table.Equals(file.GetEnd().table) && type.Equals(file.GetEnd().type)) { end = m.gameObject; } } if (start && end) { GameObject player = NetworkManager.singleton.client.connection.playerControllers[0].gameObject; player.GetComponent <ConnectionManager>().MuscleConnection(start, end); } }