///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public static PingColorButton Create(Transform parent, Color color, float iconWidth = 60, float editIconWidth = 30) { var button = new GameObject("ColorButton", typeof(RectTransform)); var rt = button.transform as RectTransform; RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent); RectTransformExtensions.SetSize(rt, iconWidth, iconWidth); rt.anchoredPosition = new Vector2(0, 0); var icon = LockerPrefabShared.CreateIcon(rt, color, 0); icon.gameObject.name = "ColorIcon"; RectTransformExtensions.SetSize(icon.rectTransform, iconWidth, iconWidth); icon.rectTransform.anchoredPosition = new Vector2(0, 0); var editIcon = LockerPrefabShared.CreateIcon(rt, color, 0); editIcon.gameObject.name = "EditIcon"; RectTransformExtensions.SetSize(editIcon.rectTransform, editIconWidth, editIconWidth); editIcon.rectTransform.anchoredPosition = new Vector2(0, 0); editIcon.gameObject.SetActive(false); button.AddComponent <BoxCollider2D>(); var pingColorButton = button.AddComponent <PingColorButton>(); pingColorButton.image = icon; pingColorButton.editImage = editIcon; var layout = pingColorButton.gameObject.AddComponent <LayoutElement>(); layout.ignoreLayout = true; return(pingColorButton); }
/////////////////////////////////////////////////////////////////////////////////////////////////////// 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 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); }
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); }
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public static PickerPageButton Create(Transform parent, Color color, float iconWidth = 20) { var pageButton = new GameObject("PageButton", typeof(RectTransform)); var rt = pageButton.transform as RectTransform; RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent); RectTransformExtensions.SetSize(rt, iconWidth, iconWidth); rt.anchoredPosition = new Vector2(0, 0); var icon = LockerPrefabShared.CreateIcon(rt, color, 0); RectTransformExtensions.SetSize(icon.rectTransform, iconWidth, iconWidth); icon.rectTransform.anchoredPosition = new Vector2(0, 0); pageButton.AddComponent <BoxCollider2D>(); var button = pageButton.AddComponent <PickerPageButton>(); button.image = icon; return(button); }
public static CheckboxButton CreateCheckboxNoText(Transform parent, Color color, float iconWidth) { 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, iconWidth, iconWidth); rt.anchoredPosition = new Vector2(0, 0); var checkbox = LockerPrefabShared.CreateIcon(rt, color, 0); RectTransformExtensions.SetSize(checkbox.rectTransform, iconWidth, iconWidth); checkbox.rectTransform.anchoredPosition = new Vector2(0, 0); checkboxButton.AddComponent <BoxCollider2D>(); var button = checkboxButton.AddComponent <CheckboxButton>(); button.image = checkbox; button.UpColor = color; return(button); }
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public static PickerButton Create(Transform parent, float width, float iconWidth) { var button = new GameObject("PickerButton", typeof(RectTransform)).AddComponent <PickerButton>(); var rt = button.rectTransform; RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent); RectTransformExtensions.SetSize(rt, width, width); var highlight = LockerPrefabShared.CreateIcon(rt, Color.white, 0); RectTransformExtensions.SetParams(highlight.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), button.transform); RectTransformExtensions.SetSize(highlight.rectTransform, width, width); button.highlight = highlight; button.highlight.gameObject.SetActive(false); var image = new GameObject("Image", typeof(RectTransform)).AddComponent <uGUI_Icon>(); RectTransformExtensions.SetParams(image.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), button.transform); RectTransformExtensions.SetSize(image.rectTransform, iconWidth, iconWidth); image.rectTransform.anchoredPosition = new Vector2(0, 0); button.image = image; return(button); }