示例#1
0
    public override void _EnterTree()
    {
        if (data.Get <bool>())
        {
            return;
        }
        data.Get <bool>() = true;

        instance = this;
        Input.SetMouseMode(Input.MouseMode.Captured);
        statemachine.Change <Player_States.Move>();

        data.Set(this as RigidBody2D)
        .Set(this.FindChild <AnimationPlayer>())
        .Set(this.FindChild <Crosshair>())
        .Set(this.FindChild <GunBarrel>())
        .Set(this.FindChild <Arm>())
        .Set(new input())
        .Set <movespeed>(200)
        .Set <oxygen>(Hardcore ? 1 : 6)
        .Set(this.FindChild <AudioStreamPlayer>())
        ;

        data.Get <Crosshair>().Position = new Vector2(128, 0);
    }
示例#2
0
        public void ReplacingWithDefaultScaleTest()
        {
            var map = new TypeMap();

            map.Put(DbType.Xml, 20, "foo($l, $s)", 5);
            Assert.AreEqual("foo(12, 7)", map.Get(DbType.Xml, 12, 7));
            Assert.AreEqual("foo(12, 5)", map.Get(DbType.Xml, 12));
        }
示例#3
0
        public void PutAndGetDecimalByColumnTypeTest()
        {
            var map = new TypeMap();

            map.Put(DbType.Decimal, "NUMBER");
            map.Put(DbType.Decimal, 18, "NUMBER($l, $s)");

            Assert.AreEqual("NUMBER(11, 2)", map.Get(DbType.Decimal.WithSize(11, 2)));
            Assert.AreEqual("NUMBER(8, $s)", map.Get(DbType.Decimal.WithSize(8)));             // will cause trouble
        }
示例#4
0
        public void PutAndGetDecimalTest()
        {
            var map = new TypeMap();

            map.Put(DbType.Decimal, "NUMBER");
            map.Put(DbType.Decimal, 18, "NUMBER($l, $s)");

            Assert.AreEqual("NUMBER", map.Get(DbType.Decimal));
            Assert.AreEqual("NUMBER(10, 5)", map.Get(DbType.Decimal, 10, 5));
            Assert.AreEqual("NUMBER(7, $s)", map.Get(DbType.Decimal, 7));             // will cause trouble
        }
示例#5
0
        public void PutAndGetByColumnTypeTest2()
        {
            var map = new TypeMap();

            map.Put(DbType.AnsiString, "VARCHAR($l)");

            Assert.AreEqual("VARCHAR($l)", map.Get(new ColumnType(DbType.AnsiString)));                                 // will cause trouble
            Assert.AreEqual("VARCHAR(100)", map.Get(DbType.AnsiString.WithSize(100)));
            Assert.AreEqual("VARCHAR(1000)", map.Get(DbType.AnsiString.WithSize(1000)));
            Assert.AreEqual("VARCHAR(10000)", map.Get(DbType.AnsiString.WithSize(10000)));
        }
示例#6
0
        public void PutAndGetTest2()
        {
            var map = new TypeMap();

            map.Put(DbType.AnsiString, "VARCHAR($l)");

            Assert.AreEqual("VARCHAR($l)", map.Get(DbType.AnsiString));                                 // will cause trouble
            Assert.AreEqual("VARCHAR(100)", map.Get(DbType.AnsiString, 100));
            Assert.AreEqual("VARCHAR(1000)", map.Get(DbType.AnsiString, 1000));
            Assert.AreEqual("VARCHAR(10000)", map.Get(DbType.AnsiString, 10000));
        }
示例#7
0
        public void PutAndGetByColumnTypeTest()
        {
            var map = new TypeMap();

            map.Put(DbType.AnsiString, "TEXT");
            map.Put(DbType.AnsiString, 255, "VARCHAR($l)");
            map.Put(DbType.AnsiString, 65534, "LONGVARCHAR($l)");

            Assert.AreEqual("TEXT", map.Get(new ColumnType(DbType.AnsiString)));                                // default
            Assert.AreEqual("VARCHAR(100)", map.Get(DbType.AnsiString.WithSize(100)));                          // 100 is in [0:255]
            Assert.AreEqual("LONGVARCHAR(1000)", map.Get(DbType.AnsiString.WithSize(1000)));                    // 100 is in [256:65534])
            Assert.AreEqual("TEXT", map.Get(DbType.AnsiString.WithSize(100000)));                               // default
        }
示例#8
0
        private void TestTypeRegistration(Type type, string typeId)
        {
            var typeMap = new TypeMap();
            var id      = Guid.Parse(typeId);

            var actualType = typeMap.Get(id);

            Assert.Equal(type.FullName, actualType.FullName);
        }
示例#9
0
        public static void Init(TypeMap types, Class2TypeMap class2type)
        {
            RuntimeExceptionSerializer.Init(
                types.Get(ETCH_RUNTIME_EXCEPTION_TYPE_NAME), class2type);

            ListSerializer.Init(
                types.Get(ETCH_LIST_TYPE_NAME), class2type);

            MapSerializer.Init(
                types.Get(ETCH_MAP_TYPE_NAME), class2type);

            /*    SetSerializer.Init(
             *      types.Get(ETCH_SET_TYPE_NAME), class2type); */

            DateSerializer.Init(
                types.Get(ETCH_DATETIME_TYPE_NAME), class2type);

            AuthExceptionSerializer.Init(
                types.Get(ETCH_AUTH_EXCEPTION_TYPE_NAME), class2type);

            XType t3 = types.Get(ETCH_EXCEPTION_MESSAGE_NAME);

            t3.PutValidator(_mf_result, Validator_RuntimeException.Get());
            t3.PutValidator(_mf__messageId, Validator_long.Get(0));
            t3.PutValidator(_mf__inReplyTo, Validator_long.Get(0));
        }
示例#10
0
        public XType GetType(int id)
        {
            XType type = types.Get(id);

            if (type != null)
            {
                return(type);
            }

            foreach (ValueFactory vf in mixins)
            {
                if ((type = vf.GetType(id)) != null)
                {
                    return(type);
                }
            }

            lock (dynamicTypes)
            {
                return(dynamicTypes.Get(id));
            }
        }
示例#11
0
        /// <summary>
        /// Constructs the DefaultValueFactory.
        /// </summary>
        /// <param name="uri"></param>
        /// <param name="types"></param>
        /// <param name="class2type"></param>
        public DefaultValueFactory(String uri, TypeMap types, Class2TypeMap class2type)
        {
            URL u = new URL(uri);

            String s = u.GetTerm("DefaultValueFactory.level", "FULL");

            level = (Validator.Level)Enum.Parse(typeof(Validator.Level), s);

            this.types      = types;
            this.class2type = class2type;

            _mt__Etch_RuntimeException = types.Get(ETCH_RUNTIME_EXCEPTION_TYPE_NAME);
            _mt__Etch_AuthException    = types.Get(ETCH_AUTH_EXCEPTION_TYPE_NAME);
            _mt__exception             = types.Get(ETCH_EXCEPTION_MESSAGE_NAME);
            _mt__Etch_List             = types.Get(ETCH_LIST_TYPE_NAME);
            _mt__Etch_Map      = types.Get(ETCH_MAP_TYPE_NAME);
            _mt__Etch_Set      = types.Get(ETCH_SET_TYPE_NAME);
            _mt__Etch_Datetime = types.Get(ETCH_DATETIME_TYPE_NAME);
        }
示例#12
0
        static void TypeMap()
        {
                var(super, sub) = (false, false);
            var map             = new TypeMap <IEnumerable, string>();

            map.Set <List <int> >("Poulah");
            map.Set <List <string> >("Viarge");
            map.Set <IList>("Jango");
            var value1 = map.Get(typeof(List <>), out var success1, super, sub);
            var value2 = map.Get(typeof(IList), out var success2, super, sub);
            var value3 = map.Get(typeof(List <>), out var success3, super, sub);
            var value4 = map.Get <IList>(out var success4, super, sub);
            var value5 = map.Get(typeof(List <string>), out var success5, super, sub);
            var value6 = map.Get(typeof(IList <string>), out var success6, super, sub);
            var value7 = map.Get <IList <string> >(out var success7, super, sub);

            map.Remove <List <int> >(super, sub);
            var value8 = map.Get(typeof(IList), out var success8, super, sub);
            var value9 = map.Get <IList>(out var success9, super, sub);
        }
示例#13
0
        public static void Benchmark()
        {
            var dictionary    = new Dictionary <Type, object>();
            var intDictionary = new Dictionary <int, object>();
            var concurrent    = new ConcurrentDictionary <Type, object>();
            var map           = new TypeMap <object, object>();
            var value         = default(object);

            void Add <T>(T current)
            {
                intDictionary[map.Index <T>()] = concurrent[typeof(T)] = dictionary[typeof(T)] = current;
                map[typeof(T)] = current;
            }

            void AddKey(Type key, object current)
            {
                map.TryIndex(key, out var index);
                intDictionary[index] = concurrent[key] = dictionary[key] = current;
                map[key]             = current;
            }

            map.TryGet <object>(out var value0);                             // Expected: null
            Add(byte.MaxValue);
            map.TryGet <IConvertible>(out var value1, false, true);          // Expected: byte
            Add(sbyte.MaxValue);
            map.TryGet <ValueType>(out var value2, true, true);              // Expected: byte
            Add(ushort.MaxValue);
            map.TryGet(typeof(IComparable <>), out var value3, false, true); // Expected: byte
            Add(short.MaxValue);
            map.TryGet(typeof(object), out var value4, false, false);        // Expected: null
            Add(uint.MaxValue);
            Add(int.MaxValue);
            Add(ulong.MaxValue);
            Add(long.MaxValue);
            Add(float.MaxValue);
            Add(double.MaxValue);
            Add(decimal.MaxValue);
            Add(new Unit());
            Add(new Cyclic());
            map.TryGet <Cyclic>(out var value5);          // Expected Cyclic
            Add(DateTime.MaxValue);
            map.TryGet(typeof(DateTime), out var value6); // Expected DateTime
            Add(TimeSpan.MaxValue);
            Add(dictionary);
            map.TryGet(typeof(IDictionary <,>), out var value7, true, false); // Expected null
            Add(intDictionary);
            map.TryGet(typeof(IDictionary <,>), out var value8, false, true); // Expected Dictionary<Type, object>
            Add(concurrent);
            map.TryGet(typeof(IDictionary <,>), out var value9, true, true);  // Expected Dictionary<Type, object>
            Add(map);
            map.TryGet(typeof(TypeMap <,>), out var value10, true, true);     // Expected TypeMap<object, object>
            map.TryGet(typeof(Dictionary), out var value11, true, false);     // Expected Dictionary<int, object>

            foreach (var type in ReflectionUtility.AllTypes.Take(1000))
            {
                AddKey(type, new object());
            }
            var index = map.Index <int>();

            map.Index <Action>();
            var array = map.Values.ToArray();

            void ArrayGet() => value = array[index];
            void TryGetI() => dictionary.TryGetValue(typeof(int), out value);
            void TryGetA() => dictionary.TryGetValue(typeof(Action), out value);
            void ITryGetI() => intDictionary.TryGetValue(map.Index <int>(), out value);
            void ITryGetA() => intDictionary.TryGetValue(map.Index <Action>(), out value);
            void ConcurrentGetI() => concurrent.TryGetValue(typeof(int), out value);
            void ConcurrentGetA() => concurrent.TryGetValue(typeof(Action), out value);
            void MapGetTI() => value = map.Get <int>(out _);
            void MapGetTA() => value = map.Get <Action>(out _);
            void MapGetIndex() => value = map[index];
            void MapTryGetI() => map.TryGet(typeof(int), out value);
            void MapTryGetTI() => map.TryGet <int>(out value);
            void MapTryGetA() => map.TryGet(typeof(Action), out value);
            void MapTryGetTA() => map.TryGet <Action>(out value);

            for (int i = 0; i < 500; i++)
            {
                Test.Measure(ArrayGet, new Action[]
                {
                    TryGetI,
                    TryGetA,
                    ITryGetI,
                    ITryGetA,
                    ConcurrentGetI,
                    ConcurrentGetA,
                    MapGetTI,
                    MapGetTA,
                    MapGetIndex,
                    MapTryGetI,
                    MapTryGetA,
                    MapTryGetTI,
                    MapTryGetTA,
                }, 50_000);
            }
        }
示例#14
0
 public IConverter Converter(Type type, IConverter @default = null, IConverter @override = null) =>
 @override ?? _converters.Get(type, out _, true, false) ?? @default ?? Json.Converters.Converter.Default(type);