// [Docking]
        // Tags = ABCDE
        void ParseConfigs()
        {
            MyIni Parser = new MyIni();

            if (!Parser.TryParse(Context.Reference.CustomData))
            {
                return;
            }

            string tagString = Parser.Get("Docking", "Tags").ToString();

            if (tagString.Contains("A"))
            {
                HangarTags |= HangarTags.A;
            }
            if (tagString.Contains("B"))
            {
                HangarTags |= HangarTags.B;
            }
            if (tagString.Contains("C"))
            {
                HangarTags |= HangarTags.C;
            }
            if (tagString.Contains("D"))
            {
                HangarTags |= HangarTags.D;
            }
            if (tagString.Contains("E"))
            {
                HangarTags |= HangarTags.E;
            }
            if (tagString.Contains("F"))
            {
                HangarTags |= HangarTags.F;
            }
            if (tagString.Contains("G"))
            {
                HangarTags |= HangarTags.G;
            }
            if (tagString.Contains("H"))
            {
                HangarTags |= HangarTags.H;
            }
            if (tagString.Contains("I"))
            {
                HangarTags |= HangarTags.I;
            }
            if (tagString.Contains("J"))
            {
                HangarTags |= HangarTags.J;
            }
        }
 public void IGCUnpackInto(MyTuple <MyTuple <MatrixD, float, float, Vector3D, double, Vector3D>, MyTuple <long, int, int, string>, MyTuple <long, string> > unpacked)
 {
     WorldMatrix          = unpacked.Item1.Item1;
     UndockFar            = unpacked.Item1.Item2;
     UndockNear           = unpacked.Item1.Item3;
     CurrentVelocity      = unpacked.Item1.Item4;
     CurrentCanonicalTime = TimeSpan.FromMilliseconds(unpacked.Item1.Item5);
     IndicatorDir         = unpacked.Item1.Item6;
     OwnerID          = unpacked.Item2.Item1;
     Status           = (HangarStatus)unpacked.Item2.Item2;
     Tags             = (HangarTags)unpacked.Item2.Item3;
     HangarChannelTag = unpacked.Item2.Item4;
     ID          = unpacked.Item3.Item1;
     DisplayName = unpacked.Item3.Item2;
 }
        public void IGCUnpackInto(MyTuple <MyTuple <Vector3D, Vector3D, double>, MyTuple <string, long, float, int>, MyTuple <int, string, int, int, Vector3I>, MyTuple <long, int> > unpacked)
        {
            CurrentPosition      = unpacked.Item1.Item1;
            CurrentVelocity      = unpacked.Item1.Item2;
            CurrentCanonicalTime = TimeSpan.FromMilliseconds(unpacked.Item1.Item3);

            DisplayName = unpacked.Item2.Item1;
            ID          = unpacked.Item2.Item2;
            Radius      = unpacked.Item2.Item3;
            Rank        = unpacked.Item2.Item4;

            AcceptedTaskTypes = (TaskType)unpacked.Item3.Item1;
            CommandChannelTag = unpacked.Item3.Item2;
            AgentClass        = (AgentClass)unpacked.Item3.Item3;
            AgentStatus       = (AgentStatus)unpacked.Item3.Item4;
            HydroPowerInv     = unpacked.Item3.Item5;

            HomeID     = unpacked.Item4.Item1;
            HangarTags = (HangarTags)unpacked.Item4.Item2;
        }
        void ParseConfigs()
        {
            MutexHangars.Clear();

            if (!Host.IniParser.TryParse(Connector.CustomData))
            {
                return;
            }

            string mutexes = Host.IniParser.Get("Hangar", "Mutex").ToString();

            if (mutexes != string.Empty)
            {
                var split = mutexes.Split(',');
                foreach (var i in split)
                {
                    int index;
                    if (int.TryParse(i, out index))
                    {
                        MutexHangars.Add(index);
                    }
                }
            }

            float dist = Host.IniParser.Get("Hangar", "ClearanceDist").ToInt16();

            if (dist != 0)
            {
                ClearanceDist = dist;
            }

            string tagString = Host.IniParser.Get("Hangar", "Tags").ToString();

            if (tagString.Contains("A"))
            {
                HangarTags |= HangarTags.A;
            }
            if (tagString.Contains("B"))
            {
                HangarTags |= HangarTags.B;
            }
            if (tagString.Contains("C"))
            {
                HangarTags |= HangarTags.C;
            }
            if (tagString.Contains("D"))
            {
                HangarTags |= HangarTags.D;
            }
            if (tagString.Contains("E"))
            {
                HangarTags |= HangarTags.E;
            }
            if (tagString.Contains("F"))
            {
                HangarTags |= HangarTags.F;
            }
            if (tagString.Contains("G"))
            {
                HangarTags |= HangarTags.G;
            }
            if (tagString.Contains("H"))
            {
                HangarTags |= HangarTags.H;
            }
            if (tagString.Contains("I"))
            {
                HangarTags |= HangarTags.I;
            }
            if (tagString.Contains("J"))
            {
                HangarTags |= HangarTags.J;
            }
        }
 static public bool TagsMatch(HangarTags x, HangarTags y)
 {
     return(x == 0 || y == 0 || (x & y) != 0);
 }