private void SetupAntenna()
        {
            antenna.name = "antenna";
            antenna.transform.localPosition = new Vector3(0f, -0.19f, 1.34f);
            antenna.transform.localScale    = new Vector3(0.44f, 0.44f, 0.44f);

            UnityEngine.Object.DestroyImmediate(antenna.transform.Find("root/wRod_jnt").gameObject);
            UnityEngine.Object.DestroyImmediate(antenna.transform.Find("root/bulb").gameObject);

            GameObject scanner_root = antenna.transform.Find("root/scanner_root").gameObject;

            scanner_root.transform.localScale = new Vector3(1f, 1.70f, 1f);

            GameObject scanner_headPivot = scanner_root.transform.Find("scanner_headPivot").gameObject;

            scanner_headPivot.transform.localScale = new Vector3(1.2f, 0.70f, 0.70f);

            BoxCollider bc = scanner_headPivot.AddComponent <BoxCollider>();

            bc.center = new Vector3(0f, 0.36f, -0.05f);
            bc.size   = new Vector3(3.73f, 0.33f, 1.68f);

            GameObject antennaModel = antenna.transform.Find("BaseMapRoomExteriorRadar_geo").gameObject;

            antennaModel.name = "antennaModel";

            ColorizationHelper.AddRendererToColorCustomizer(GameObjectClone, antennaModel, false, new int[] { 0 });
            ColorizationHelper.AddRendererToSkyApplier(GameObjectClone, antennaModel, Skies.Auto);

            antenna.SetActive(true);
        }
Beispiel #2
0
        private IEnumerator LoadExosuitResourcesAsync()
        {
            IPrefabRequest request = PrefabDatabase.GetPrefabForFilenameAsync("WorldEntities/Tools/Exosuit.prefab");

            yield return(request);

            if (!request.TryGetPrefab(out GameObject prefab))
            {
                BZLogger.Debug("Cannot load Exosuit prefab!");
                yield break;
            }

            BZLogger.Debug("Exosuit prefab loaded!");

            GameObject exosuitResource = UWE.Utils.InstantiateDeactivated(prefab, transform, Vector3.zero, Quaternion.identity);

            exosuitResource.GetComponent <Exosuit>().enabled       = false;
            exosuitResource.GetComponent <Rigidbody>().isKinematic = true;
            exosuitResource.GetComponent <WorldForces>().enabled   = false;
            UWE.Utils.ZeroTransform(exosuitResource.transform);

            GameObject exoStorage = objectHelper.FindDeepChild(exosuitResource.transform, "Exosuit_01_storage");

            objectHelper.GetPrefabClone(ref exoStorage, StorageLeft.transform, true, "model", out GameObject leftStorageModel);
            leftStorageModel.SetActive(false);

            objectHelper.GetPrefabClone(ref leftStorageModel, StorageRight.transform, true, "model", out GameObject rightStorageModel);
            rightStorageModel.SetActive(false);

            BoxCollider colliderLeft = StorageLeft.AddComponent <BoxCollider>();

            colliderLeft.enabled = false;
            colliderLeft.size    = new Vector3(1.0f, 0.4f, 0.8f);

            BoxCollider colliderRight = StorageRight.AddComponent <BoxCollider>();

            colliderRight.enabled = false;
            colliderRight.size    = new Vector3(1.0f, 0.4f, 0.8f);

            ColorizationHelper.AddRendererToSkyApplier(gameObject, leftStorageModel, Skies.Auto);
            ColorizationHelper.AddRendererToColorCustomizer(gameObject, leftStorageModel, false, new int[] { 0 });

            ColorizationHelper.AddRendererToColorCustomizer(gameObject, rightStorageModel, false, new int[] { 0 });
            ColorizationHelper.AddRendererToSkyApplier(gameObject, rightStorageModel, Skies.Auto);

            Destroy(exosuitResource);

            isGraphicsReady = true;

            yield break;
        }
Beispiel #3
0
        private void Awake()
        {
            helper = SeatruckServices.Main.GetSeaTruckHelper(gameObject);

            objectHelper = Main.graphics.objectHelper;

            vfxConstructing = GetComponent <VFXConstructing>();

            leftArmAttachPoint = objectHelper.CreateGameObject("leftArmAttachPoint", transform, new Vector3(-1.06f, -0.52f, 1.82f), new Vector3(350, 7, 0));
            leftArmAttach      = leftArmAttachPoint.transform;

            GameObject armSocketLeft = Instantiate(Main.graphics.ArmSocket, leftArmAttach);

            armSocketLeft.SetActive(true);
            armSocketLeft.name = "armSocketLeft";
            ColorizationHelper.AddRendererToColorCustomizer(gameObject, armSocketLeft, false, new int[] { 0 });
            ColorizationHelper.AddRendererToSkyApplier(gameObject, armSocketLeft, Skies.Auto);

            LeftSocketMat = armSocketLeft.GetComponent <Renderer>().material;

            rightArmAttachPoint = objectHelper.CreateGameObject("rightArmAttachPoint", transform, new Vector3(1.06f, -0.52f, 1.82f), new Vector3(350, 353, 0));
            rightArmAttach      = rightArmAttachPoint.transform;

            objectHelper.GetPrefabClone(ref armSocketLeft, rightArmAttach, true, "armSocketRight", out GameObject armSocketRight);

            ColorizationHelper.AddRendererToColorCustomizer(gameObject, armSocketRight, false, new int[] { 0 });
            ColorizationHelper.AddRendererToSkyApplier(gameObject, armSocketRight, Skies.Auto);

            armSocketLeft.transform.localPosition = new Vector3(0f, 0.01f, -0.01f);
            armSocketLeft.transform.localScale    = new Vector3(1.17f, 1.50f, 1.50f);
            armSocketLeft.transform.localRotation = Quaternion.Euler(90, 0, 0);

            RightSocketMat = armSocketRight.GetComponent <Renderer>().material;

            armSocketRight.transform.localPosition = new Vector3(0f, 0.01f, -0.01f);
            armSocketRight.transform.localScale    = new Vector3(-1.17f, 1.50f, 1.50f);
            armSocketRight.transform.localRotation = Quaternion.Euler(90, 0, 0);

            GameObject leftAimForward = objectHelper.CreateGameObject("leftAimForward", transform);

            aimTargetLeft = leftAimForward.transform;

            GameObject rightAimForward = objectHelper.CreateGameObject("rightAimForward", transform);

            aimTargetRight = rightAimForward.transform;
        }