mirror of
https://github.com/osukey/osukey.git
synced 2025-06-05 12:57:39 +09:00
Moved stableInfo read to FileBasedIPC
DI is also not needed anymore to access StableInfo, this goes through FileBasedIPC. Note: directory selector now always navigates to the osu! lazer base path.
This commit is contained in:
parent
dbb7651e60
commit
0027f44bd0
@ -37,8 +37,7 @@ namespace osu.Game.Tournament.IPC
|
|||||||
private int lastBeatmapId;
|
private int lastBeatmapId;
|
||||||
private ScheduledDelegate scheduled;
|
private ScheduledDelegate scheduled;
|
||||||
|
|
||||||
[Resolved]
|
private StableInfo stableInfo;
|
||||||
private StableInfo stableInfo { get; set; }
|
|
||||||
|
|
||||||
public const string STABLE_CONFIG = "tournament/stable.json";
|
public const string STABLE_CONFIG = "tournament/stable.json";
|
||||||
|
|
||||||
@ -161,9 +160,11 @@ namespace osu.Game.Tournament.IPC
|
|||||||
|
|
||||||
public static bool CheckExists(string p) => File.Exists(Path.Combine(p, "ipc.txt"));
|
public static bool CheckExists(string p) => File.Exists(Path.Combine(p, "ipc.txt"));
|
||||||
|
|
||||||
|
public StableInfo GetStableInfo() => stableInfo;
|
||||||
|
|
||||||
private string findStablePath()
|
private string findStablePath()
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(stableInfo.StablePath.Value))
|
if (!string.IsNullOrEmpty(readStableConfig()))
|
||||||
return stableInfo.StablePath.Value;
|
return stableInfo.StablePath.Value;
|
||||||
|
|
||||||
string stableInstallPath = string.Empty;
|
string stableInstallPath = string.Empty;
|
||||||
@ -184,7 +185,7 @@ namespace osu.Game.Tournament.IPC
|
|||||||
|
|
||||||
if (stableInstallPath != null)
|
if (stableInstallPath != null)
|
||||||
{
|
{
|
||||||
saveStableConfig(stableInstallPath);
|
SaveStableConfig(stableInstallPath);
|
||||||
return stableInstallPath;
|
return stableInstallPath;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -197,7 +198,7 @@ namespace osu.Game.Tournament.IPC
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void saveStableConfig(string path)
|
public void SaveStableConfig(string path)
|
||||||
{
|
{
|
||||||
stableInfo.StablePath.Value = path;
|
stableInfo.StablePath.Value = path;
|
||||||
|
|
||||||
@ -214,6 +215,25 @@ namespace osu.Game.Tournament.IPC
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private string readStableConfig()
|
||||||
|
{
|
||||||
|
if (stableInfo == null)
|
||||||
|
stableInfo = new StableInfo();
|
||||||
|
|
||||||
|
if (tournamentStorage.Exists(FileBasedIPC.STABLE_CONFIG))
|
||||||
|
{
|
||||||
|
using (Stream stream = tournamentStorage.GetStream(FileBasedIPC.STABLE_CONFIG, FileAccess.Read, FileMode.Open))
|
||||||
|
using (var sr = new StreamReader(stream))
|
||||||
|
{
|
||||||
|
stableInfo = JsonConvert.DeserializeObject<StableInfo>(sr.ReadToEnd());
|
||||||
|
}
|
||||||
|
|
||||||
|
return stableInfo.StablePath.Value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
private string findFromEnvVar()
|
private string findFromEnvVar()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -15,7 +15,6 @@ using osu.Game.Online.API;
|
|||||||
using osu.Game.Overlays;
|
using osu.Game.Overlays;
|
||||||
using osu.Game.Rulesets;
|
using osu.Game.Rulesets;
|
||||||
using osu.Game.Tournament.IPC;
|
using osu.Game.Tournament.IPC;
|
||||||
using osu.Framework.Platform;
|
|
||||||
using osu.Game.Tournament.Models;
|
using osu.Game.Tournament.Models;
|
||||||
using osuTK;
|
using osuTK;
|
||||||
using osuTK.Graphics;
|
using osuTK.Graphics;
|
||||||
@ -43,12 +42,6 @@ namespace osu.Game.Tournament.Screens
|
|||||||
|
|
||||||
private Bindable<Size> windowSize;
|
private Bindable<Size> windowSize;
|
||||||
|
|
||||||
[Resolved]
|
|
||||||
private Storage storage { get; set; }
|
|
||||||
|
|
||||||
[Resolved]
|
|
||||||
private StableInfo stableInfo { get; set; }
|
|
||||||
|
|
||||||
[BackgroundDependencyLoader]
|
[BackgroundDependencyLoader]
|
||||||
private void load(FrameworkConfigManager frameworkConfig)
|
private void load(FrameworkConfigManager frameworkConfig)
|
||||||
{
|
{
|
||||||
@ -73,6 +66,7 @@ namespace osu.Game.Tournament.Screens
|
|||||||
private void reload()
|
private void reload()
|
||||||
{
|
{
|
||||||
var fileBasedIpc = ipc as FileBasedIPC;
|
var fileBasedIpc = ipc as FileBasedIPC;
|
||||||
|
StableInfo stableInfo = fileBasedIpc?.GetStableInfo();
|
||||||
fillFlow.Children = new Drawable[]
|
fillFlow.Children = new Drawable[]
|
||||||
{
|
{
|
||||||
new ActionableInfo
|
new ActionableInfo
|
||||||
@ -81,13 +75,13 @@ namespace osu.Game.Tournament.Screens
|
|||||||
ButtonText = "Change source",
|
ButtonText = "Change source",
|
||||||
Action = () =>
|
Action = () =>
|
||||||
{
|
{
|
||||||
stableInfo.StablePath.BindValueChanged(_ =>
|
stableInfo?.StablePath.BindValueChanged(_ =>
|
||||||
{
|
{
|
||||||
Schedule(reload);
|
Schedule(reload);
|
||||||
});
|
});
|
||||||
sceneManager?.SetScreen(new StablePathSelectScreen());
|
sceneManager?.SetScreen(new StablePathSelectScreen());
|
||||||
},
|
},
|
||||||
Value = fileBasedIpc?.IPCStorage?.GetFullPath(string.Empty) ?? "Not found",
|
Value = fileBasedIpc?.IPCStorage.GetFullPath(string.Empty) ?? "Not found",
|
||||||
Failing = fileBasedIpc?.IPCStorage == null,
|
Failing = fileBasedIpc?.IPCStorage == null,
|
||||||
Description = "The osu!stable installation which is currently being used as a data source. If a source is not found, make sure you have created an empty ipc.txt in your stable cutting-edge installation."
|
Description = "The osu!stable installation which is currently being used as a data source. If a source is not found, make sure you have created an empty ipc.txt in your stable cutting-edge installation."
|
||||||
},
|
},
|
||||||
|
@ -8,7 +8,6 @@ using osu.Framework.Graphics.Containers;
|
|||||||
using osu.Framework.Graphics.Shapes;
|
using osu.Framework.Graphics.Shapes;
|
||||||
using osu.Framework.Logging;
|
using osu.Framework.Logging;
|
||||||
using osu.Framework.Platform;
|
using osu.Framework.Platform;
|
||||||
using osu.Game.Tournament.Models;
|
|
||||||
using osu.Game.Graphics;
|
using osu.Game.Graphics;
|
||||||
using osu.Game.Graphics.Sprites;
|
using osu.Game.Graphics.Sprites;
|
||||||
using osu.Game.Graphics.UserInterface;
|
using osu.Game.Graphics.UserInterface;
|
||||||
@ -24,9 +23,6 @@ namespace osu.Game.Tournament.Screens
|
|||||||
{
|
{
|
||||||
private DirectorySelector directorySelector;
|
private DirectorySelector directorySelector;
|
||||||
|
|
||||||
[Resolved]
|
|
||||||
private StableInfo stableInfo { get; set; }
|
|
||||||
|
|
||||||
[Resolved]
|
[Resolved]
|
||||||
private MatchIPCInfo ipc { get; set; }
|
private MatchIPCInfo ipc { get; set; }
|
||||||
|
|
||||||
@ -38,7 +34,7 @@ namespace osu.Game.Tournament.Screens
|
|||||||
[BackgroundDependencyLoader(true)]
|
[BackgroundDependencyLoader(true)]
|
||||||
private void load(Storage storage, OsuColour colours)
|
private void load(Storage storage, OsuColour colours)
|
||||||
{
|
{
|
||||||
var initialPath = new DirectoryInfo(storage.GetFullPath(stableInfo.StablePath.Value ?? string.Empty)).Parent?.FullName;
|
var initialPath = new DirectoryInfo(storage.GetFullPath(string.Empty)).Parent?.FullName;
|
||||||
|
|
||||||
AddRangeInternal(new Drawable[]
|
AddRangeInternal(new Drawable[]
|
||||||
{
|
{
|
||||||
@ -131,7 +127,7 @@ namespace osu.Game.Tournament.Screens
|
|||||||
protected virtual void ChangePath(Storage storage)
|
protected virtual void ChangePath(Storage storage)
|
||||||
{
|
{
|
||||||
var target = directorySelector.CurrentDirectory.Value.FullName;
|
var target = directorySelector.CurrentDirectory.Value.FullName;
|
||||||
stableInfo.StablePath.Value = target;
|
var fileBasedIpc = ipc as FileBasedIPC;
|
||||||
Logger.Log($"Changing Stable CE location to {target}");
|
Logger.Log($"Changing Stable CE location to {target}");
|
||||||
|
|
||||||
if (!FileBasedIPC.CheckExists(target))
|
if (!FileBasedIPC.CheckExists(target))
|
||||||
@ -143,7 +139,7 @@ namespace osu.Game.Tournament.Screens
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var fileBasedIpc = ipc as FileBasedIPC;
|
fileBasedIpc?.SaveStableConfig(target);
|
||||||
fileBasedIpc?.LocateStableStorage();
|
fileBasedIpc?.LocateStableStorage();
|
||||||
sceneManager?.SetScreen(typeof(SetupScreen));
|
sceneManager?.SetScreen(typeof(SetupScreen));
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,6 @@ namespace osu.Game.Tournament
|
|||||||
|
|
||||||
private Bindable<Size> windowSize;
|
private Bindable<Size> windowSize;
|
||||||
private FileBasedIPC ipc;
|
private FileBasedIPC ipc;
|
||||||
private StableInfo stableInfo;
|
|
||||||
|
|
||||||
private Drawable heightWarning;
|
private Drawable heightWarning;
|
||||||
|
|
||||||
@ -72,7 +71,6 @@ namespace osu.Game.Tournament
|
|||||||
}), true);
|
}), true);
|
||||||
|
|
||||||
readBracket();
|
readBracket();
|
||||||
readStableConfig();
|
|
||||||
|
|
||||||
ladder.CurrentMatch.Value = ladder.Matches.FirstOrDefault(p => p.Current.Value);
|
ladder.CurrentMatch.Value = ladder.Matches.FirstOrDefault(p => p.Current.Value);
|
||||||
|
|
||||||
@ -143,23 +141,6 @@ namespace osu.Game.Tournament
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void readStableConfig()
|
|
||||||
{
|
|
||||||
if (stableInfo == null)
|
|
||||||
stableInfo = new StableInfo();
|
|
||||||
|
|
||||||
if (storage.Exists(FileBasedIPC.STABLE_CONFIG))
|
|
||||||
{
|
|
||||||
using (Stream stream = storage.GetStream(FileBasedIPC.STABLE_CONFIG, FileAccess.Read, FileMode.Open))
|
|
||||||
using (var sr = new StreamReader(stream))
|
|
||||||
{
|
|
||||||
stableInfo = JsonConvert.DeserializeObject<StableInfo>(sr.ReadToEnd());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies.Cache(stableInfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void readBracket()
|
private void readBracket()
|
||||||
{
|
{
|
||||||
if (storage.Exists(bracket_filename))
|
if (storage.Exists(bracket_filename))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user