Пример #1
0
        public void LocationStruct()
        {
            var builder    = new FlatBuffers.FlatBufferBuilder(1024);
            var fakeString = builder.CreateString("foobar");

            Oracle.LocationHolder.StartLocationVectorVector(builder, 3);
            Oracle.Location.CreateLocation(builder, 7f, 8f, 9f);
            Oracle.Location.CreateLocation(builder, 4f, 5f, 6f);
            Oracle.Location.CreateLocation(builder, 1f, 2f, 3f);
            var vectorOffset = builder.EndVector();

            Oracle.LocationHolder.StartLocationHolder(builder);
            Oracle.LocationHolder.AddFake(builder, fakeString);
            Oracle.LocationHolder.AddSingleLocation(builder, Oracle.Location.CreateLocation(builder, 0.1f, 0.2f, 0.3f));
            Oracle.LocationHolder.AddLocationVector(builder, vectorOffset);
            var testData = Oracle.LocationHolder.EndLocationHolder(builder);

            builder.Finish(testData.Value);

            byte[] realBuffer = builder.SizedByteArray();
            var    parsed     = FlatBufferSerializer.Default.Parse <LocationHolder>(realBuffer);

            Assert.AreEqual(parsed.Fake, "foobar");
            Assert.AreEqual(parsed.Location.X, 0.1f);
            Assert.AreEqual(parsed.Location.Y, 0.2f);
            Assert.AreEqual(parsed.Location.Z, 0.3f);

            Assert.AreEqual(parsed.LocationVector.Count, 3);
            for (int i = 0; i < 3; ++i)
            {
                Assert.AreEqual((float)(3 * i + 1), parsed.LocationVector[i].X);
                Assert.AreEqual((float)(3 * i + 2), parsed.LocationVector[i].Y);
                Assert.AreEqual((float)(3 * i + 3), parsed.LocationVector[i].Z);
            }
        }
Пример #2
0
        private void button_enter_Click(object sender, EventArgs e)
        {
            if (client == null)
            {
                log("not connected server. cannot enter");
                return;
            }

            if (textBox_channel_no.TextLength <= 0)
            {
                log("can't enter. request channel no is empty.");
                return;
            }

            if (textBox_nickname.TextLength <= 0)
            {
                log("can't enter. request textBox_nickname is empty.");
                return;
            }

            FlatBuffers.FlatBufferBuilder builder = new FlatBuffers.FlatBufferBuilder(1);
            var offset = PACKET.ENTER.CreateENTER(builder, builder.CreateString(textBox_nickname.Text), builder.CreateString(""), user_index);

            builder.Finish(offset.Value);

            if (false == client.Send((int)PACKET_C2S.ENTER, builder.SizedByteArray(), uint.Parse(textBox_channel_no.Text)))
            {
                log("can't enter. disconnected server.");
            }
        }
Пример #3
0
        public void FiveByteStructVector()
        {
            var builder = new FlatBuffers.FlatBufferBuilder(1024);

            Oracle.FiveByteStructTable.StartVectorVector(builder, 3);
            Oracle.FiveByteStruct.CreateFiveByteStruct(builder, 3, 3);
            Oracle.FiveByteStruct.CreateFiveByteStruct(builder, 2, 2);
            Oracle.FiveByteStruct.CreateFiveByteStruct(builder, 1, 1);
            var vectorOffset = builder.EndVector();

            Oracle.FiveByteStructTable.StartFiveByteStructTable(builder);
            Oracle.FiveByteStructTable.AddVector(builder, vectorOffset);
            var testData = Oracle.FiveByteStructTable.EndFiveByteStructTable(builder);

            builder.Finish(testData.Value);

            byte[] realBuffer = builder.SizedByteArray();
            var    parsed     = FlatBufferSerializer.Default.Parse <FiveByteStructTable>(realBuffer);

            Assert.AreEqual(3, parsed.Vector.Length);

            Assert.AreEqual(1, parsed.Vector[0].Int);
            Assert.AreEqual(2, parsed.Vector[1].Int);
            Assert.AreEqual(3, parsed.Vector[2].Int);

            Assert.AreEqual((byte)1, parsed.Vector[0].Byte);
            Assert.AreEqual((byte)2, parsed.Vector[1].Byte);
            Assert.AreEqual((byte)3, parsed.Vector[2].Byte);
        }
Пример #4
0
        public void Union_Struct_Location()
        {
            var builder        = new FlatBuffers.FlatBufferBuilder(1024);
            var locationOffset = Oracle.Location.CreateLocation(
                builder,
                1.0f,
                2.0f,
                3.0f);

            var offset = Oracle.UnionTable.CreateUnionTable(
                builder,
                Oracle.Union.Location,
                locationOffset.Value);

            builder.Finish(offset.Value);
            byte[] realBuffer = builder.DataBuffer.ToSizedArray();
            var    unionTable = FlatBufferSerializer.Default.Parse <UnionTable>(realBuffer);

            Assert.AreEqual(2, unionTable.Union.Discriminator);
            Location parsed = unionTable.Union.Item2;

            Assert.IsNotNull(parsed);

            Assert.AreEqual(1.0f, parsed.X);
            Assert.AreEqual(2.0f, parsed.Y);
            Assert.AreEqual(3.0f, parsed.Z);
        }
Пример #5
0
    public void NestedStructWithOddAlignment_Parse()
    {
        var builder = new FlatBuffers.FlatBufferBuilder(1024);
        var offset  = Oracle.AlignmentTestOuter.CreateAlignmentTestOuter(builder, 1, 2, 3, 4, 5, 6, 7, 8, 9);

        Oracle.AlignmentTestOuterHoder.StartAlignmentTestOuterHoder(builder);
        Oracle.AlignmentTestOuterHoder.AddValue(builder, offset);
        var testData = Oracle.AlignmentTestOuterHoder.EndAlignmentTestOuterHoder(builder);

        builder.Finish(testData.Value);

        byte[] realBuffer = builder.SizedByteArray();
        var    parsed     = FlatBufferSerializer.Default.Parse <AlignmentTestDataHolder>(realBuffer);

        Assert.NotNull(parsed);

        var outer = parsed.Value;

        Assert.NotNull(outer);
        Assert.Equal(1, outer.A);
        Assert.Equal(2, outer.B);
        Assert.Equal(3, outer.C);
        Assert.Equal(4u, outer.D);
        Assert.Equal(5, outer.E);
        Assert.Equal(6ul, outer.F);

        var inner = outer.Inner;

        Assert.NotNull(inner);
        Assert.Equal(7, inner.A);
        Assert.Equal(8, inner.B);
        Assert.Equal(9, inner.C);
    }
Пример #6
0
        public void SortedVectors()
        {
            var builder = new FlatBuffers.FlatBufferBuilder(1024 * 1024);

            var strings       = new List <string>();
            var stringOffsets = new List <FlatBuffers.Offset <Oracle.SortedVectorStringTable> >();

            List <int> ints       = new List <int>();
            var        intOffsets = new List <FlatBuffers.Offset <Oracle.SortedVectorInt32Table> >();

            List <double> doubles       = new List <double>();
            var           doubleOffsets = new List <FlatBuffers.Offset <Oracle.SortedVectorDoubleTable> >();

            const int Iterations = 1000;
            Random    random     = new Random();

            for (int i = 0; i < Iterations; ++i)
            {
                string value = Guid.NewGuid().ToString();
                strings.Add(value);
                stringOffsets.Add(Oracle.SortedVectorStringTable.CreateSortedVectorStringTable(builder, builder.CreateString(value)));
            }

            for (int i = 0; i < Iterations; ++i)
            {
                int value = random.Next();
                ints.Add(value);
                intOffsets.Add(Oracle.SortedVectorInt32Table.CreateSortedVectorInt32Table(builder, value));
            }

            for (int i = 0; i < Iterations; ++i)
            {
                double value = random.NextDouble() * random.Next();
                doubles.Add(value);
                doubleOffsets.Add(Oracle.SortedVectorDoubleTable.CreateSortedVectorDoubleTable(builder, value));
            }

            var table = Oracle.SortedVectorTest.CreateSortedVectorTest(
                builder,
                Oracle.SortedVectorInt32Table.CreateSortedVectorOfSortedVectorInt32Table(builder, intOffsets.ToArray()),
                Oracle.SortedVectorStringTable.CreateSortedVectorOfSortedVectorStringTable(builder, stringOffsets.ToArray()),
                Oracle.SortedVectorDoubleTable.CreateSortedVectorOfSortedVectorDoubleTable(builder, doubleOffsets.ToArray()));

            builder.Finish(table.Value);
            byte[] serialized = builder.SizedByteArray();

            var parsed = FlatBufferSerializer.Default.Parse <SortedVectorTest <SortedVectorItem <int> > >(serialized);

            VerifySorted(parsed.StringVector, new Utf8StringComparer(), strings, new List <string> {
                Guid.NewGuid().ToString(), "banana"
            });
            VerifySorted(parsed.IntVector, Comparer <int> .Default, ints, new List <int> {
                -1, -3, 0
            });
            VerifySorted(parsed.Double, Comparer <double> .Default, doubles, new List <double> {
                Math.PI, Math.E, Math.Sqrt(2)
            });
        }
Пример #7
0
        public static int Pack(FlatBuffers.FlatBufferBuilder builder, ImageTypeUnion _o)
        {
            switch (_o.Type)
            {
            default: return(0);

            case ImageType.RawImage: return(hyperionnet.RawImage.Pack(builder, _o.AsRawImage()).Value);
            }
        }
Пример #8
0
        private void button_ready_Click(object sender, EventArgs e)
        {
            FlatBuffers.FlatBufferBuilder builder = new FlatBuffers.FlatBufferBuilder(1);

            if (false == client.Send((int)PACKET_C2S.READY, builder.SizedByteArray(), uint.Parse(textBox_joined_channel.Text)))
            {
                log("can't send. disconnected server.");
            }
        }
        public static int Pack(FlatBuffers.FlatBufferBuilder builder, UnionInNestedNSUnion _o)
        {
            switch (_o.Type)
            {
            default: return(0);

            case UnionInNestedNS.TableInNestedNS: return(NamespaceA.NamespaceB.TableInNestedNS.Pack(builder, _o.AsTableInNestedNS()).Value);
            }
        }
Пример #10
0
    public static int Pack(FlatBuffers.FlatBufferBuilder builder, GadgetUnion _o)
    {
        switch (_o.Type)
        {
        default: return(0);

        case Gadget.FallingTub: return(FallingTub.Pack(builder, _o.AsFallingTub()).Value);

        case Gadget.HandFan: return(HandFan.Pack(builder, _o.AsHandFan()).Value);
        }
    }
Пример #11
0
    public static int Pack(FlatBuffers.FlatBufferBuilder builder, KeywordsInUnionUnion _o)
    {
        switch (_o.Type)
        {
        default: return(0);

        case KeywordsInUnion.static_: return(KeywordsInTable.Pack(builder, _o.Asstatic()).Value);

        case KeywordsInUnion.internal_: return(KeywordsInTable.Pack(builder, _o.Asinternal()).Value);
        }
    }
Пример #12
0
        private void button_spawn_Click(object sender, EventArgs e)
        {
            FlatBuffers.FlatBufferBuilder builder = new FlatBuffers.FlatBufferBuilder(1);
            var offset = PACKET.REQ_SPAWN.CreateREQ_SPAWN(builder, 1); // 1은 MONSTER_ID

            builder.Finish(offset.Value);

            if (false == client.Send((int)PACKET_C2S.SPAWN, builder.SizedByteArray(), uint.Parse(textBox_joined_channel.Text)))
            {
                log("can't send. disconnected server.");
            }
        }
Пример #13
0
        void relay_start_callback(JObject json)
        {
            if (null != json)
            {
                relay_info = json;
                string[] address = relay_info["server_address"].ToString().Split(':');

                if (client != null)
                {
                    if (true == client.IsConnected())
                    {
                        log("already connected server. server[" + address[0] + ":" + address[1] + "]");
                        return;
                    }
                }
                else
                {
                    client = new light.net.Client();
                }

                if (false == client.Connect(address[0], int.Parse(address[1])))
                {
                    log("cannot connect server. server[" + address[0] + ":" + address[1] + "]");
                    return;
                }

                log("connect server. server[" + address[0] + ":" + address[1] + "]");

                JArray array = JArray.Parse(relay_info["members"].ToString());
                foreach (var member in array)
                {
                    if (member["id"].ToString() == user_index.ToString())
                    {
                        FlatBuffers.FlatBufferBuilder builder = new FlatBuffers.FlatBufferBuilder(1);
                        var offset = PACKET.REQ_JOIN.CreateREQ_JOIN(builder, builder.CreateString(login_info["UserID"].ToString()), builder.CreateString(member["hash"].ToString()), user_index);
                        builder.Finish(offset.Value);

                        if (false == client.Send((int)PACKET_C2S.JOIN, builder.SizedByteArray(), uint.Parse(relay_info["roomnum"].ToString())))
                        {
                            log("can't enter.");
                        }
                        return;
                    }
                }

                log("not find my information from relay/start.");
            }
            else
            {
                log("failed relay_start.");
            }
        }
Пример #14
0
        public static int Pack(FlatBuffers.FlatBufferBuilder builder, AnyUnion _o)
        {
            switch (_o.Type)
            {
            default: return(0);

            case Any.Monster: return(MyGame.Example.Monster.Pack(builder, _o.AsMonster()).Value);

            case Any.TestSimpleTableWithEnum: return(MyGame.Example.TestSimpleTableWithEnum.Pack(builder, _o.AsTestSimpleTableWithEnum()).Value);

            case Any.MyGame_Example2_Monster: return(MyGame.Example2.Monster.Pack(builder, _o.AsMyGame_Example2_Monster()).Value);
            }
        }
Пример #15
0
        public static int Pack(FlatBuffers.FlatBufferBuilder builder, AnyAmbiguousAliasesUnion _o)
        {
            switch (_o.Type)
            {
            default: return(0);

            case AnyAmbiguousAliases.M1: return(MyGame.Example.Monster.Pack(builder, _o.AsM1()).Value);

            case AnyAmbiguousAliases.M2: return(MyGame.Example.Monster.Pack(builder, _o.AsM2()).Value);

            case AnyAmbiguousAliases.M3: return(MyGame.Example.Monster.Pack(builder, _o.AsM3()).Value);
            }
        }
Пример #16
0
        public static int Pack(FlatBuffers.FlatBufferBuilder builder, AnyUniqueAliasesUnion _o)
        {
            switch (_o.Type)
            {
            default: return(0);

            case AnyUniqueAliases.M: return(MyGame.Example.Monster.Pack(builder, _o.AsM()).Value);

            case AnyUniqueAliases.TS: return(MyGame.Example.TestSimpleTableWithEnum.Pack(builder, _o.AsTS()).Value);

            case AnyUniqueAliases.M2: return(MyGame.Example2.Monster.Pack(builder, _o.AsM2()).Value);
            }
        }
Пример #17
0
        public void Union_NotSet()
        {
            var builder = new FlatBuffers.FlatBufferBuilder(1024);

            var offset = Oracle.UnionTable.CreateUnionTable(builder);

            builder.Finish(offset.Value);
            byte[] realBuffer = builder.DataBuffer.ToSizedArray();

            var unionTable = FlatBufferSerializer.Default.Parse <UnionTable>(realBuffer);

            Assert.IsNull(unionTable.Union);
        }
Пример #18
0
        public static int Pack(FlatBuffers.FlatBufferBuilder builder, UnionUnion _o)
        {
            switch (_o.Type)
            {
            default: return(0);

            case Union.BasicTypes: return(FlatSharpTests.Oracle.BasicTypes.Pack(builder, _o.AsBasicTypes()).Value);

            case Union.Location: return(FlatSharpTests.Oracle.Location.Pack(builder, _o.AsLocation()).Value);

            case Union.stringValue: return(builder.CreateString(_o.AsstringValue()).Value);
            }
        }
Пример #19
0
        public void SimpleTypes()
        {
            var builder  = new FlatBuffers.FlatBufferBuilder(1024);
            var fbOffset = Oracle.BasicTypes.CreateBasicTypes(
                builder,
                Bool: true,
                Byte: GetRandom <byte>(),
                SByte: GetRandom <sbyte>(),
                UShort: GetRandom <ushort>(),
                Short: GetRandom <short>(),
                UInt: GetRandom <uint>(),
                Int: GetRandom <int>(),
                ULong: GetRandom <ulong>(),
                Long: GetRandom <long>(),
                Float: GetRandom <float>(),
                Double: GetRandom <double>(),
                StringOffset: builder.CreateString("foobar"));

            builder.Finish(fbOffset.Value);
            byte[] realBuffer = builder.DataBuffer.ToSizedArray();

            var oracle = Oracle.BasicTypes.GetRootAsBasicTypes(new FlatBuffers.ByteBuffer(realBuffer));

            var simple            = FlatBufferSerializer.Default.Parse <BasicTypes>(realBuffer);
            var simpleUnsafe      = FlatBufferSerializer.Default.Parse <BasicTypes>(new UnsafeMemoryInputBuffer(realBuffer));
            var simpleUnsafeArray = FlatBufferSerializer.Default.Parse <BasicTypes>(new UnsafeArrayInputBuffer(realBuffer));

            foreach (var parsed in new[] { simple, simpleUnsafe, simpleUnsafeArray })
            {
                Assert.IsTrue(parsed.Bool);
                Assert.AreEqual(oracle.Byte, parsed.Byte);
                Assert.AreEqual(oracle.SByte, parsed.SByte);

                Assert.AreEqual(oracle.UShort, parsed.UShort);
                Assert.AreEqual(oracle.Short, parsed.Short);

                Assert.AreEqual(oracle.UInt, parsed.UInt);
                Assert.AreEqual(oracle.Int, parsed.Int);

                Assert.AreEqual(oracle.ULong, parsed.ULong);
                Assert.AreEqual(oracle.Long, parsed.Long);

                Assert.AreEqual(oracle.Float, parsed.Float);
                Assert.AreEqual(oracle.Double, parsed.Double);
                Assert.AreEqual("foobar", parsed.String);
            }

            // Ensures the caching works correctly.
            //Assert.ReferenceEquals(cached.String, cached.String);
            Assert.IsTrue(object.ReferenceEquals(simple.String, simple.String));
        }
Пример #20
0
        public void Union_Table_BasicTypes()
        {
            var builder          = new FlatBuffers.FlatBufferBuilder(1024);
            var basicTypesOffset = Oracle.BasicTypes.CreateBasicTypes(
                builder,
                Bool: true,
                Byte: GetRandom <byte>(),
                SByte: GetRandom <sbyte>(),
                UShort: GetRandom <ushort>(),
                Short: GetRandom <short>(),
                UInt: GetRandom <uint>(),
                Int: GetRandom <int>(),
                ULong: GetRandom <ulong>(),
                Long: GetRandom <long>(),
                Float: GetRandom <float>(),
                Double: GetRandom <double>(),
                StringOffset: builder.CreateString("foobar"));

            var offset = Oracle.UnionTable.CreateUnionTable(
                builder,
                Oracle.Union.BasicTypes,
                basicTypesOffset.Value);

            builder.Finish(offset.Value);
            byte[] realBuffer = builder.DataBuffer.ToSizedArray();

            var oracle     = Oracle.UnionTable.GetRootAsUnionTable(new FlatBuffers.ByteBuffer(realBuffer)).Value <Oracle.BasicTypes>().Value;
            var unionTable = FlatBufferSerializer.Default.Parse <UnionTable>(realBuffer);

            Assert.AreEqual(1, unionTable.Union.Discriminator);
            BasicTypes parsed = unionTable.Union.Item1;

            Assert.IsNotNull(parsed);

            Assert.IsTrue(parsed.Bool);
            Assert.AreEqual(oracle.Byte, parsed.Byte);
            Assert.AreEqual(oracle.SByte, parsed.SByte);

            Assert.AreEqual(oracle.UShort, parsed.UShort);
            Assert.AreEqual(oracle.Short, parsed.Short);

            Assert.AreEqual(oracle.UInt, parsed.UInt);
            Assert.AreEqual(oracle.Int, parsed.Int);

            Assert.AreEqual(oracle.ULong, parsed.ULong);
            Assert.AreEqual(oracle.Long, parsed.Long);

            Assert.AreEqual(oracle.Float, parsed.Float);
            Assert.AreEqual(oracle.Double, parsed.Double);
            Assert.AreEqual("foobar", parsed.String);
        }
Пример #21
0
        static StackObject *EndVector_7(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject *ptr_of_this_method;
            StackObject *__ret = ILIntepreter.Minus(__esp, 1);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
            FlatBuffers.FlatBufferBuilder instance_of_this_method = (FlatBuffers.FlatBufferBuilder) typeof(FlatBuffers.FlatBufferBuilder).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
            __intp.Free(ptr_of_this_method);

            var result_of_this_method = instance_of_this_method.EndVector();

            return(ILIntepreter.PushObject(__ret, __mStack, result_of_this_method));
        }
        public static int Pack(FlatBuffers.FlatBufferBuilder builder, NInputExtraUnion _o)
        {
            switch (_o.Type)
            {
            default: return(0);

            case NInputExtra.Button: return(NymaTypes.NButtonInfo.Pack(builder, _o.AsButton()).Value);

            case NInputExtra.Axis: return(NymaTypes.NAxisInfo.Pack(builder, _o.AsAxis()).Value);

            case NInputExtra.Switch: return(NymaTypes.NSwitchInfo.Pack(builder, _o.AsSwitch()).Value);

            case NInputExtra.Status: return(NymaTypes.NStatusInfo.Pack(builder, _o.AsStatus()).Value);
            }
        }
Пример #23
0
        public static int Pack(FlatBuffers.FlatBufferBuilder builder, CommandUnion _o)
        {
            switch (_o.Type)
            {
            default: return(0);

            case Command.Color: return(hyperionnet.Color.Pack(builder, _o.AsColor()).Value);

            case Command.Image: return(hyperionnet.Image.Pack(builder, _o.AsImage()).Value);

            case Command.Clear: return(hyperionnet.Clear.Pack(builder, _o.AsClear()).Value);

            case Command.Register: return(hyperionnet.Register.Pack(builder, _o.AsRegister()).Value);
            }
        }
Пример #24
0
        static StackObject *StartObject_0(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject *ptr_of_this_method;
            StackObject *__ret = ILIntepreter.Minus(__esp, 2);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
            System.Int32 @numfields = ptr_of_this_method->Value;

            ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
            FlatBuffers.FlatBufferBuilder instance_of_this_method = (FlatBuffers.FlatBufferBuilder) typeof(FlatBuffers.FlatBufferBuilder).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
            __intp.Free(ptr_of_this_method);

            instance_of_this_method.StartObject(@numfields);

            return(__ret);
        }
Пример #25
0
    public static int Pack(FlatBuffers.FlatBufferBuilder builder, CharacterUnion _o)
    {
        switch (_o.Type)
        {
        default: return(0);

        case Character.MuLan: return(Attacker.Pack(builder, _o.AsMuLan()).Value);

        case Character.Rapunzel: return(Rapunzel.Pack(builder, _o.AsRapunzel()).Value);

        case Character.Belle: return(BookReader.Pack(builder, _o.AsBelle()).Value);

        case Character.BookFan: return(BookReader.Pack(builder, _o.AsBookFan()).Value);

        case Character.Other: return(builder.CreateString(_o.AsOther()).Value);

        case Character.Unused: return(builder.CreateString(_o.AsUnused()).Value);
        }
    }
Пример #26
0
        public void Union_String()
        {
            var builder      = new FlatBuffers.FlatBufferBuilder(1024);
            var stringOffset = builder.CreateString("foobar");

            var offset = Oracle.UnionTable.CreateUnionTable(
                builder,
                Oracle.Union.stringValue,
                stringOffset.Value);

            builder.Finish(offset.Value);
            byte[] realBuffer = builder.DataBuffer.ToSizedArray();
            var    unionTable = FlatBufferSerializer.Default.Parse <UnionTable>(realBuffer);

            Assert.AreEqual(3, unionTable.Union.Discriminator);
            string parsed = unionTable.Union.Item3;

            Assert.AreEqual("foobar", parsed);
        }
        public static void GetCurrentEventTable(SaveBlockAccessor8SWSH blocks, RaidTables rt)
        {
            var archive = blocks.GetBlock(NORMAL_ENCOUNTER).Data;

            if (archive.Length < 0x20 || archive.Length != 4 + BitConverter.ToInt32(archive, 0x10) || BitConverter.ToInt32(archive, 0x8) != 0x20)
            {
                return; // no event loaded
            }
            var encount_data = new byte[archive.Length - 0x24];

            Array.Copy(archive, 0x20, encount_data, 0, encount_data.Length);


            var fbb           = new FlatBuffers.FlatBufferBuilder(new FlatBuffers.ByteBuffer(encount_data));
            var dist_encounts = PKHeX_Raid_Plugin.NestHoleDistributionEncounter8Archive.GetRootAsNestHoleDistributionEncounter8Archive(fbb.DataBuffer);

            var sword_table  = dist_encounts.Tables(0).Value;
            var shield_table = dist_encounts.Tables(1).Value;

            if (sword_table.GameVersion != 1)
            {
                sword_table  = dist_encounts.Tables(1).Value;
                shield_table = dist_encounts.Tables(0).Value;
            }

            var swordTable  = new RaidTemplateTable(1721953670860364124, 1, new RaidTemplate[sword_table.EntriesLength]);
            var shieldTable = new RaidTemplateTable(1721953670860364124, 2, new RaidTemplate[sword_table.EntriesLength]);

            for (int i = 0; i < sword_table.EntriesLength; i++)
            {
                var entry1 = sword_table.Entries(i).Value;

                swordTable.Entries[i] = new RaidTemplate(entry1.Species, entry1.GetProbabilitiesArray(), entry1.FlawlessIVs, entry1.AltForm, entry1.Ability, entry1.Gender, entry1.Nature, entry1.IsGigantamax, entry1.ShinyForced);
                entry1 = shield_table.Entries(i).Value;
                shieldTable.Entries[i] = new RaidTemplate(entry1.Species, entry1.GetProbabilitiesArray(), entry1.FlawlessIVs, entry1.AltForm, entry1.Ability, entry1.Gender, entry1.Nature, entry1.IsGigantamax, entry1.ShinyForced);
            }
            if (sword_table.EntriesLength > 0)
            {
                rt.SwordNestsEvent[0]  = swordTable;
                rt.ShieldNestsEvent[0] = shieldTable;
            }
        }
Пример #28
0
        public void ScalarVectors()
        {
            var builder  = new FlatBuffers.FlatBufferBuilder(1024);
            var testData = Oracle.Vectors.CreateVectors(
                builder,
                Oracle.Vectors.CreateIntVectorVector(builder, new[] { 1, 2, 3, 4, 5, 6, }),
                Oracle.Vectors.CreateLongVectorVector(builder, new[] { 7L, 8, 9, 10, 11, 12, }),
                Oracle.Vectors.CreateByteVector1Vector(builder, new byte[] { 1, 2, 3, 4, 5 }),
                Oracle.Vectors.CreateByteVector2Vector(builder, new byte[] { 1, 2, 3, 4, 5 }));

            builder.Finish(testData.Value);

            byte[] realBuffer = builder.SizedByteArray();

            var parsed = FlatBufferSerializer.Default.Parse <ScalarVectorsTable>(realBuffer);

            IList <int> intItems = parsed.IntVector;

            Assert.AreEqual(6, intItems.Count);
            for (int i = 0; i < 6; ++i)
            {
                Assert.AreEqual(1 + i, intItems[i]);
            }

            IList <long> longItems = parsed.LongVector;

            Assert.AreEqual(6, longItems.Count);
            for (int i = 0; i < 6; ++i)
            {
                Assert.AreEqual(7 + i, longItems[i]);
            }

            Memory <byte> mem = parsed.ByteVector2;

            Assert.AreEqual(5, mem.Length);
            for (int i = 1; i <= 5; ++i)
            {
                Assert.AreEqual(i, mem.Span[i - 1]);
            }

            Assert.IsTrue(parsed.ByteVector3.IsEmpty);
        }
Пример #29
0
        public void NestedStruct()
        {
            var builder     = new FlatBuffers.FlatBufferBuilder(1024);
            var outerOffset = Oracle.OuterStruct.CreateOuterStruct(builder, 401, 100);

            Oracle.NestedStructs.StartNestedStructs(builder);
            Oracle.NestedStructs.AddOuter(builder, outerOffset);
            var offset = Oracle.NestedStructs.EndNestedStructs(builder);

            builder.Finish(offset.Value);

            byte[] realBuffer = builder.DataBuffer.ToSizedArray();

            var parsed = FlatBufferSerializer.Default.Parse <NestedStructs>(realBuffer);

            Assert.IsNotNull(parsed?.OuterStruct?.InnerStruct);

            Assert.AreEqual(401, parsed.OuterStruct.InnerStruct.A);
            Assert.AreEqual(100, parsed.OuterStruct.A);
        }
Пример #30
0
        public void SortedVectors_NullKey_NotAllowed()
        {
            var builder = new FlatBuffers.FlatBufferBuilder(1024 * 1024);

            var strings       = new List <string>();
            var stringOffsets = new List <FlatBuffers.Offset <Oracle.SortedVectorStringTable> >();

            foreach (string s in new[] { Guid.NewGuid().ToString(), null, Guid.NewGuid().ToString() })
            {
                strings.Add(s);
                FlatBuffers.StringOffset strOffset = default;
                if (s != null)
                {
                    strOffset = builder.CreateString(s);
                }

                stringOffsets.Add(Oracle.SortedVectorStringTable.CreateSortedVectorStringTable(builder, strOffset));
            }

            Assert.ThrowsException <InvalidOperationException>(
                () => Oracle.SortedVectorStringTable.CreateSortedVectorOfSortedVectorStringTable(builder, stringOffsets.ToArray()));
        }