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);
        }
Beispiel #2
0
        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);
        }
Beispiel #6
0
        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);
            }
        }