コード例 #1
0
        public void TestStateUpdate()
        {
            var sup     = new StateUpdateObject();
            var created = new RoomObjectObj
            {
                disposable    = true,
                id            = 27,
                isHidden      = false,
                lookDirection = Vector3.forward,
                owner         = "test",
                position      = Vector3.one,
                prefab        = "a test thing"
            };
            var updated = new RoomObjectObj
            {
                disposable    = false,
                id            = 23,
                isHidden      = true,
                lookDirection = Vector3.back,
                owner         = "test",
                position      = Vector3.down,
                prefab        = ""
            };
            var deleted = 0;



            var TestSUP = new StateUpdateObject
            {
                create = new List <RoomObjectObj>()
                {
                    created
                },
                update = new List <RoomObjectObj>()
                {
                    updated
                },
                delete = new List <int>()
                {
                    deleted
                },
            };

            var fbb    = new FlatBufferBuilder(1024);
            var offset = TestSUP.ToBuffer(fbb);

            fbb.Finish(offset.Value);
            var bArray = fbb.SizedByteArray();
            var bb     = new ByteBuffer(bArray);
            var desObj = StateUpdate.GetRootAsStateUpdate(bb);
            var passed = CompareStateUpdates(desObj, TestSUP);

            print("State Update : " + (passed ? "Passed" : "Failed"));
        }
コード例 #2
0
 private bool CompareObjects(RoomObjectObj d1, RoomObjectObj d2)
 {
     if (d1 == null)
     {
         return(d2 == null);
     }
     if (d2 == null)
     {
         return(false);
     }
     return(d1.disposable == d2.disposable && d1.isHidden == d2.isHidden && d1.position == d2.position &&
            d1.lookDirection == d2.lookDirection && d1.owner == d2.owner && d1.prefab == d2.prefab);
 }
コード例 #3
0
        private void TestRoomObject()
        {
            var TestObj = new RoomObjectObj
            {
                disposable    = true,
                id            = 27,
                isHidden      = false,
                lookDirection = Vector3.forward,
                owner         = "test",
                position      = Vector3.one,
                prefab        = "a test thing"
            };
            var fbb    = new FlatBufferBuilder(1024);
            var offset = TestObj.ToBuffer(fbb);

            fbb.Finish(offset.Value);
            var bArray = fbb.SizedByteArray();
            var bb     = new ByteBuffer(bArray);
            var desObj = RoomObject.GetRootAsRoomObject(bb);

            print("Room Object Test : " + (CompareRoomObjects(TestObj, desObj) ? "Passed" : "Failed"));
        }
コード例 #4
0
        /// <summary>
        /// Creates a local copy of a remote object
        /// </summary>
        /// <param name="newObj"></param>
        private void CreateObject(RoomObjectObj newObj, RoomStateGen state)
        {
            print("Creating object " + newObj.name);
            ITrackable tracker;
            GameObject go;

            if (prefabNames.Contains(newObj.prefab))
            {
                go      = Instantiate <GameObject>(prefabs[prefabNames.IndexOf(newObj.prefab)]);
                tracker = go.GetComponent <ITrackable>();
            }
            else
            {
                go      = new GameObject("Prefab " + newObj.prefab + " not found");
                tracker = go.AddComponent <NStateTracker>();
            }
            tracker.id     = newObj.id;
            tracker.prefab = newObj.prefab;
            trackers.Add(tracker.id, tracker);
            state.objects.Add(newObj);
            roomCreatedObjects.Add(go);
            tracker.UpdateFromRoomObject(newObj);
        }
コード例 #5
0
        public void TestStateUpdate()
        {
            var sup     = new StateUpdateObject();
            var created = new RoomObjectObj
            {
                disposable    = true,
                id            = 27,
                isHidden      = false,
                lookDirection = Vector3.forward,
                owner         = "test",
                position      = Vector3.one,
                prefab        = "a test thing"
            };
            var updated = new RoomObjectObj
            {
                disposable    = false,
                id            = 23,
                isHidden      = true,
                lookDirection = Vector3.back,
                owner         = "test",
                position      = Vector3.down,
                prefab        = ""
            };
            var deleted = 0;

            var TestAnnotation = new AnnotationObject
            {
                isValid   = true,
                lineId    = "testLine",
                positions = new[] { Vector3.one },
                userId    = "testUser"
            };

            TargetPlacementObject poi = new TargetPlacementObject
            {
                id       = 0,
                isValid  = true,
                name     = "testPoi",
                position = Vector3.one
            };

            var sitedrive = "SomeSiteDrive";

            var TestSUP = new StateUpdateObject
            {
                poiPlacementObject = poi,
                annotationObjects  = new List <AnnotationObject>()
                {
                    TestAnnotation
                },
                create = new List <RoomObjectObj>()
                {
                    created
                },
                update = new List <RoomObjectObj>()
                {
                    updated
                },
                delete = new List <int>()
                {
                    deleted
                },
                siteDrive = sitedrive
            };

            var fbb    = new FlatBufferBuilder(1024);
            var offset = TestSUP.ToBuffer(fbb);

            fbb.Finish(offset.Value);
            var bArray = fbb.SizedByteArray();
            var bb     = new ByteBuffer(bArray);
            var desObj = StateUpdate.GetRootAsStateUpdate(bb);
            var passed = CompareStateUpdates(desObj, TestSUP);

            print("State Update : " + (passed ? "Passed" : "Failed"));
        }
コード例 #6
0
        private bool TestStateUpdateMessage()
        {
            var sup     = new StateUpdateObject();
            var created = new RoomObjectObj
            {
                disposable    = true,
                id            = 27,
                isHidden      = false,
                lookDirection = Vector3.forward,
                owner         = "test",
                position      = Vector3.one,
                prefab        = "a test thing"
            };
            var updated = new RoomObjectObj
            {
                disposable    = false,
                id            = 23,
                isHidden      = true,
                lookDirection = Vector3.back,
                owner         = "test",
                position      = Vector3.down,
                prefab        = ""
            };
            var deleted = 0;

            var TestAnnotation = new AnnotationObject
            {
                isValid   = true,
                lineId    = "testLine",
                positions = new[] { Vector3.one },
                userId    = "testUser"
            };

            TargetPlacementObject poi = new TargetPlacementObject
            {
                id       = 0,
                isValid  = true,
                name     = "testPoi",
                position = Vector3.one
            };

            var sitedrive = "SomeSiteDrive";

            var TestSUP = new StateUpdateObject
            {
                poiPlacementObject = poi,
                annotationObjects  = new List <AnnotationObject>()
                {
                    TestAnnotation
                },
                create = new List <RoomObjectObj>()
                {
                    created
                },
                update = new List <RoomObjectObj>()
                {
                    updated
                },
                delete = new List <int>()
                {
                    deleted
                },
                siteDrive = sitedrive
            };

            var buf    = ServerMessageFactory.BuildMessage(TestSUP);
            var bb     = new ByteBuffer(buf);
            var desMsg = ServerMessage.GetRootAsServerMessage(bb);
            var passed = true;

            passed &= desMsg.DataType == msg.StateUpdate;
            if (passed)
            {
                passed &= CompareStateUpdates(desMsg.Data <StateUpdate>().Value, TestSUP);
            }
            return(passed);
        }
コード例 #7
0
 public void UpdateFromRoomObject(RoomObjectObj stateRoomObject)
 {
     //should call moveto and lookat
 }