mirror of
https://github.com/ClassiCube/MCGalaxy.git
synced 2025-09-24 05:03:34 -04:00
Allow EnvPreset to be useable by plugins + minor code cleanup
This commit is contained in:
parent
80884967e2
commit
0872171cbb
@ -16,7 +16,6 @@
|
|||||||
permissions and limitations under the Licenses.
|
permissions and limitations under the Licenses.
|
||||||
*/
|
*/
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
|
||||||
|
|
||||||
namespace MCGalaxy.Commands.CPE
|
namespace MCGalaxy.Commands.CPE
|
||||||
{
|
{
|
||||||
@ -29,7 +28,7 @@ namespace MCGalaxy.Commands.CPE
|
|||||||
|
|
||||||
public override void Use(Player p, string message, CommandData data) {
|
public override void Use(Player p, string message, CommandData data) {
|
||||||
if (message.CaselessEq("preset")) {
|
if (message.CaselessEq("preset")) {
|
||||||
MessagePresets(p); return;
|
ExplainPresets(p); return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Level lvl = null;
|
Level lvl = null;
|
||||||
@ -59,8 +58,8 @@ namespace MCGalaxy.Commands.CPE
|
|||||||
|
|
||||||
internal static bool Handle(Player p, Level lvl, string type, string value, EnvConfig cfg, string area) {
|
internal static bool Handle(Player p, Level lvl, string type, string value, EnvConfig cfg, string area) {
|
||||||
if (type.CaselessEq("preset")) {
|
if (type.CaselessEq("preset")) {
|
||||||
EnvPreset preset = FindPreset(value);
|
EnvPreset preset = EnvPreset.Find(value);
|
||||||
if (preset == null) { MessagePresets(p); return false; }
|
if (preset == null) { ExplainPresets(p); return false; }
|
||||||
|
|
||||||
cfg.SkyColor = preset.Sky;
|
cfg.SkyColor = preset.Sky;
|
||||||
cfg.CloudColor = preset.Clouds;
|
cfg.CloudColor = preset.Clouds;
|
||||||
@ -96,27 +95,10 @@ namespace MCGalaxy.Commands.CPE
|
|||||||
pl.SendCurrentEnv();
|
pl.SendCurrentEnv();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static EnvPreset FindPreset(string value) {
|
|
||||||
EnvPreset preset = EnvPreset.Find(value);
|
|
||||||
if (preset != null) return preset;
|
|
||||||
|
|
||||||
if (File.Exists("presets/" + value.ToLower() + ".env")) {
|
|
||||||
string text = File.ReadAllText("presets/" + value.ToLower() + ".env");
|
|
||||||
return new EnvPreset(text);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void MessagePresets(Player p) {
|
static void ExplainPresets(Player p) {
|
||||||
p.Message("&T/Env preset [type] &H- Applies an env preset on the map");
|
p.Message("&T/Env preset [type] &H- Applies an env preset on the map");
|
||||||
p.Message("&HPresets: &f{0}", EnvPreset.Presets.Join(pr => pr.Key));
|
EnvPreset.ListFor(p);
|
||||||
|
|
||||||
string[] files = AtomicIO.TryGetFiles("presets", "*.env");
|
|
||||||
if (files == null) return;
|
|
||||||
|
|
||||||
string all = files.Join(f => Path.GetFileNameWithoutExtension(f));
|
|
||||||
if (all.Length > 0) p.Message("&HCustom presets: &f" + all);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Help(Player p) {
|
public override void Help(Player p) {
|
||||||
@ -133,7 +115,7 @@ namespace MCGalaxy.Commands.CPE
|
|||||||
p.Message("&HUse &T/Help env [variable] &Hto see details for that variable");
|
p.Message("&HUse &T/Help env [variable] &Hto see details for that variable");
|
||||||
return;
|
return;
|
||||||
} else if (message.CaselessEq("presets")) {
|
} else if (message.CaselessEq("presets")) {
|
||||||
MessagePresets(p); return;
|
ExplainPresets(p); return;
|
||||||
}
|
}
|
||||||
|
|
||||||
EnvOption opt = EnvOptions.Find(message);
|
EnvOption opt = EnvOptions.Find(message);
|
||||||
|
@ -17,11 +17,16 @@
|
|||||||
*/
|
*/
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
namespace MCGalaxy {
|
namespace MCGalaxy {
|
||||||
internal sealed class EnvPreset {
|
public sealed class EnvPreset {
|
||||||
public string Fog, Sky, Clouds, Sun, Shadow;
|
|
||||||
public string LavaLight = "", LampLight = "";
|
const string FOLDER = "presets";
|
||||||
|
const string FILE_EXTENSION = ".env";
|
||||||
|
|
||||||
|
public readonly string Fog, Sky, Clouds, Sun, Shadow;
|
||||||
|
public readonly string LavaLight = "", LampLight = "";
|
||||||
|
|
||||||
public EnvPreset(string raw) {
|
public EnvPreset(string raw) {
|
||||||
string[] args = raw.SplitSpaces();
|
string[] args = raw.SplitSpaces();
|
||||||
@ -30,7 +35,7 @@ namespace MCGalaxy {
|
|||||||
LampLight = args.Length > 6 ? args[6] : "";
|
LampLight = args.Length > 6 ? args[6] : "";
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Dictionary<string, string> Presets = new Dictionary<string, string>() {
|
static Dictionary<string, string> Presets = new Dictionary<string, string>() {
|
||||||
// fog sky clouds sun shadow
|
// fog sky clouds sun shadow
|
||||||
{ "Cartoon", "00FFFF 1E90FF 00BFFF F5DEB3 F4A460" },
|
{ "Cartoon", "00FFFF 1E90FF 00BFFF F5DEB3 F4A460" },
|
||||||
{ "Noir", "000000 1F1F1F 000000 696969 1F1F1F" },
|
{ "Noir", "000000 1F1F1F 000000 696969 1F1F1F" },
|
||||||
@ -43,12 +48,33 @@ namespace MCGalaxy {
|
|||||||
{ "Midnight", "131947 070A23 1E223A 181828 0F0F19" },
|
{ "Midnight", "131947 070A23 1E223A 181828 0F0F19" },
|
||||||
{ "Normal", " " },
|
{ "Normal", " " },
|
||||||
};
|
};
|
||||||
|
|
||||||
public static EnvPreset Find(string name) {
|
public static EnvPreset Find(string value) {
|
||||||
|
EnvPreset preset = FindDefault(value);
|
||||||
|
if (preset != null) return preset;
|
||||||
|
|
||||||
|
if (File.Exists(FOLDER + "/" + value.ToLower() + FILE_EXTENSION)) {
|
||||||
|
string text = File.ReadAllText(FOLDER + "/" + value.ToLower() + FILE_EXTENSION);
|
||||||
|
return new EnvPreset(text);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
static EnvPreset FindDefault(string name) {
|
||||||
foreach (var kvp in Presets) {
|
foreach (var kvp in Presets) {
|
||||||
if (kvp.Key.CaselessEq(name)) return new EnvPreset(kvp.Value);
|
if (kvp.Key.CaselessEq(name)) return new EnvPreset(kvp.Value);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void ListFor(Player p) {
|
||||||
|
p.Message("&HPresets: &f{0}", Presets.Join(pr => pr.Key));
|
||||||
|
|
||||||
|
string[] files = AtomicIO.TryGetFiles(FOLDER, "*" + FILE_EXTENSION);
|
||||||
|
if (files == null) return;
|
||||||
|
|
||||||
|
string all = files.Join(f => Path.GetFileNameWithoutExtension(f));
|
||||||
|
if (all.Length > 0) p.Message("&HCustom presets: &f" + all);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user