예제 #1
0
        public override void OnReceiveRemote(ElevatorMessage message)
        {
            DebugLog.DebugWrite($"Get ElevatorMessage {message.Direction} for {message.ObjectId}");
            var elevator = WorldRegistry.GetObject <QSBElevator>(message.ObjectId);

            elevator?.RemoteCall(message.Direction);
        }
예제 #2
0
 public QSBSector GetClosestSector(Transform trans)
 {
     return(WorldRegistry.GetObjects <QSBSector>()
            .Where(sector => sector.Sector != null && !_sectorBlacklist.Contains(sector.Type))
            .OrderBy(sector => Vector3.Distance(sector.Position, trans.position))
            .First());
 }
예제 #3
0
        public QSBSector GetStartPlanetSector()
        {
            var sector = QSBSceneManager.CurrentScene == OWScene.SolarSystem
                ? Locator.GetAstroObject(AstroObject.Name.TimberHearth).GetRootSector()
                : Locator.GetAstroObject(AstroObject.Name.Eye).GetRootSector();

            return(WorldRegistry.GetObjects <QSBSector>()
                   .FirstOrDefault(x => x.Sector == sector));
        }
예제 #4
0
 private void OnSceneLoaded(OWScene scene, bool isInUniverse)
 {
     _elevators = Resources.FindObjectsOfTypeAll <Elevator>().ToList();
     for (var id = 0; id < _elevators.Count; id++)
     {
         var qsbElevator = WorldRegistry.GetObject <QSBElevator>(id) ?? new QSBElevator();
         qsbElevator.Init(_elevators[id], id);
         WorldRegistry.AddObject(qsbElevator);
     }
 }
        private void OnSceneLoaded(OWScene scene, bool isInUniverse)
        {
            var geyserControllers = Resources.FindObjectsOfTypeAll <GeyserController>();

            for (var id = 0; id < geyserControllers.Length; id++)
            {
                var qsbGeyser = WorldRegistry.GetObject <QSBGeyser>(id) ?? new QSBGeyser();
                qsbGeyser.Init(geyserControllers[id], id);
                WorldRegistry.AddObject(qsbGeyser);
            }
        }
예제 #6
0
        private void OnSceneLoaded(OWScene scene, bool isInUniverse)
        {
            var sectors = Resources.FindObjectsOfTypeAll <Sector>().ToList();

            for (var id = 0; id < sectors.Count; id++)
            {
                var qsbSector = WorldRegistry.GetObject <QSBSector>(id) ?? new QSBSector();
                qsbSector.Init(sectors[id], id);
                WorldRegistry.AddObject(qsbSector);
            }
            IsReady = WorldRegistry.GetObjects <QSBSector>().Any();
        }
        public override void OnReceiveRemote(WorldObjectMessage message)
        {
            if (!QSBSceneManager.IsInUniverse)
            {
                return;
            }
            var sector = WorldRegistry.GetObject <QSBSector>(message.ObjectId);

            if (sector == null)
            {
                DebugLog.ToConsole($"Sector with order id {message.ObjectId} not found!", MessageType.Warning);
                return;
            }

            var transformSync = PlayerRegistry.GetSyncObject <TransformSync>(message.AboutId);

            QSB.Helper.Events.Unity.RunWhen(() => transformSync.SyncedTransform != null,
                                            () => transformSync.SetReferenceSector(sector));
        }
        public override void OnReceiveRemote(GeyserMessage message)
        {
            var geyser = WorldRegistry.GetObject <QSBGeyser>(message.ObjectId);

            geyser?.SetState(message.State);
        }