///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public static CheckboxButton CreateCheckbox(Transform parent, Color color, Text textPrefab, string label, float width = 100) { var checkboxButton = new GameObject("Checkbox", typeof(RectTransform)); var rt = checkboxButton.transform as RectTransform; RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent); RectTransformExtensions.SetSize(rt, width, 20); rt.anchoredPosition = new Vector2(0, 0); var iconWidth = 20; var checkbox = LockerPrefabShared.CreateIcon(rt, color, 0); RectTransformExtensions.SetSize(checkbox.rectTransform, iconWidth, iconWidth); checkbox.rectTransform.anchoredPosition = new Vector2(-width / 2 + iconWidth / 2, 0); var spacing = 5; var text = LockerPrefabShared.CreateText(rt, textPrefab, color, 0, 10, label); RectTransformExtensions.SetSize(text.rectTransform, width - iconWidth - spacing, iconWidth); text.rectTransform.anchoredPosition = new Vector2(iconWidth / 2 + spacing, 0); text.alignment = TextAnchor.MiddleLeft; checkboxButton.AddComponent <BoxCollider2D>(); var button = checkboxButton.AddComponent <CheckboxButton>(); button.image = checkbox; button.text = text; button.UpColor = color; return(button); }
/////////////////////////////////////////////////////////////////////////////////////////////////////// protected static void Create(Transform parent, Picker instance, int buttonCount) { var lockerPrefab = Resources.Load <GameObject>("Submarine/Build/SmallLocker"); var textPrefab = Instantiate(lockerPrefab.GetComponentInChildren <Text>()); textPrefab.fontSize = 16; textPrefab.color = ScreenContentColor; float padding = 30; float width = padding + instance.ButtonSize + ((instance.ButtonsPerRow - 1) * instance.Spacing); int rowCount = Mathf.CeilToInt(instance.ButtonsPerPage / (float)instance.ButtonsPerRow); float height = padding + instance.ButtonSize + ((rowCount - 0.5f) * instance.Spacing) - 10; var rt = instance.rectTransform; RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent); RectTransformExtensions.SetSize(rt, width, height); instance.background = instance.gameObject.AddComponent <Image>(); instance.background.type = Image.Type.Sliced; instance.background.rectTransform.anchoredPosition = new Vector2(0, -20); instance.pageText = LockerPrefabShared.CreateText(instance.transform, textPrefab, Color.white, 0, 10, "X/X"); RectTransformExtensions.SetSize(instance.pageText.rectTransform, 30, 20); for (int i = 0; i < buttonCount; ++i) { var colorButton = PickerButton.Create(instance.transform, instance.ButtonSize, instance.ButtonSize * 0.7f); instance.buttons.Add(colorButton); } instance.prevPageButton = PickerPageButton.Create(instance.transform, Color.white); instance.nextPageButton = PickerPageButton.Create(instance.transform, Color.white); }
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); }