private void Awake() { var buttonPositionCenter = new Vector2(0, 0); var buttonSpacing = 104; var parent = GetComponentInChildren <Canvas>().transform; var color = new Color32(189, 255, 255, 255); var text = new GameObject("label", typeof(RectTransform)).AddComponent <Text>(); RectTransformExtensions.SetParams(text.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent); RectTransformExtensions.SetSize(text.rectTransform, 500, 140); text.rectTransform.anchoredPosition = buttonPositionCenter + new Vector2(0, 80); text.color = GetComponentInChildren <Text>().color; text.text = "Position"; text.fontSize = Mathf.FloorToInt(GetComponentInChildren <Text>().fontSize * 1.8f); text.font = GetComponentInChildren <Text>().font; text.alignment = TextAnchor.MiddleCenter; text.raycastTarget = false; for (int i = 0; i < 4; ++i) { var button = CheckboxButton.CreateCheckboxNoText(parent, color, 100); button.Initialize(); button.toggled = false; button.rectTransform.anchoredPosition = buttonPositionCenter + new Vector2((-1.5f + i) * buttonSpacing, 0); var buttonIndex = i; button.onToggled = (bool toggled) => { SetPosition(buttonIndex); }; positionButtons.Add(button); } OnProtoDeserialize(null); }
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 }
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); }