Example #1
0
        public void Get_WithBuilder_Immediately()
        {
            var pool = new Pool();

            pool.Register <ObjectDummy>(
                idSelector:             instance => instance.GetType().GetHashCode(),
                instanceSelector:       instance => new ObjectDummy {
                Data = instance.Data
            },
                getFromPoolCallback:    instance => TestContext.WriteLine($"Got instance of '{instance.GetType()}'"),
                putToPoolCallback:      instance => TestContext.WriteLine($"Put instance of '{instance.GetType()}'"));

            var dummyDataOld = "some data";
            var dummyDataNew = "changed";

            var template = new ObjectDummy {
                Data = dummyDataOld
            };

            pool.GetWith(template)
            .Then(instance => instance.Data = dummyDataNew)
            .ThenPut();

            var result = pool.Get(template);

            Assert.AreEqual(dummyDataNew, result.Data);
        }
Example #2
0
        public async Task Get_WithBuilder_Delayed()
        {
            var pool = new Pool();

            pool.Register <ObjectDummy>(
                idSelector:             instance => instance.GetType().GetHashCode(),
                instanceSelector:       instance => new ObjectDummy {
                Data = instance.Data
            },
                getFromPoolCallback:    instance => TestContext.WriteLine($"Got instance of '{instance.GetType()}'"),
                putToPoolCallback:      instance => TestContext.WriteLine($"Put instance of '{instance.GetType()}'"));

            var dummyDataOld = "some data";
            var dummyDataNew = "changed";
            var delaySeconds = 1;

            var template = new ObjectDummy
            {
                Data    = dummyDataOld,
                Seconds = delaySeconds
            };

            pool.GetWith(template)
            .Then(instance => instance.Data = dummyDataNew)
            .ThenWait(instance => TimeSpan.FromSeconds(instance.Seconds))
            .ThenPut();

            await Task.Delay(delaySeconds);

            var result = pool.Get(template);

            Assert.AreEqual(dummyDataNew, result.Data);
        }
        public async Task testPostCreateTransactionOfObjectMetaDataUsingBuilder()
        {
            BlockchainAccount account = new BlockchainAccount();

            ObjectDummy dummyAsset = new ObjectDummy();

            dummyAsset.id          = "id";
            dummyAsset.description = "asset";

            SomeMetaData metaData = new SomeMetaData();

            metaData.properties.Add("one");
            metaData.properties.Add("two");
            metaData.properties.Add("three");


            var transaction = await BigchainDbTransactionBuilder <ObjectDummy, SomeMetaData>
                              .init()
                              .addAssets(dummyAsset)
                              .addMetaData(metaData)
                              .operation(Operations.CREATE)
                              .buildAndSign(account.PublicKey, account.Key)
                              .sendTransactionAsync();

            transaction.Data.ShouldNotBe(null);
            transaction.Data.Id.ShouldNotBe(null);
            transaction.Data.Operation.ShouldBe("CREATE");

            // check returned transaction to match properties
            transaction.Data.MetaData.Metadata.porperty2.ShouldBe(2);
            transaction.Data.MetaData.Metadata.properties.Count.ShouldBe(3);
            transaction.Data.MetaData.Metadata.properties[2].ShouldBe("three");
        }
Example #4
0
    void Init()
    {
        camera = playerDummy.Camera;

        objectDummy = new ObjectDummy();

        rigid = new BodyRigid();
        rigid.MaxAngularVelocity = 0.0f;
        rigid.Freezable          = true;

        shape             = new ShapeCapsule(radius, height);
        shape.Restitution = 0.0f;
        shape.Continuous  = false;

        rigid.Enabled    = true;
        objectDummy.Body = rigid;
        shape.Body       = rigid;

        position  = vec3.ZERO;
        direction = new vec3(1.0f, 0.0f, 0.0f);
        phiAngle  = 90.0f;

        for (int i = 0; i < (int)State.NumStates; i++)
        {
            states[i] = 0;
            times[i]  = 0.0f;
        }

        UpdateTransform();

        PhysicalMask            = physicalMask;
        PhysicsIntersectionMask = intersectionMask;
        CollisionMask           = collisionMask;
        PhysicalMass            = physicalMass;
        SetCollisionRadius(radius);
        SetCollisionHeight(height);
        MinFriction  = minFriction;
        MaxFriction  = maxFriction;
        MinVelocity  = minVelocity;
        MaxVelocity  = maxVelocity;
        Acceleration = acceleration;
        Damping      = damping;
        Jumping      = jumping;

        Ground  = 0;
        Ceiling = 0;

        Game.Player = playerDummy;
    }
Example #5
0
        public void Get_Plain()
        {
            var pool = new Pool();

            pool.Register <ObjectDummy>(
                idSelector:             instance => instance.GetType().GetHashCode(),
                instanceSelector:       instance => new ObjectDummy {
                Data = instance.Data
            },
                getFromPoolCallback:    instance => TestContext.WriteLine($"Got instance of '{instance.GetType()}'"),
                putToPoolCallback:      instance => TestContext.WriteLine($"Put instance of '{instance.GetType()}'"));

            var dummyData = "some data";
            var template  = new ObjectDummy {
                Data = dummyData
            };
            var result = pool.Get(template);

            Assert.AreNotEqual(template, result);
            Assert.AreEqual(template.Data, result.Data);
            Assert.AreEqual(dummyData, result.Data);
        }
        public async Task testPostTransactionOfCreateUsingBuilder()
        {
            BlockchainAccount account    = new BlockchainAccount();
            ObjectDummy       dummyAsset = new ObjectDummy();

            dummyAsset.id          = "id";
            dummyAsset.description = "asset";

            ObjectDummy dummyMeta = new ObjectDummy();

            dummyMeta.id          = "id";
            dummyMeta.description = "meta";

            var transaction = await BigchainDbTransactionBuilder <ObjectDummy, ObjectDummy>
                              .init().addAssets(dummyAsset)
                              .addMetaData(dummyMeta)
                              .operation(Operations.CREATE)
                              .buildAndSign(account.PublicKey, account.Key).sendTransactionAsync();

            transaction.Data.ShouldNotBe(null);
            transaction.Data.Id.ShouldNotBe(null);
            transaction.Data.Operation.ShouldBe("CREATE");
        }
Example #7
0
    private void Init()
    {
        if (showAdvancedSettings)
        {
            showAdvancedSettings = false;
        }

        if (useExternalBody)
        {
            useExternalBody = false;
        }

        PlayerDummy player = node as PlayerDummy;

        if (!player)
        {
            return;
        }

        // decompose transformation
        position  = node.WorldPosition;
        direction = MathLib.Normalize(new vec3(-node.WorldTransform.AxisZ));

        camera = player.Camera;

        if (playerBody)
        {
            dummy = playerBody.Body as BodyDummy;
            if (dummy)
            {
                for (int i = 0; i < dummy.NumShapes; i++)
                {
                    if (!shape)
                    {
                        shape = dummy.GetShape(i) as ShapeCapsule;
                    }
                }

                if (shape)
                {
                    shape.Restitution = 0.0f;
                    shape.Continuous  = false;

                    PhysicalIntersectionMask = shape.PhysicsIntersectionMask;
                    CollisionMask            = shape.CollisionMask;
                    Mass            = shape.Mass;
                    CollisionRadius = shape.Radius;
                    CollisionHeight = shape.Height;
                }
            }
        }

        if (!dummy || !shape)
        {
            if (playerBody)
            {
                playerBody.Enabled = false;
            }

            playerBody = new ObjectDummy();
            dummy      = new BodyDummy();

            shape             = new ShapeCapsule(1.0f, 1.0f);
            shape.Restitution = 0.0f;
            shape.Continuous  = false;

            dummy.Enabled   = true;
            playerBody.Body = dummy;
            shape.Body      = dummy;

            PhysicalIntersectionMask = physicalIntersectionMask;
            CollisionMask            = collisionMask;
            Mass            = mass;
            CollisionRadius = collisionRadius;
            CollisionHeight = collisionHeight;
        }

        contacts = new List <ShapeContact>();

        UpdateTransform();

        maxSlopeAngle   = MathLib.Max(maxSlopeAngle, maxStaticSlopeAngle);
        maxSlidingSpeed = MathLib.Max(maxSlidingSpeed, minSlidingSpeed);

        if (showDebug)
        {
            Visualizer.Enabled   = true;
            Render.ShowTriangles = 1;
        }

        isInitialized = true;
    }