void Start() { unlocks = GlobalController.save.unlocks; rb2d = GetComponent<Rigidbody2D>(); anim = GetComponent<Animator>(); options = GlobalController.save.options; this.facingRight = false; cyanMaterial = Resources.Load<Material>("Shaders/CyanFlash"); spr = GetComponent<SpriteRenderer>(); defaultMaterial = GetComponent<SpriteRenderer>().material; gunEyes = transform.Find("GunEyes").transform; gun = GetComponentInChildren<Gun>(); interaction = GetComponentInChildren<InteractAppendage>(); lastSafeOffset = this.transform.position; speedLimiter = GetComponent<SpeedLimiter>(); spriteRenderers = new List<SpriteRenderer>(GetComponentsInChildren<SpriteRenderer>(includeInactive:true)); combatActives = GetComponentsInChildren<ActiveInCombat>(includeInactive:true); diamondShine = Resources.Load("Effects/DiamondShine") as GameObject; airAttackTracker = GetComponent<AirAttackTracker>(); RefreshAirMovement(); deathEvent = Resources.Load("ScriptableObjects/Events/Player Death") as GameEvent; groundCheck = GetComponent<PlayerGroundCheck>(); groundData = groundCheck.groundData; LoadFromSaveData(GlobalController.save); EnableTriggers(); }
void Start() { unlocks = GetComponentInParent <PlayerUnlocks>(); rb2d = GetComponent <Rigidbody2D>(); anim = GetComponent <Animator>(); this.facingRight = false; currentHP = unlocks.maxHP; currentEnergy = unlocks.maxEnergy; maxEnergy = 5; cyanMaterial = Resources.Load <Material>("Shaders/CyanFlash"); spr = GetComponent <SpriteRenderer>(); defaultMaterial = GetComponent <SpriteRenderer>().material; gunEyes = transform.Find("GunEyes").transform; gun = GetComponentInChildren <Gun>(); interaction = GetComponentInChildren <InteractAppendage>(); Flip(); ResetAirJumps(); lastSafeOffset = this.transform.position; speedLimiter = GetComponent <SpeedLimiter>(); }
static TcpConnection() { UploadSpeedLimitGlobal = new SpeedLimiter(); DownloadSpeedLimitGlobal = new SpeedLimiter(); _transferAwaitablesPool = new ObjectPool <TransferSocketAwaitable>(() => { if (!_bufferInitialized) { // lock to avoid multiple initialization lock (_transferAwaitablesPool) { if (!_bufferInitialized) { if (_operationBufferLength <= 0) { _operationBufferLength = 64 * 1024; Logger.Info("Using default operation buffer length"); } } _bufferInitialized = true; } } Interlocked.Increment(ref _awaitablesCount); var arg = new SocketAsyncEventArgs(); arg.SetBuffer(new byte[_operationBufferLength], 0, _operationBufferLength); return(new TransferSocketAwaitable(arg)); }); _voidAwaitablesPool = new ObjectPool <VoidSocketAwaitable>(() => { var arg = new SocketAsyncEventArgs(); return(new VoidSocketAwaitable(arg)); }); }
public static AddSettingsModel LoadAddSettings() { AddSettingsModel model = new AddSettingsModel(); try { string filePath = Settings.FilesSavePath + "AddSettings.xml"; XDocument syncTasks = XDocument.Load(filePath); SpeedLimiter speedLimiter = new SpeedLimiter(); XElement xSpeedLimiter = syncTasks.Root.Element("Ограничение_скорости"); if (bool.TryParse(xSpeedLimiter.Element("Ограничение_скачивания").Value, out bool isLimitDownload)) { speedLimiter.IsLimitDownload = isLimitDownload; } if (bool.TryParse(xSpeedLimiter.Element("Ограничение_загрузки").Value, out bool isLimitUpload)) { speedLimiter.IsLimitUpload = isLimitUpload; } if (int.TryParse(xSpeedLimiter.Element("Скорость_скачивания").Value, out int downloadSpeedLimit)) { speedLimiter.DownloadSpeedLimit = downloadSpeedLimit; } if (int.TryParse(xSpeedLimiter.Element("Скорость_загрузки").Value, out int uploadSpeedLimit)) { speedLimiter.UploadSpeedLimit = uploadSpeedLimit; } model.SpeedLimiter = speedLimiter; } catch (Exception e) { LogController.Error(logger, e, $"Не удалось загрузить файл AddSettings.xml"); } return(model); }
public GameObject SpawnJunk(GameObject prefab, Vector3 position) { //Create GameObject junkObject = (GameObject)Instantiate(prefab); //Set position junkObject.transform.position = position; //Track junkSpawnedList.Add(junkObject); //Generator arrow GenerateArrow(junkObject, arrowPrefabJunk); //Set max speed limit SpeedLimiter speedScript = gameObject.GetComponent <SpeedLimiter>(); if (speedScript != null) { speedScript.SetSpeed(GetPlayerOptions().currentSettings.maxJunkSpeed); } return(junkObject); }
public AddSettingsModel() { SpeedLimiter = new SpeedLimiter(); }
private void Initialize() { UploadSpeedLimit = new SpeedLimiter(); DownloadSpeedLimit = new SpeedLimiter(); }
protected async Task CopyStream(Stream responseStream, CancellationToken stopToken) { using (responseStream) { using (var cache = new MemoryStream(CacheSize)) { var buffer = new byte[BufferSize]; var oldTotalDownloaded = TotalDownloaded; var lastSpeedUpdate = DateTime.Now; var endReached = false; int bytesRead; do { // Read data from internet bytesRead = await responseStream.ReadAsync(buffer, 0, buffer.Length, stopToken); // Notify user about new data if (bytesRead > 0) { OnDataAvailable(bytesRead); } lock (this) { // Limit buffer early if we meet the range expected bytes if ((TotalSize > 0) && (TotalDownloaded + bytesRead > TotalSize)) { bytesRead = (int)(TotalSize - TotalDownloaded); if (bytesRead < 0) { throw new DownloadException("Invalid value for the end range."); } endReached = true; } } // Write newly read data to the memory cache await cache.WriteAsync(buffer, 0, bytesRead); _downloaded += bytesRead; TotalDownloaded += bytesRead; // If the connection is closed or canceled, // or if we have meet the end, // or if the memory cache don't have enough space for another full buffer if (endReached || (bytesRead == 0) || stopToken.IsCancellationRequested || (cache.Length < cache.Position + buffer.Length)) { // Dump memory cache to stream var cacheContent = new byte[cache.Position]; cache.Seek(0, SeekOrigin.Begin); await cache.ReadAsync(cacheContent, 0, cacheContent.Length); if (Stream.CanSeek) { Stream.Seek(TotalWritten, SeekOrigin.Begin); } await Stream.WriteAsync(cacheContent, 0, cacheContent.Length); // Reset memory cache cache.Seek(0, SeekOrigin.Begin); TotalWritten += cacheContent.Length; // Notify user OnProgressChanged(); } // Limit the reading speed var limit = SpeedLimiter?.Limit(this); if (limit != null) { await limit; } // Calculating time elapsed since last update var speedUpdateElapsed = (DateTime.Now - lastSpeedUpdate).TotalMilliseconds; // Calculate total download in the elapsed time var downloadedBytes = TotalDownloaded - oldTotalDownloaded; // If necessary, update the speed information if (speedUpdateElapsed > UpdateMillisecond) { lastSpeedUpdate = DateTime.Now; oldTotalDownloaded = TotalDownloaded; // Calculating elapsed fraction var fractionOfSecond = speedUpdateElapsed / 1000d; // Calculating current Bps speed Speed = (long)(downloadedBytes / fractionOfSecond); // Normalizing speed for the last average duration var fractionOfAverage = speedUpdateElapsed / AverageSpeedDurationInMillisecond; AverageSpeed = AverageSpeed > 0 ? (long)(AverageSpeed * (1 - fractionOfAverage) + Speed * fractionOfAverage) : Speed; // Notify user OnProgressChanged(); } } while (!endReached && (bytesRead > 0) && !stopToken.IsCancellationRequested); } } }