示例#1
0
        public static Func <int> TurretFacingFromInit(IActorInitializer init, int def, string turret = null)
        {
            if (turret != null && init.Contains <DynamicTurretFacingsInit>())
            {
                Func <int> facing;
                if (init.Get <DynamicTurretFacingsInit, Dictionary <string, Func <int> > >().TryGetValue(turret, out facing))
                {
                    return(facing);
                }
            }

            if (turret != null && init.Contains <TurretFacingsInit>())
            {
                int facing;
                if (init.Get <TurretFacingsInit, Dictionary <string, int> >().TryGetValue(turret, out facing))
                {
                    return(() => facing);
                }
            }

            if (init.Contains <TurretFacingInit>())
            {
                var facing = init.Get <TurretFacingInit, int>();
                return(() => facing);
            }

            if (init.Contains <DynamicFacingInit>())
            {
                return(init.Get <DynamicFacingInit, Func <int> >());
            }

            if (init.Contains <FacingInit>())
            {
                var facing = init.Get <FacingInit, int>();
                return(() => facing);
            }

            return(() => def);
        }
示例#2
0
        public static int GetInitialTurretFacing(IActorInitializer init, int def, string turret = null)
        {
            if (turret != null && init.Contains <TurretFacingsInit>())
            {
                int facing;
                if (init.Get <TurretFacingsInit, Dictionary <string, int> >().TryGetValue(turret, out facing))
                {
                    return(facing);
                }
            }

            if (init.Contains <TurretFacingInit>())
            {
                return(init.Get <TurretFacingInit, int>());
            }

            if (init.Contains <FacingInit>())
            {
                return(init.Get <FacingInit, int>());
            }

            return(def);
        }