248 lines
8.4 KiB
C#
248 lines
8.4 KiB
C#
using System;
|
|
using System.IO;
|
|
using UnityEngine;
|
|
|
|
public static class ExternalFilesGetter
|
|
{
|
|
const string GAMEDATA_FOLDER = "C4";
|
|
const string SERIAL_PATH = "serialdata.dat";
|
|
const string OVERRIDES_FILE = "overrides/Light.conf";
|
|
const string ELEKTRO_VERSION_FILE = "elektro_version.rr";
|
|
const string SENSOR_VERSION_FILE = "HopperSensor.rr";
|
|
const string SETTINGS_PASSWORD = "SettingsPwd.rr";
|
|
|
|
|
|
|
|
|
|
|
|
public static string GetSerial()
|
|
{
|
|
string docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
|
|
string filePath = Path.Combine(docPath, GAMEDATA_FOLDER, SERIAL_PATH);
|
|
|
|
try
|
|
{
|
|
// Проверяем существование файла
|
|
if (!File.Exists(filePath))
|
|
{
|
|
Debug.LogWarning($"Файл serialdata.dat не найден по пути: {filePath}");
|
|
return "<не указано>";
|
|
}
|
|
|
|
// Читаем весь текст из файла
|
|
string serialData = File.ReadAllText(filePath);
|
|
|
|
// Убираем лишние пробелы и проверяем на пустоту
|
|
if (string.IsNullOrWhiteSpace(serialData))
|
|
{
|
|
Debug.LogWarning("Файл serialdata.dat пуст");
|
|
return "<не указано>";
|
|
}
|
|
|
|
return serialData.Trim();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Debug.LogError($"Ошибка при чтении файла serialdata.dat: {ex.Message}");
|
|
return "<не указано>";
|
|
}
|
|
}
|
|
|
|
public static string GetLightVersion()
|
|
{
|
|
string docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
|
|
string filePath = Path.Combine(docPath, GAMEDATA_FOLDER, OVERRIDES_FILE);
|
|
|
|
try
|
|
{
|
|
// Проверяем существование файла
|
|
if (!File.Exists(filePath))
|
|
{
|
|
Debug.LogWarning($"Файл не найден по пути: {filePath}");
|
|
return "";
|
|
}
|
|
|
|
// Читаем весь текст из файла
|
|
string serialData = File.ReadAllText(filePath);
|
|
|
|
// Убираем лишние пробелы и проверяем на пустоту
|
|
if (string.IsNullOrWhiteSpace(serialData))
|
|
{
|
|
Debug.LogWarning("Файл пуст");
|
|
return "";
|
|
}
|
|
|
|
return serialData.Trim();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Debug.LogError($"Ошибка при чтении файла: {ex.Message}");
|
|
return "";
|
|
}
|
|
}
|
|
|
|
public static bool NeedToStartServer()
|
|
{
|
|
string docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
|
|
string filePath = Path.Combine(docPath, GAMEDATA_FOLDER, "serverOn.rr");
|
|
|
|
try
|
|
{
|
|
// Проверяем существование файла
|
|
if (!File.Exists(filePath)) return false;
|
|
|
|
// Читаем содержимое файла
|
|
string content = File.ReadAllText(filePath).Trim();
|
|
if (string.IsNullOrWhiteSpace(content)) return false;
|
|
|
|
if(content == "1")
|
|
return true;
|
|
else
|
|
return false;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Debug.LogError($"Ошибка при чтении файла пароля: {ex.Message}");
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
public static string GetElektroVersion()
|
|
{
|
|
string docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
|
|
string filePath = Path.Combine(docPath, GAMEDATA_FOLDER, ELEKTRO_VERSION_FILE);
|
|
|
|
try
|
|
{
|
|
// Проверяем существование файла
|
|
if (!File.Exists(filePath))
|
|
{
|
|
Debug.LogWarning($"Файл {ELEKTRO_VERSION_FILE} не найден по пути: {filePath}");
|
|
return string.Empty;
|
|
}
|
|
|
|
// Читаем содержимое файла
|
|
string versionData = File.ReadAllText(filePath).Trim();
|
|
|
|
// Убираем лишние пробелы и проверяем на пустоту
|
|
if (string.IsNullOrWhiteSpace(versionData))
|
|
{
|
|
Debug.LogWarning($"Файл {ELEKTRO_VERSION_FILE} пуст");
|
|
return string.Empty;
|
|
}
|
|
|
|
// Проверяем содержимое файла
|
|
Debug.Log($"Считана версия подключения кнопок: {versionData}");
|
|
return versionData;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Debug.LogError($"Ошибка при чтении файла {ELEKTRO_VERSION_FILE}: {ex.Message}");
|
|
return string.Empty;
|
|
}
|
|
}
|
|
|
|
|
|
public static char GetSensorPositiveValue()
|
|
{
|
|
string docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
|
|
string filePath = Path.Combine(docPath, GAMEDATA_FOLDER, SENSOR_VERSION_FILE);
|
|
|
|
char china_hopper_positive = '0'; //позитивное значение для китайских хопперов (Нормально разомкнутый (по умолчанию)
|
|
char ru_hopper_positive = '1'; //позитивное значение для русского хоппера (Нормально замкнутый)
|
|
|
|
|
|
try
|
|
{
|
|
// Проверяем существование файла
|
|
if (!File.Exists(filePath))
|
|
{
|
|
Debug.LogWarning($"Файл {SENSOR_VERSION_FILE} не найден по пути: {filePath}");
|
|
return china_hopper_positive;
|
|
}
|
|
|
|
// Читаем содержимое файла
|
|
string versionData = File.ReadAllText(filePath).Trim();
|
|
|
|
// Убираем лишние пробелы и проверяем на пустоту
|
|
if (string.IsNullOrWhiteSpace(versionData))
|
|
{
|
|
Debug.LogWarning($"Файл {SENSOR_VERSION_FILE} пуст");
|
|
return china_hopper_positive;
|
|
}
|
|
|
|
char result = china_hopper_positive;
|
|
switch (versionData)
|
|
{
|
|
case "1":
|
|
result = china_hopper_positive;
|
|
break;
|
|
case "2":
|
|
result = ru_hopper_positive;
|
|
break;
|
|
default:
|
|
result = china_hopper_positive;
|
|
break;
|
|
}
|
|
|
|
return result;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Debug.LogError($"Ошибка при чтении файла {SENSOR_VERSION_FILE}: {ex.Message}");
|
|
return china_hopper_positive;
|
|
}
|
|
}
|
|
|
|
public static string GetSettingsPassword()
|
|
{
|
|
string filePath = Path.Combine(Application.persistentDataPath, SETTINGS_PASSWORD);
|
|
|
|
try
|
|
{
|
|
// Проверяем существование файла
|
|
if (!File.Exists(filePath))
|
|
{
|
|
Debug.LogWarning($"Файл {SETTINGS_PASSWORD} не найден по пути: {filePath}");
|
|
return null;
|
|
}
|
|
|
|
// Читаем содержимое файла
|
|
string password = File.ReadAllText(filePath).Trim();
|
|
|
|
// Убираем лишние пробелы и проверяем на пустоту
|
|
if (string.IsNullOrWhiteSpace(password))
|
|
{
|
|
Debug.LogWarning($"Файл {SETTINGS_PASSWORD} пуст");
|
|
return null;
|
|
}
|
|
|
|
return password;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Debug.LogError($"Ошибка при чтении файла {SETTINGS_PASSWORD}: {ex.Message}");
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public static void SetPassword(string password)
|
|
{
|
|
string filePath = Path.Combine(Application.persistentDataPath, SETTINGS_PASSWORD);
|
|
try
|
|
{
|
|
File.WriteAllText(filePath, password);
|
|
|
|
Console.WriteLine($"Файл успешно записан: {filePath}");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Console.WriteLine($"Ошибка при записи файла: {ex.Message}");
|
|
throw;
|
|
}
|
|
}
|
|
|
|
}
|
|
|