Example #1
0
        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);
        }