Пример #1
0
    private void updateAnimDropbox()
    {
        animationSetDropdown.ClearOptions();
        List <DOption> options = new List <DOption>();

        options.Add(new DOption("unarmed", null));
        HashSet <string> done = new HashSet <string>();

        foreach (entry e in db.getEntriesForID(230))
        {
            CObject _250 = db.toObj(e.id, e.key);
            if (_250.hasMember(7))
            {
                string animation = _250.getStringMember(7);
                if (!done.Contains(animation) && !animation.Contains("crossbow") && !animation.Contains("shared"))
                {
                    DOption option = new DOption(animation, e);
                    options.Add(option);
                    done.Add(animation);
                }
            }
        }

        options.Sort((a, b) => string.Compare(a.text, b.text));
        animationSetDropdown.AddOptions(options.Cast <Dropdown.OptionData>().ToList());
    }
Пример #2
0
        public static List <WorldSpawn> getSpawns(AssetDatabase adb, DB db, string world)
        {
            List <WorldSpawn>   worlds = new List <WorldSpawn>();
            IEnumerable <entry> keys   = db.getEntriesForID(4479);

            foreach (entry e in keys)
            {
                byte[] data = e.decompressedData;
                using (MemoryStream ms = new MemoryStream(data))
                {
                    CObject obj               = Parser.processStreamObject(ms);
                    string  worldName         = obj.getStringMember(0);
                    string  imagePath         = obj.getStringMember(5);
                    string  internalSpawnName = obj.getStringMember(1);
                    string  spawnName         = getLocalized(obj.getMember(10), internalSpawnName);
                    if (world != null)
                    {
                        if (!worldName.Equals(world))
                        {
                            continue;
                        }
                    }
                    try
                    {
                        Vector3 pos   = obj.getVector3Member(2);
                        float   angle = angle = obj.getFloatMember(3, 0);
                        pos.y += 2;

                        if (adb.filenameExists(worldName + "_map.cdr"))
                        {
                            WorldSpawn ws = new WorldSpawn(worldName, spawnName, pos, angle);
                            ws.imagePath = imagePath;
                            worlds.Add(ws);
                        }
                    }
                    catch (Exception ex)
                    {
                        Debug.Log("Unable to get position for spawn [" + e.id + "][" + e.key + "]" + ex);
                    }
                }
            }
            return(worlds);
        }