public override void Load(LoadInfo info) { base.Load(info); if (info.msg.marketTerminal == null) { return; } _customerSteamId = info.msg.marketTerminal.customerSteamId; _customerName = info.msg.marketTerminal.customerName; _timeUntilCustomerExpiry = info.msg.marketTerminal.timeUntilExpiry; _marketplace = new EntityRef <Marketplace>(info.msg.marketTerminal.marketplaceId); if (pendingOrders == null) { pendingOrders = Facepunch.Pool.GetList <ProtoBuf.MarketTerminal.PendingOrder>(); } if (pendingOrders.Count > 0) { foreach (ProtoBuf.MarketTerminal.PendingOrder pendingOrder in pendingOrders) { ProtoBuf.MarketTerminal.PendingOrder obj = pendingOrder; Facepunch.Pool.Free(ref obj); } pendingOrders.Clear(); } foreach (ProtoBuf.MarketTerminal.PendingOrder order in info.msg.marketTerminal.orders) { ProtoBuf.MarketTerminal.PendingOrder item = order.Copy(); pendingOrders.Add(item); } }
private void ClearRestriction() { if (_customerSteamId != 0L) { _customerSteamId = 0uL; _customerName = null; _timeUntilCustomerExpiry = 0f; SendNetworkUpdateImmediate(); } }
private void DoMovementToEnd() { _distance = Vector3.Distance(MoverTransform.position, end); if (_distance > stoppingDistamce) { if (smoothMovement) { MoverTransform.position = Vector3.Lerp(MoverTransform.position, end, moveSpeed * Time.deltaTime); } else { MoverTransform.position = Vector3.MoveTowards(MoverTransform.position, end, moveSpeed * Time.deltaTime); } } else { if (!_startedTimer) { _startedTimer = true; _timeUntil = delay; } if (_startedTimer && _timeUntil <= 0) { if (interactionType == InteractionType.Always) { if (loopType == LoopType.OneLoop || loopType == LoopType.PingPong) { _moverState = MoverState.GoToStart; } } if (interactionType == InteractionType.Activate /*&& _canMove*/) { if (loopType == LoopType.OneLoop || loopType == LoopType.PingPong) { if (staysOpenLikeDoor) { return; } if (!staysOpenLikeDoor) { _moverState = MoverState.GoToStart; } } } _startedTimer = false; } } }
private void DoMovementToStart() { _distance = Vector3.Distance(MoverTransform.position, start); if (_distance > stoppingDistamce) { if (smoothMovement) { MoverTransform.position = Vector3.Lerp(MoverTransform.position, start, moveSpeed * Time.deltaTime); } else { MoverTransform.position = Vector3.MoveTowards(MoverTransform.position, start, moveSpeed * Time.deltaTime); } } else { if (!_startedTimer) { _startedTimer = true; _timeUntil = delay; } if (_startedTimer && _timeUntil <= 0) { /* * if(loopType == LoopType.PingPong) * _moverState = MoverState.CompletedLoop; * _startedTimer = false; */ if (interactionType == InteractionType.Always) { if (loopType == LoopType.OneLoop || loopType == LoopType.PingPong) { _moverState = MoverState.CompletedLoop; } } if (interactionType == InteractionType.Activate && _canMove) { if (loopType == LoopType.OneLoop || loopType == LoopType.PingPong) { _moverState = MoverState.CompletedLoop; } } _startedTimer = false; } } }
public void UpdateMovement() { if ((float)nextPlayerCheck <= 0f) { nextPlayerCheck = Random.Range(0.5f, 1f); junkpileWaterWorkQueue.Add(this); } if (isSinking || !hasPlayersNearby) { return; } float height = WaterSystem.GetHeight(base.transform.position); base.transform.position = new Vector3(base.transform.position.x, height, base.transform.position.z); if (buoyancyPoints != null && buoyancyPoints.Length >= 3) { Vector3 position = base.transform.position; Vector3 localPosition = buoyancyPoints[0].localPosition; Vector3 localPosition2 = buoyancyPoints[1].localPosition; Vector3 localPosition3 = buoyancyPoints[2].localPosition; Vector3 vector = localPosition + position; Vector3 vector2 = localPosition2 + position; Vector3 vector3 = localPosition3 + position; vector.y = WaterSystem.GetHeight(vector); vector2.y = WaterSystem.GetHeight(vector2); vector3.y = WaterSystem.GetHeight(vector3); Vector3 position2 = new Vector3(position.x, vector.y - localPosition.y, position.z); Vector3 rhs = vector2 - vector; Vector3 vector4 = Vector3.Cross(vector3 - vector, rhs); Vector3 eulerAngles = Quaternion.LookRotation(new Vector3(vector4.x, vector4.z, vector4.y)).eulerAngles; Quaternion quaternion = Quaternion.Euler(0f - eulerAngles.x, 0f, 0f - eulerAngles.y); if (first) { baseRotation = Quaternion.Euler(0f, base.transform.rotation.eulerAngles.y, 0f); first = false; } base.transform.SetPositionAndRotation(position2, quaternion * baseRotation); } }
private void RestrictToPlayer(BasePlayer player) { if (_customerSteamId == player.userID) { _timeUntilCustomerExpiry = lockToCustomerDuration; SendNetworkUpdate(); return; } if (_customerSteamId != 0L) { Debug.LogError("Overwriting player restriction! It should be cleared first.", this); } _customerSteamId = player.userID; _customerName = player.displayName; _timeUntilCustomerExpiry = lockToCustomerDuration; SendNetworkUpdateImmediate(); ClientRPC(null, "Client_CloseMarketUI", _customerSteamId); RemoveAnyLooters(); if (IsOpen()) { Debug.LogError("Market terminal's inventory is still open after removing looters!", this); } }
public void UpdateDropToGroundForDuration(float duration) { dropUntilTime = duration; }