public void SpawnBackIngredients(int ingredientId) { Craft_Structure.BuildIngredients buildIngredients = this._requiredIngredients[ingredientId]; ReceipeIngredient receipeIngredient = this._presentIngredients[ingredientId]; if (buildIngredients != null && receipeIngredient != null) { int num = buildIngredients._amount - receipeIngredient._amount; BuildMission.AddNeededToBuildMission(receipeIngredient._itemID, -num, true); int amount = this._presentIngredients[ingredientId]._amount; if (amount > 0) { Transform transform = BoltNetwork.isRunning ? ItemDatabase.ItemById(this._presentIngredients[ingredientId]._itemID)._pickupPrefabMP : ItemDatabase.ItemById(this._presentIngredients[ingredientId]._itemID)._pickupPrefab; if (transform) { Craft_Structure.PickupAxis pickupAxis = this._requiredIngredients[ingredientId]._pickupAxis; float f = (float)amount * 0.428571433f + 1f; int num2 = Mathf.Min(Mathf.RoundToInt(f), 10); int i = 0; while (i < num2) { int num3 = Mathf.RoundToInt((float)i / (float)num2 * (float)amount); int j; for (j = 0; j < this._requiredIngredients[ingredientId]._subIngredients.Count; j++) { if (this._requiredIngredients[ingredientId]._subIngredients[j]._renderers.Length > num3) { Transform transform2 = this._requiredIngredients[ingredientId]._subIngredients[j]._renderers[num3].transform; Transform transform3 = BoltNetwork.isRunning ? BoltNetwork.Instantiate(transform.gameObject).transform : UnityEngine.Object.Instantiate <Transform>(transform); transform3.position = transform2.position; if (pickupAxis != Craft_Structure.PickupAxis.X) { if (pickupAxis != Craft_Structure.PickupAxis.Y) { if (pickupAxis == Craft_Structure.PickupAxis.Z) { transform3.rotation = transform2.rotation; } } else { transform3.rotation = Quaternion.LookRotation(transform2.up); } } else { transform3.rotation = Quaternion.LookRotation(transform2.right); } i++; if (i >= num2) { break; } } else { num3 -= this._requiredIngredients[ingredientId]._subIngredients[j]._renderers.Length; } } if (j >= this._requiredIngredients[ingredientId]._subIngredients.Count) { break; } } } } } }
public void CancelBlueprintSafe() { GameStats.CancelledStructure.Invoke(); for (int i = 0; i < this._requiredIngredients.Count; i++) { Craft_Structure.BuildIngredients buildIngredients = this._requiredIngredients[i]; ReceipeIngredient receipeIngredient = this._presentIngredients[i]; if (buildIngredients != null && receipeIngredient != null) { int num = buildIngredients._amount - receipeIngredient._amount; BuildMission.AddNeededToBuildMission(receipeIngredient._itemID, -num); int amount = this._presentIngredients[i]._amount; if (amount > 0) { Transform transform = BoltNetwork.isRunning ? ItemDatabase.ItemById(this._presentIngredients[i]._itemID)._pickupPrefabMP : ItemDatabase.ItemById(this._presentIngredients[i]._itemID)._pickupPrefab; if (transform) { Craft_Structure.PickupAxis pickupAxis = this._requiredIngredients[i]._pickupAxis; float f = (float)amount * 0.428571433f + 1f; int num2 = Mathf.Min(Mathf.RoundToInt(f), 10); for (int j = 0; j < num2; j++) { int num3 = Mathf.RoundToInt((float)j / (float)num2 * (float)amount); if (this._requiredIngredients[i]._renderers.Length <= num3) { break; } Transform transform2 = this._requiredIngredients[i]._renderers[num3].transform; Transform transform3 = BoltNetwork.isRunning ? BoltNetwork.Instantiate(transform.gameObject).transform : UnityEngine.Object.Instantiate <Transform>(transform); transform3.position = transform2.position; switch (pickupAxis) { case Craft_Structure.PickupAxis.Z: transform3.rotation = transform2.rotation; break; case Craft_Structure.PickupAxis.X: transform3.rotation = Quaternion.LookRotation(transform2.right); break; case Craft_Structure.PickupAxis.Y: transform3.rotation = Quaternion.LookRotation(transform2.up); break; } } } } } } this.CheckText(); this.AllOff(); if (BoltNetwork.isRunning && this.entity.isAttached) { BoltNetwork.Destroy(this.entity); } else { UnityEngine.Object.Destroy(this._ghost); } base.enabled = false; }