using System; using Edgegap.Editor.Api.Models; namespace Edgegap.Editor { /// /// Contains static metadata / options for the EdgegapWindowV2 UI. /// - Notable: /// * SHOW_DEBUG_BTN /// * LOG_LEVEL /// * DEFAULT_VERSION_TAG /// * SKIP_SERVER_BUILD_WHEN_PUSHING /// * SKIP_DOCKER_IMAGE_BUILD_WHEN_PUSHING /// public static class EdgegapWindowMetadata { #region Debug /// Log Debug+, or Errors only? public enum LogLevel { Debug, Error, } /// /// Set to Debug to show more logs. Default `Error`. /// - Error level includes "potentially-intentional" (!fatal) errors logged with Debug.Log /// - TODO: Move opt to UI? /// public const LogLevel LOG_LEVEL = LogLevel.Error; /// /// Set to show a debug button at the top-right for arbitrary testing. /// Default enables groups. Default `false`. /// public const bool SHOW_DEBUG_BTN = false; /// /// When running a Docker-based "Build & Push" flow, skip building the Unity server binary /// (great for testing push flow). Default false. /// public static readonly bool SKIP_SERVER_BUILD_WHEN_PUSHING = false; // MIRROR CHANGE: 'const' changed to 'static readonly' to avoid 'unreachable code detected' warning /// /// When running a Docker-based "Build & Push" flow, skip building the Docker image /// (great for testing registry login mechanics). Default false. /// public static readonly bool SKIP_DOCKER_IMAGE_BUILD_WHEN_PUSHING = false; // MIRROR CHANGE: 'const' changed to 'static readonly' to avoid 'unreachable code detected' warning #endregion // Debug /// Interval at which the server status is updated public const int SERVER_STATUS_CRON_JOB_INTERVAL_MS = 10000; public const int PORT_DEFAULT = 7770; public const int PORT_MIN = 1024; public const int PORT_MAX = 49151; public const int DEPLOYMENT_AWAIT_READY_STATUS_TIMEOUT_MINS = 1; public const int DEPLOYMENT_READY_STATUS_POLL_SECONDS = 2; public const int DEPLOYMENT_STOP_STATUS_POLL_SECONDS = 2; public const ProtocolType DEFAULT_PROTOCOL_TYPE = ProtocolType.UDP; public const string READY_STATUS = "Status.READY"; public const string EDGEGAP_GET_A_TOKEN_URL = "https://app.edgegap.com/?oneClick=true"; public const string EDGEGAP_ADD_MORE_GAME_SERVERS_URL = "https://edgegap.com/en/resources/contact"; public const string EDGEGAP_DOC_BTN_HOW_TO_LOGIN_VIA_CLI_URL = "https://docs.edgegap.com/docs/container/edgegap-container-registry/#getting-your-credentials"; public const string DEFAULT_VERSION_TAG = "latest"; public const string LOADING_RICH_STR = "Loading..."; public const string PROCESSING_RICH_STR = "Processing..."; public const string DEPLOY_REQUEST_RICH_STR = "Requesting Deploy..."; #region Colors /// Earthy lime green public const string SUCCESS_COLOR_HEX = "#8AEE8C"; /// Calming light orange public const string WARN_COLOR_HEX = "#EEC58A"; /// Vivid blood orange public const string FAIL_COLOR_HEX = "#EE9A8A"; /// Corn yellow public const string PROCESSING_COLOR_HEX = "#EEEA8A"; public enum StatusColors { /// CornYellow Processing, /// EarthyLimeGreen Success, /// CalmingLightOrange Warn, /// VividBloodOrange Error, } /// Wraps string in color rich text public static string WrapRichTextInColor(string str, StatusColors statusColor) { switch (statusColor) { case StatusColors.Processing: return $"{str}"; case StatusColors.Success: return $"{str}"; case StatusColors.Warn: return $"{str}"; case StatusColors.Error: return $"{str}"; default: throw new ArgumentOutOfRangeException(nameof(statusColor), statusColor, null); } } #endregion // Colors #region Player Pref Key Ids for persistence /// Cached as base64 public const string API_TOKEN_KEY_STR = "ApiToken"; public const string DEPLOYMENT_REQUEST_ID_KEY_STR = "DeploymentRequestId"; public const string DEPLOYMENT_CONNECTION_URL_KEY_STR = "DeploymentConnectionUrlLabel"; public const string DEPLOYMENT_CONNECTION_STATUS_KEY_STR = "DeploymentsConnectionStatusLabel"; #endregion // Editor Pref Key Ids for persistence #region UI Element Ids public const string DEBUG_BTN_ID = "DebugBtn"; public const string API_TOKEN_TXT_ID = "ApiTokenMaskedTxt"; public const string API_TOKEN_VERIFY_BTN_ID = "ApiTokenVerifyPurpleBtn"; public const string API_TOKEN_GET_BTN_ID = "ApiTokenGetBtn"; public const string POST_AUTH_CONTAINER_ID = "PostAuthContainer"; public const string APP_INFO_FOLDOUT_ID = "ApplicationInfoFoldout"; public const string APP_NAME_TXT_ID = "ApplicationNameTxt"; public const string APP_LOAD_EXISTING_BTN_ID = "AppLoadExistingBtn"; public const string APP_ICON_SPRITE_OBJ_ID = "ApplicationIconSprite"; public const string APP_CREATE_BTN_ID = "ApplicationCreateBtn"; public const string APP_CREATE_RESULT_LABEL_ID = "ApplicationCreateResultLabel"; public const string CONTAINER_REGISTRY_FOLDOUT_ID = "ContainerRegistryFoldout"; public const string CONTAINER_REGISTRY_PORT_NUM_ID = "ContainerRegistryPortNumTxt"; public const string CONTAINER_REGISTRY_TRANSPORT_TYPE_ENUM_ID = "ContainerRegistryProtocolTypeEnumField"; public const string CONTAINER_NEW_TAG_VERSION_TXT_ID = "ContainerNewVersionTagTxt"; public const string CONTAINER_USE_CUSTOM_REGISTRY_TOGGLE_ID = "ContainerUseCustomRegistryToggle"; public const string CONTAINER_CUSTOM_REGISTRY_WRAPPER_ID = "ContainerCustomRegistryWrapper"; public const string CONTAINER_REGISTRY_URL_TXT_ID = "ContainerRegistryUrlTxt"; public const string CONTAINER_IMAGE_REPOSITORY_URL_TXT_ID = "ContainerImageRepositoryTxt"; public const string CONTAINER_USERNAME_TXT_ID = "ContainerUsernameTxt"; public const string CONTAINER_TOKEN_TXT_ID = "ContainerTokenTxt"; public const string CONTAINER_BUILD_AND_PUSH_BTN_ID = "ContainerBuildAndPushBtn"; public const string CONTAINER_BUILD_AND_PUSH_RESULT_LABEL_ID = "ContainerBuildAndPushResultLabel"; public const string DEPLOYMENTS_FOLDOUT_ID = "DeploymentsFoldout"; public const string DEPLOYMENTS_REFRESH_BTN_ID = "DeploymentsRefreshBtn"; public const string DEPLOYMENTS_CREATE_BTN_ID = "DeploymentsCreateBtn"; public const string DEPLOYMENTS_STATUS_LABEL_ID = "DeploymentsStatusLabel"; public const string DEPLOYMENTS_CONTAINER_ID = "DeploymentsConnectionGroupBox"; public const string DEPLOYMENTS_CONNECTION_COPY_URL_BTN_ID = "DeploymentConnectionCopyUrlBtn"; public const string DEPLOYMENTS_CONNECTION_URL_READONLY_TXT_ID = "DeploymentConnectionUrlReadOnlyTxt"; // Dynamic public const string DEPLOYMENTS_CONNECTION_STATUS_LABEL_ID = "DeploymentsConnectionStatusLabel"; // Dynamic public const string DEPLOYMENTS_CONNECTION_SERVER_ACTION_STOP_BTN_ID = "DeploymentsConnectionServerStopBtn"; public const string FOOTER_DOCUMENTATION_BTN_ID = "FooterDocumentationBtn"; public const string FOOTER_NEED_MORE_GAME_SERVERS_BTN_ID = "FooterNeedMoreGameServersBtn"; #endregion // UI Element Ids //[Obsolete("Hard-coded; not from UI. TODO: Get from UI")] // MIRROR CHANGE: comment this out to avoid import warnings public const ApiEnvironment API_ENVIRONMENT = ApiEnvironment.Console; } }