Esempio n. 1
0
        public void ReceivePriority(int newPrioPlayer)
        {
            int myAN = PhotonNetwork.LocalPlayer.ActorNumber;

            if (newPrioPlayer != myAN)
            {
                // not my prio to receive
                return;
            }
            if (chain.Count > 0)
            {
                IChainable mostRecent = chain.Last();
                if (mostRecent.ownerAN == myAN)
                {
                    // they have given back to me without doing anything
                    ResolveChain();
                }
                else
                {
                    // they have added to the chain
                }
            }
            else
            {
                Debug.Log("<color=teal>received prio with nothing on chain</color>");
            }
        }
        public static T BuildChain <T>(this IEnumerable <IChainable <T> > collection)
        {
            IChainable <T> first = collection.First();
            IChainable <T> link  = first;

            foreach (var nextlink in collection.Skip(1))
            {
                link = link.SetSuccessor(nextlink);
            }
            return((T)first);
        }
        public void SetUp()
        {
            _mockedPointsContainer         = new Mock <IConnectableObjectsContainer <SlamPoint> >();
            _mockedObservationsContainer   = new Mock <IConnectableObjectsContainer <SlamObservation> >();
            _mockedTrackedObjectsContainer = new Mock <IContainer <SlamTrackedObject> >();
            _mockedLinesContainer          = new Mock <IContainer <SlamLine> >();
            _mockedInfinitePlanesContainer = new Mock <IContainer <SlamInfinitePlane> >();
            _retranslator = new ProtobufRetranslator
            {
                Settings = new AddressesSettingsBag {
                    Addresses = $"{Address}:{Port}"
                }
            };
            _retranslator.Start();

            var logger                   = new TestsLogger();
            var pointsMapManager         = new PointsMapManager(_mockedPointsContainer.Object, null);
            var observationsMapManager   = new ObservationsMapManager(_mockedObservationsContainer.Object, null);
            var trackedObjsMapManager    = new TrackedObjsMapManager(_mockedTrackedObjectsContainer.Object, null);
            var linesMapManager          = new LinesMapManager(_mockedLinesContainer.Object, null);
            var infinitePlanesMapManager = new InfinitePlanesMapManager(_mockedInfinitePlanesContainer.Object, null);

            pointsMapManager.Logger         = logger;
            observationsMapManager.Logger   = logger;
            trackedObjsMapManager.Logger    = logger;
            linesMapManager.Logger          = logger;
            infinitePlanesMapManager.Logger = logger;

            var servicesChain = new IChainable <MapsManagerPb.MapsManagerPbBase>[]
            {
                pointsMapManager, observationsMapManager, trackedObjsMapManager, linesMapManager,
                infinitePlanesMapManager
            }.BuildChain();

            GrpcEnvironment.SetLogger(new TestsLogger());

            _grpcServer = new Server
            {
                Services =
                {
                    MapsManagerPb.BindService(servicesChain),
                },
                Ports =
                {
                    new ServerPort(Address, Port, ServerCredentials.Insecure),
                },
            };
            _grpcServer.Start();
        }
Esempio n. 4
0
    private void OnCollisionEnter(Collision other)
    {
        IChainable _chainable = other.gameObject.GetComponent <IChainable>();

        if (_chainable != null && !taked)
        {
            chainable = _chainable;
            taked     = true;
            Debug.Log(chainable.transform.name + " Chained");
            chainable.transform.SetParent(transform);
            StopCoroutine(Move());
            chainable.CurrentChainableState = ChainableState.chained;
            translateVector = Vector3.zero;
        }
    }
Esempio n. 5
0
 public void ResetHook(List <HookableObject> newList)
 {
     if (newList.Count > 0)
     {
         if (newList[0] is IChainable)
         {
             Rigidbody2D r = rb;
             foreach (HookableObject so in newList)
             {
                 IChainable chain = so as IChainable;
                 chain.Chain(r);
                 foreach (Transform t in so.transform)
                 {
                     if (t.tag.Equals("Hook"))
                     {
                         r = t.GetComponent <Rigidbody2D>();
                     }
                 }
             }
         }
     }
     hookedItems = newList;
 }
Esempio n. 6
0
        public override void Start()
        {
            AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true);
            AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", true);
            GrpcEnvironment.SetLogger(new UnityLogger());

            Converter?.SetInitTRS(Vector3.zero, Quaternion.identity);

            var servicesChain = new IChainable <MapsManagerPb.MapsManagerPbBase>[]
            {
                new PointsMapManager(_containerTree.Points, Converter),
                new ObservationsMapManager(_containerTree.Observations, Converter),
                new TrackedObjsMapManager(_containerTree.TrackedObjs, Converter),
                new LinesMapManager(_containerTree.Lines, Converter),
                new InfinitePlanesMapManager(_containerTree.InfinitePlanes, Converter)
            }.BuildChain();

            _containerTree.DisplayName = $"From gRPC at port {TypedSettings.Port}";
#if UNITY_EDITOR || UNITY_STANDALONE
            Debug.Log($"{TypedSettings.IPAddress}:{TypedSettings.Port}");
#endif

            _server = new GrpcServer()
            {
                Services =
                {
                    MapsManagerPb.BindService(servicesChain),
                    SceneManagerPb.BindService(new SceneManager(_containerTree)),
                    ImageManagerPb.BindService(new ImageManager((RawImagePresenter)_containerTree.Image))
                },
                Ports =
                {
                    new ServerPort("0.0.0.0", TypedSettings.Port, ServerCredentials.Insecure),
                },
            };
            StartServer();
        }
Esempio n. 7
0
 public Board(IChainable <Skeleton> SkeletonChain)
 {
     this.SkeletonChain = SkeletonChain;
     Plot();
 }
Esempio n. 8
0
 public IChainable <DataParser> SetSuccessor(IChainable <DataParser> parser)
 {
     Debug.Assert(parser != this, "[DataParser.SetSuccessor] Cyclic reference!");
     m_successor = parser as DataParser;
     return(m_successor);
 }
Esempio n. 9
0
 public IChainable <PackageViewUpdateCommander> SetSuccessor(IChainable <PackageViewUpdateCommander> commander) => m_commander = commander as PackageViewUpdateCommander;
Esempio n. 10
0
 public IChainable <PackagePresenter> SetSuccessor(IChainable <PackagePresenter> presenter) => m_presenter = presenter as PackagePresenter;
 public IChainable <DataParser <T> > SetSuccessor(IChainable <DataParser <T> > parser)
 {
     return(Successor = parser as DataParser <T>);
 }
Esempio n. 12
0
 public IChainable <MapsManagerPb.MapsManagerPbBase> SetSuccessor(
     IChainable <MapsManagerPb.MapsManagerPbBase> link)
 {
     _link = link as MapsManagerPb.MapsManagerPbBase;
     return(link);
 }