public override IEnumerator GetGameObjectAsync(IOut<GameObject> gameObject)
			{
				CoroutineTask<GameObject> task = CraftData.GetPrefabForTechTypeAsync(TechType.SmallLocker);
				yield return task;
				var smallLockerPrefab = task.GetResult();
				GameObject prefab = GameObject.Instantiate(smallLockerPrefab);
				var storageAccess = prefab.EnsureComponent<VehicleStorageAccess>();
				storageAccess.textPrefab = GameObject.Instantiate(smallLockerPrefab.GetComponentInChildren<TextMeshProUGUI>());
#endif

				var container = prefab.EnsureComponent<StorageContainer>();
				container.width = Mod.config.LockerWidth;
				container.height = Mod.config.LockerHeight;
				container.container.Resize(Mod.config.LockerWidth, Mod.config.LockerHeight);

				var meshRenderers = prefab.GetComponentsInChildren<MeshRenderer>();
				foreach (var meshRenderer in meshRenderers)
				{
					meshRenderer.material.color = new Color(0, 0, 1);
				}

				var label = prefab.FindChild("Label");
				DestroyImmediate(label);

				var canvas = LockerPrefabShared.CreateCanvas(prefab.transform);
				storageAccess.background = LockerPrefabShared.CreateBackground(canvas.transform);
				storageAccess.icon = LockerPrefabShared.CreateIcon(storageAccess.background.transform, PrimaryColor, 15);
				storageAccess.text = LockerPrefabShared.CreateText(storageAccess.background.transform, storageAccess.textPrefab, PrimaryColor, -40, 10, "");
				storageAccess.seamothIcon = LockerPrefabShared.CreateIcon(storageAccess.background.transform, PrimaryColor, 80);
				storageAccess.seamothCountText = LockerPrefabShared.CreateText(storageAccess.background.transform, storageAccess.textPrefab, PrimaryColor, 55, 10, "none");
				storageAccess.exosuitIcon = LockerPrefabShared.CreateIcon(storageAccess.background.transform, PrimaryColor, 80);
				storageAccess.exosuitCountText = LockerPrefabShared.CreateText(storageAccess.background.transform, storageAccess.textPrefab, PrimaryColor, 55, 10, "none");

				storageAccess.seamothIcon.rectTransform.anchoredPosition += new Vector2(-23, 0);
				storageAccess.seamothCountText.rectTransform.anchoredPosition += new Vector2(-23, 0);
				storageAccess.exosuitIcon.rectTransform.anchoredPosition += new Vector2(23, 0);
				storageAccess.exosuitCountText.rectTransform.anchoredPosition += new Vector2(23, 0);

				if (Mod.config.UseAutosortMod)
				{
					storageAccess.autosortCheckbox = CheckboxButton.CreateCheckbox(storageAccess.background.transform, PrimaryColor, storageAccess.textPrefab, "Autosort");
					storageAccess.autosortCheckbox.transform.localPosition = new Vector3(0, -104 + 19);
				}

				storageAccess.enableCheckbox = CheckboxButton.CreateCheckbox(storageAccess.background.transform, PrimaryColor, storageAccess.textPrefab, "Enabled");
				storageAccess.enableCheckbox.transform.localPosition = new Vector3(0, -104);

				storageAccess.background.gameObject.SetActive(false);

#if SN1
				return prefab;
#elif BZ
				gameObject.Set(prefab);
#endif
			}
Exemplo n.º 2
0
        public static GameObject GetPrefab()
        {
            GameObject originalPrefab = Resources.Load <GameObject>("Submarine/Build/SmallLocker");
            GameObject prefab         = GameObject.Instantiate(originalPrefab);

            prefab.name = "VehicleStorageAccess";

            var container = prefab.GetComponent <StorageContainer>();

            container.width  = Mod.config.LockerWidth;
            container.height = Mod.config.LockerHeight;
            container.container.Resize(Mod.config.LockerWidth, Mod.config.LockerHeight);

            var meshRenderers = prefab.GetComponentsInChildren <MeshRenderer>();

            foreach (var meshRenderer in meshRenderers)
            {
                meshRenderer.material.color = new Color(0, 0, 1);
            }

            var storageAccess = prefab.AddComponent <VehicleStorageAccess>();

            storageAccess.textPrefab = GameObject.Instantiate(prefab.GetComponentInChildren <Text>());
            var label = prefab.FindChild("Label");

            DestroyImmediate(label);

            var canvas = LockerPrefabShared.CreateCanvas(prefab.transform);

            storageAccess.background       = LockerPrefabShared.CreateBackground(canvas.transform);
            storageAccess.icon             = LockerPrefabShared.CreateIcon(storageAccess.background.transform, PrimaryColor, 15);
            storageAccess.text             = LockerPrefabShared.CreateText(storageAccess.background.transform, storageAccess.textPrefab, PrimaryColor, -40, 10, "");
            storageAccess.seamothIcon      = LockerPrefabShared.CreateIcon(storageAccess.background.transform, PrimaryColor, 80);
            storageAccess.seamothCountText = LockerPrefabShared.CreateText(storageAccess.background.transform, storageAccess.textPrefab, PrimaryColor, 55, 10, "none");
            storageAccess.exosuitIcon      = LockerPrefabShared.CreateIcon(storageAccess.background.transform, PrimaryColor, 80);
            storageAccess.exosuitCountText = LockerPrefabShared.CreateText(storageAccess.background.transform, storageAccess.textPrefab, PrimaryColor, 55, 10, "none");

            storageAccess.seamothIcon.rectTransform.anchoredPosition      += new Vector2(-23, 0);
            storageAccess.seamothCountText.rectTransform.anchoredPosition += new Vector2(-23, 0);
            storageAccess.exosuitIcon.rectTransform.anchoredPosition      += new Vector2(23, 0);
            storageAccess.exosuitCountText.rectTransform.anchoredPosition += new Vector2(23, 0);

#if USE_AUTOSORT
            storageAccess.autosortCheckbox = CheckboxButton.CreateCheckbox(storageAccess.background.transform, PrimaryColor, storageAccess.textPrefab, "Autosort");
            storageAccess.autosortCheckbox.transform.localPosition = new Vector3(0, -104 + 19);
#endif

            storageAccess.enableCheckbox = CheckboxButton.CreateCheckbox(storageAccess.background.transform, PrimaryColor, storageAccess.textPrefab, "Enabled");
            storageAccess.enableCheckbox.transform.localPosition = new Vector3(0, -104);

            storageAccess.background.gameObject.SetActive(false);

            return(prefab);
        }