private Transform spawnStructure(StructureRegion region, ushort id, Vector3 point, byte angle_x, byte angle_y, byte angle_z, byte hp, ulong owner, ulong group, uint instanceID) { if (id == 0) { return(null); } ItemStructureAsset itemStructureAsset; try { itemStructureAsset = (ItemStructureAsset)Assets.find(EAssetType.ITEM, id); } catch { itemStructureAsset = null; } if (itemStructureAsset != null) { Transform structure = StructureTool.getStructure(id, hp, owner, group, itemStructureAsset); structure.parent = LevelStructures.models; structure.position = point; structure.rotation = Quaternion.Euler((float)(angle_x * 2), (float)(angle_y * 2), (float)(angle_z * 2)); if (!Dedicator.isDedicated && (itemStructureAsset.construct == EConstruct.FLOOR || itemStructureAsset.construct == EConstruct.FLOOR_POLY)) { LevelGround.bewilder(point); } region.drops.Add(new StructureDrop(structure, instanceID)); StructureManager.structureColliders.Clear(); structure.GetComponentsInChildren <Collider>(StructureManager.structureColliders); for (int i = 0; i < StructureManager.structureColliders.Count; i++) { if (StructureManager.structureColliders[i] is MeshCollider) { StructureManager.structureColliders[i].enabled = false; } if (StructureManager.structureColliders[i] is MeshCollider) { StructureManager.structureColliders[i].enabled = true; } } return(structure); } if (!Provider.isServer) { Provider.connectionFailureInfo = ESteamConnectionFailureInfo.STRUCTURE; Provider.disconnect(); } return(null); }