public override GameObject GetGameObject() { //Instantiates a copy of the prefab that is loaded from the AssetBundle loaded above. GameObject _prefab = GameObject.Instantiate(Utils.Helper.Bundle.LoadAsset <GameObject>("HabitatTest.prefab")); _prefab.name = Constant.HabitatTest_ClassID; //Need a tech tag for most prefabs var techTag = _prefab.AddComponent <TechTag>(); techTag.type = TechType; _prefab.EnsureComponent <LargeWorldEntity>().cellLevel = LargeWorldEntity.CellLevel.Global; _prefab.EnsureComponent <PrefabIdentifier>().ClassId = ClassID; //Collider for the turbine pole and builder tool //var collider = _prefab.AddComponent<BoxCollider>(); //collider.center = new Vector3(-0.1f, 1.2f, 00f); //collider.size = new Vector3(3f, 2.35f, 2f); //Update all shaders ApplySubnauticaShaders(_prefab); // Add constructable - This prefab normally isn't constructed. ConstructableBase constructible = _prefab.AddComponent <ConstructableBase>(); constructible.constructedAmount = 1; constructible.allowedInBase = false; constructible.allowedInSub = false; constructible.allowedOutside = true; constructible.allowedOnCeiling = false; constructible.allowedOnGround = true; constructible.allowedOnWall = false; constructible.allowedOnConstructables = false; constructible.techType = this.TechType; constructible.rotationEnabled = true; constructible.placeDefaultDistance = 6f; constructible.placeMinDistance = 0.5f; constructible.placeMaxDistance = 15f; constructible.surfaceType = VFXSurfaceTypes.metal; constructible.model = _prefab;//.transform.GetChild(0).gameObject; constructible.forceUpright = true; //_prefab.AddComponent<LayerSelector>(); //_prefab.AddComponent<Rigidbody>(); //var constructableBase = _prefab.AddComponent<ConstructableBase>(); //var prefabIdentifier = _prefab.AddComponent<PrefabIdentifier>(); PowerRelay baseRoom = CraftData.GetPrefabForTechType(TechType.BaseRoom).GetComponent <PowerRelay>(); var baseGhost = GameObjectFinder.FindByName(_prefab, "Habitat_Proxy"); var baseG = baseGhost.AddComponent <global::Base>(); baseG = baseRoom.GetComponent <global::Base>(); //baseG.isGhost = false; var baseGC = baseGhost.AddComponent <BaseAddCellGhost>(); baseGC = baseRoom.GetComponent <BaseAddCellGhost>(); //baseGC.cellType = Base.CellType.Moonpool; //baseGC.minHeightFromTerrain = 2; //baseGC.maxHeightFromTerrain = 10; //_prefab.AddComponent<BehaviourLOD>(); //_prefab.AddComponent<PowerRelay>(); //_prefab.AddComponent<LiveMixin>(); //_prefab.AddComponent<Stabilizer>(); //_prefab.AddComponent<DealDamageOnImpact>(); //_prefab.AddComponent<SubWaterPlane>(); //_prefab.AddComponent<CrushDamage>(); return(_prefab); }