public override async UniTask Init(CancellationToken ct) { if (AttachedObject == null) { DebugLog.ToConsole($"Error - AttachedObject is null! Type:{GetType().Name}", OWML.Common.MessageType.Error); return; } await UniTask.WaitUntil(() => QSBWorldSync.AllObjectsAdded, cancellationToken : ct); InitialParent = AttachedObject.transform.parent; InitialPosition = AttachedObject.transform.localPosition; InitialRotation = AttachedObject.transform.localRotation; var initialSector = AttachedObject.GetSector(); if (initialSector != null) { InitialSector = initialSector.GetWorldObject <QSBSector>(); } if (InitialParent == null) { DebugLog.ToConsole($"Warning - InitialParent of {AttachedObject.name} is null!", OWML.Common.MessageType.Warning); } if (InitialParent?.GetComponent <OWItemSocket>() != null) { var qsbObj = InitialParent.GetComponent <OWItemSocket>().GetWorldObject <QSBItemSocket>(); InitialSocket = qsbObj; } QSBPlayerManager.OnRemovePlayer += OnPlayerLeave; }
/// <summary> /// use this instead of SetReferenceTransform /// </summary> public void SetReferenceSector(QSBSector sector) { if (ReferenceSector == sector) { return; } ReferenceSector = sector; SetReferenceTransform(sector?.Transform); }
private WorldObjectMessage CreateMessage(uint netId, QSBSector sector) => new WorldObjectMessage { AboutId = netId, ObjectId = sector.ObjectId };
private void SendSector(uint id, QSBSector sector) => QSBEventManager.FireEvent(EventNames.QSBSectorChange, id, sector);
private void Handler(uint netId, QSBSector sector) => SendEvent(CreateMessage(netId, sector));