public static SpriteRenderer SearchSprites(GameObject parent, string name, string spriteName) { List <Transform> output = new List <Transform>(); SearchChildren(parent.transform, name, output); foreach (Transform t in output) { SpriteRenderer r = t.gameObject.GetComponent <SpriteRenderer>(); if (r == null) { continue; } if (r.sprite == null) { continue; } if (r.sprite.name == spriteName) { return(r); } } LILogger.LogWarn("Could not find " + spriteName + " (" + name + ")"); return(null); }
public bool PreBuild(MapAsset asset) { if (asset.type != "util-room") { return(true); } // Check Collider Count if (asset.colliders.Length <= 0) { LILogger.LogWarn(asset.name + " does not have any colliders!"); return(false); } // Object GameObject obj = new GameObject(asset.name); // Collider PolygonCollider2D mainCollider = null; foreach (MapCollider collider in asset.colliders) { PolygonCollider2D polyCollider = obj.AddComponent <PolygonCollider2D>(); polyCollider.isTrigger = true; polyCollider.SetPath(0, collider.GetPoints()); mainCollider = polyCollider; } // Room PlainShipRoom room = obj.AddComponent <PlainShipRoom>(); room.RoomId = (SystemTypes)roomId; if (asset.colliders.Length > 0) { room.roomArea = mainCollider; } // Room DB if (!db.ContainsKey(asset.id)) { db.Add(asset.id, (SystemTypes)roomId); } // Text DB TextHandler.Add((SystemTypes)roomId, asset.name); // Polus polus.shipStatus.AllRooms = AssetHelper.AddToArr(polus.shipStatus.AllRooms, room); polus.shipStatus.FastRooms.Add((SystemTypes)roomId, room); MinimapGenerator.AddRoom(asset); polus.Add(obj, asset); roomId++; return(true); }
public static T SearchList <T>(UnhollowerBaseLib.Il2CppReferenceArray <T> list, string name) where T : MonoBehaviour { IEnumerable <T> elem = list.Where(t => t.name == name); if (elem.Count() > 0) { return(elem.First()); } LILogger.LogWarn("Could not find " + name); return(null); }
public static T SearchComponent <T>(GameObject parent, string name) { GameObject obj = SearchChildren(parent, name); if (obj != null) { return(obj.GetComponent <T>()); } LILogger.LogWarn("Could not find " + name); return(default(T)); }
public static GameObject SearchChildren(GameObject parent, string name) { List <Transform> output = new List <Transform>(); SearchChildren(parent.transform, name, output); if (output.Count() > 0) { return(output[0].gameObject); } LILogger.LogWarn("Could not find " + name); return(null); }
public static void Postfix([HarmonyArgument(0)] byte callId, [HarmonyArgument(1)] MessageReader reader) { if (callId != 42) { return; } string checksum = reader.ReadString(); if (checksum != MapHandler.checksum) { LILogger.LogWarn("Received map checksum does not match! (" + checksum + " => " + MapHandler.checksum + ")"); AmongUsClient client = AmongUsClient.Instance; client.LastDisconnectReason = DisconnectReasons.Custom; client.LastCustomDisconnect = "Host is using a different map than client"; client.HandleDisconnect(client.LastDisconnectReason, client.LastCustomDisconnect); } }