public void SpawnPartReal(EffigyArchitect.Part part, bool mp_addpart) { if (BoltNetwork.isRunning && mp_addpart) { this._parts.Add(part); } Item item = (part._itemId <= 0) ? null : ItemDatabase.ItemById(part._itemId); Transform transform = null; if (item != null && item._bareItemPrefab) { transform = item._bareItemPrefab; if (transform && item._id != this._baseItemId) { if (this._effigyRange.radius < 10f) { this._effigyRange.radius = 10f; } if (this._effigyRange.radius < 80f) { this._canLight = true; this._enableEffigy.lightBool = false; this._effigyRange.radius += 1.5f; this._enableEffigy.duration = Mathf.Clamp(this._enableEffigy.duration + 15f, 600f, 1200f); } if (this._enableEffigy.duration < 1200f) { this._enableEffigy.duration += 50f; } } } else if (part._itemId == -2) { transform = Prefabs.Instance.TorsoPrefab; if (transform) { if (this._effigyRange.radius < 10f) { this._effigyRange.radius = 10f; } if (this._effigyRange.radius < 80f) { this._canLight = true; this._enableEffigy.lightBool = false; this._effigyRange.radius += 3f; } if (this._enableEffigy.duration < 1200f) { this._enableEffigy.duration += 50f; } } } if (transform) { Transform transform2 = UnityEngine.Object.Instantiate<Transform>(transform); transform2.position = part._position; transform2.rotation = Quaternion.Euler(part._rotation.x, part._rotation.y, part._rotation.z); transform2.parent = base.transform; if (BoltNetwork.isServer) { BoltNetwork.Attach(transform2.gameObject).GetComponent<BoltEntity>().GetState<IPartState>().Effigy = base.GetComponentInParent<BoltEntity>(); } } }
private void SpawnPart(EffigyArchitect.Part part) { if (BoltNetwork.isRunning) { AddEffigyPart addEffigyPart = AddEffigyPart.Create(GlobalTargets.OnlyServer); addEffigyPart.Effigy = base.GetComponentInParent<BoltEntity>(); addEffigyPart.ItemId = part._itemId; addEffigyPart.Position = part._position; addEffigyPart.Rotation = part._rotation; addEffigyPart.Send(); } else { this.SpawnPartReal(part, false); } }