chip-game/Assets/Scripts/Server/SettingsToHtml.cs

90 lines
2.8 KiB
C#

using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.Text;
using UnityEngine;
public class SettingsToHtml : MonoBehaviour
{
public static string GetSettingsString(List<Setting> settings)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine("Настройки фишки:");
foreach (Setting setting in settings)
{
if(setting.Type== SettingType.Bool)
{
string boolView = GetBoolView(setting);
sb.AppendLine(boolView);
}
else if(setting.Type == SettingType.Float)
{
string view = GetFloatView(setting);
sb.AppendLine(view);
}
else
{
sb.AppendLine($"<p>{setting.Alias}: {GetStringSettingValue(setting)}</p>");
}
}
return sb.ToString();
}
private static string GetStringSettingValue(Setting setting)
{
if (setting.Type == SettingType.Bool)
{
return setting.BoolValue ? "true" : "false";
}
else if (setting.Type == SettingType.String)
{
return setting.StringValue;
}
else if (setting.Type == SettingType.Int)
{
return setting.IntValue.ToString();
}
else if (setting.Type == SettingType.Float)
{
return setting.FloatValue.ToString();
}
else
{
return "Непонятый гений...";
}
}
private static string GetBoolView(Setting setting)
{
string res = string.Empty;
res += "<div class=\"form-group\" style=\"border: 2px solid black;border-radius: 5px;\">";
res += $"<label for=\"{setting.Id}\">{setting.Alias}</label>";
string ischecked = setting.BoolValue ? "checked" : "";
res += $"<input type=\"checkbox\" name=\"Голосовые реплики\" id=\"{setting.Id}\" {ischecked}>";
res += "</div>";
return res;
}
private static string GetFloatView(Setting setting)
{
string res = string.Empty;
res += "<div class=\"form-group\" style=\"border: 2px solid black;border-radius: 5px;\">";
res += $"<label for=\"{setting.Id}\">{setting.Alias}</label>";
//res += $"<input type=\"range\" name=\"{setting.id}\" id=\"{setting.Id}\" >";
res += $"<input id=\"{setting.Id}\" type=\"range\" min=\"{setting.FloatMin.ToString(CultureInfo.InvariantCulture)}\" max=\"{setting.FloatMax.ToString(CultureInfo.InvariantCulture)}\" value=\"{setting.FloatValue.ToString(CultureInfo.InvariantCulture)}\" step=\"{setting.FloatStep.ToString(CultureInfo.InvariantCulture)}\">";
res += "</div>";
return res;
}
}