mirror of
https://github.com/ClassiCube/MCGalaxy.git
synced 2025-09-22 12:05:51 -04:00
Add basic heightmap generator.
This commit is contained in:
parent
466889a933
commit
1a4acd6c9b
@ -26,7 +26,7 @@ namespace MCGalaxy.Commands {
|
||||
public override string type { get { return CommandTypes.Other; } }
|
||||
public override bool museumUsable { get { return false; } }
|
||||
public override LevelPermission defaultRank { get { return LevelPermission.AdvBuilder; } }
|
||||
public override CommandPerm[] AdditionalPerms {
|
||||
public override CommandPerm[] ExtraPerms {
|
||||
get { return new[] { new CommandPerm(LevelPermission.Operator, "+ can set bots to be killer") }; }
|
||||
}
|
||||
|
||||
|
@ -27,7 +27,7 @@ namespace MCGalaxy.Commands.CPE {
|
||||
public override string type { get { return CommandTypes.Other; } }
|
||||
public override bool museumUsable { get { return true; } }
|
||||
public override LevelPermission defaultRank { get { return LevelPermission.AdvBuilder; } }
|
||||
public override CommandPerm[] AdditionalPerms {
|
||||
public override CommandPerm[] ExtraPerms {
|
||||
get { return new[] { new CommandPerm(LevelPermission.Operator, "+ can change the model of others") }; }
|
||||
}
|
||||
public override CommandAlias[] Aliases {
|
||||
|
@ -27,7 +27,7 @@ namespace MCGalaxy.Commands.CPE {
|
||||
public override string type { get { return CommandTypes.Other; } }
|
||||
public override bool museumUsable { get { return true; } }
|
||||
public override LevelPermission defaultRank { get { return LevelPermission.Operator; } }
|
||||
public override CommandPerm[] AdditionalPerms {
|
||||
public override CommandPerm[] ExtraPerms {
|
||||
get { return new[] { new CommandPerm(LevelPermission.Operator, "+ can change the skin of others") }; }
|
||||
}
|
||||
|
||||
|
@ -25,7 +25,7 @@ namespace MCGalaxy.Commands {
|
||||
public override string type { get { return CommandTypes.Chat; } }
|
||||
public override bool museumUsable { get { return true; } }
|
||||
public override LevelPermission defaultRank { get { return LevelPermission.Banned; } }
|
||||
public override CommandPerm[] AdditionalPerms {
|
||||
public override CommandPerm[] ExtraPerms {
|
||||
get { return new[] {
|
||||
new CommandPerm(LevelPermission.AdvBuilder, "+ can create chatrooms"),
|
||||
new CommandPerm(LevelPermission.AdvBuilder, "+ can delete an empty chatroom"),
|
||||
|
@ -25,7 +25,7 @@ namespace MCGalaxy.Commands {
|
||||
public override string type { get { return CommandTypes.Chat; } }
|
||||
public override bool museumUsable { get { return true; } }
|
||||
public override LevelPermission defaultRank { get { return LevelPermission.Operator; } }
|
||||
public override CommandPerm[] AdditionalPerms {
|
||||
public override CommandPerm[] ExtraPerms {
|
||||
get { return new[] { new CommandPerm(LevelPermission.Operator, "+ can change the color of others") }; }
|
||||
}
|
||||
public override CommandAlias[] Aliases {
|
||||
|
@ -26,7 +26,7 @@ namespace MCGalaxy.Commands {
|
||||
public override string type { get { return CommandTypes.Chat; } }
|
||||
public override bool museumUsable { get { return true; } }
|
||||
public override LevelPermission defaultRank { get { return LevelPermission.Operator; } }
|
||||
public override CommandPerm[] AdditionalPerms {
|
||||
public override CommandPerm[] ExtraPerms {
|
||||
get { return new[] { new CommandPerm(LevelPermission.Operator, "+ can change the nick of other players") }; }
|
||||
}
|
||||
public override CommandAlias[] Aliases {
|
||||
|
@ -24,7 +24,7 @@ namespace MCGalaxy.Commands {
|
||||
public override string type { get { return CommandTypes.Chat; } }
|
||||
public override bool museumUsable { get { return true; } }
|
||||
public override LevelPermission defaultRank { get { return LevelPermission.Admin; } }
|
||||
public override CommandPerm[] AdditionalPerms {
|
||||
public override CommandPerm[] ExtraPerms {
|
||||
get { return new[] { new CommandPerm(LevelPermission.Operator, "+ can change the title color of others") }; }
|
||||
}
|
||||
public override CommandAlias[] Aliases {
|
||||
|
@ -25,7 +25,7 @@ namespace MCGalaxy.Commands {
|
||||
public override string type { get { return CommandTypes.Chat; } }
|
||||
public override bool museumUsable { get { return true; } }
|
||||
public override LevelPermission defaultRank { get { return LevelPermission.Admin; } }
|
||||
public override CommandPerm[] AdditionalPerms {
|
||||
public override CommandPerm[] ExtraPerms {
|
||||
get { return new[] { new CommandPerm(LevelPermission.Admin, "+ can change the title of others") }; }
|
||||
}
|
||||
public override CommandAlias[] Aliases {
|
||||
|
@ -32,7 +32,7 @@ namespace MCGalaxy {
|
||||
public abstract void Use(Player p, string message);
|
||||
public abstract void Help(Player p);
|
||||
public virtual void Help(Player p, string message) { Help(p); Formatter.PrintCommandInfo(p, this); }
|
||||
public virtual CommandPerm[] AdditionalPerms { get { return null; } }
|
||||
public virtual CommandPerm[] ExtraPerms { get { return null; } }
|
||||
public virtual CommandEnable Enabled { get { return CommandEnable.Always; } }
|
||||
public virtual CommandAlias[] Aliases { get { return null; } }
|
||||
|
||||
|
@ -26,7 +26,7 @@ namespace MCGalaxy
|
||||
|
||||
public void Add(Command cmd) {
|
||||
commands.Add(cmd);
|
||||
CommandPerm[] perms = cmd.AdditionalPerms;
|
||||
CommandPerm[] perms = cmd.ExtraPerms;
|
||||
if (!AddOtherPerms || perms == null) return;
|
||||
|
||||
for (int i = 0; i < perms.Length; i++)
|
||||
|
@ -29,7 +29,7 @@ namespace MCGalaxy.Commands {
|
||||
public override string type { get { return CommandTypes.Economy; } }
|
||||
public override bool museumUsable { get { return true; } }
|
||||
public override LevelPermission defaultRank { get { return LevelPermission.Guest; } }
|
||||
public override CommandPerm[] AdditionalPerms {
|
||||
public override CommandPerm[] ExtraPerms {
|
||||
get { return new[] { new CommandPerm(LevelPermission.Operator, "+ can setup the economy") }; }
|
||||
}
|
||||
|
||||
|
@ -33,7 +33,7 @@ namespace MCGalaxy.Commands {
|
||||
public override string type { get { return CommandTypes.Games; } }
|
||||
public override bool museumUsable { get { return false; } }
|
||||
public override LevelPermission defaultRank { get { return LevelPermission.Banned; } }
|
||||
public override CommandPerm[] AdditionalPerms {
|
||||
public override CommandPerm[] ExtraPerms {
|
||||
get { return new[] {
|
||||
new CommandPerm(LevelPermission.Operator, "+ can send the countdown rules to everybody"),
|
||||
new CommandPerm(LevelPermission.Operator, "+ can setup countdown (download/start/restart/enable/disable/cancel)"),
|
||||
|
@ -26,7 +26,7 @@ namespace MCGalaxy.Commands {
|
||||
public override string type { get { return CommandTypes.Games; } }
|
||||
public override bool museumUsable { get { return true; } }
|
||||
public override LevelPermission defaultRank { get { return LevelPermission.Guest; } }
|
||||
public override CommandPerm[] AdditionalPerms {
|
||||
public override CommandPerm[] ExtraPerms {
|
||||
get { return new[] { new CommandPerm(LevelPermission.AdvBuilder, "+ can create teams") }; }
|
||||
}
|
||||
|
||||
|
@ -27,7 +27,7 @@ namespace MCGalaxy.Commands {
|
||||
public override string type { get { return CommandTypes.Games; } }
|
||||
public override bool museumUsable { get { return false; } }
|
||||
public override LevelPermission defaultRank { get { return LevelPermission.Guest; } }
|
||||
public override CommandPerm[] AdditionalPerms {
|
||||
public override CommandPerm[] ExtraPerms {
|
||||
get { return new[] { new CommandPerm(LevelPermission.Operator, "+ can use admin commands for tntwars") }; }
|
||||
}
|
||||
bool DeleteZone = false, CheckZone = false, NoTntZone = false;
|
||||
|
@ -29,7 +29,7 @@ namespace MCGalaxy.Commands {
|
||||
public override string type { get { return CommandTypes.Information; } }
|
||||
public override bool museumUsable { get { return true; } }
|
||||
public override LevelPermission defaultRank { get { return LevelPermission.Guest; } }
|
||||
public override CommandPerm[] AdditionalPerms {
|
||||
public override CommandPerm[] ExtraPerms {
|
||||
get { return new[] {
|
||||
new CommandPerm(LevelPermission.Operator, "+ can set rank requirements."),
|
||||
}; }
|
||||
|
@ -27,7 +27,7 @@ namespace MCGalaxy.Commands
|
||||
public override string type { get { return CommandTypes.Information; } }
|
||||
public override bool museumUsable { get { return true; } }
|
||||
public override LevelPermission defaultRank { get { return LevelPermission.Banned; } }
|
||||
public override CommandPerm[] AdditionalPerms {
|
||||
public override CommandPerm[] ExtraPerms {
|
||||
get { return new[] { new CommandPerm(LevelPermission.Builder, "can send rules to other players") }; }
|
||||
}
|
||||
|
||||
|
@ -31,7 +31,7 @@ namespace MCGalaxy.Commands {
|
||||
public override CommandAlias[] Aliases {
|
||||
get { return new[] { new CommandAlias("host"), new CommandAlias("zall") }; }
|
||||
}
|
||||
public override CommandPerm[] AdditionalPerms {
|
||||
public override CommandPerm[] ExtraPerms {
|
||||
get { return new[] { new CommandPerm(LevelPermission.Admin, "+ can see server CPU and memory usage") }; }
|
||||
}
|
||||
|
||||
|
@ -27,7 +27,7 @@ namespace MCGalaxy.Commands {
|
||||
public override string type { get { return CommandTypes.Information; } }
|
||||
public override bool museumUsable { get { return true; } }
|
||||
public override LevelPermission defaultRank { get { return LevelPermission.Banned; } }
|
||||
public override CommandPerm[] AdditionalPerms {
|
||||
public override CommandPerm[] ExtraPerms {
|
||||
get { return new[] { new CommandPerm(LevelPermission.AdvBuilder, "+ can see IPs and if a player is whitelisted") }; }
|
||||
}
|
||||
public override CommandAlias[] Aliases {
|
||||
|
@ -25,7 +25,7 @@ namespace MCGalaxy.Commands
|
||||
public override string type { get { return CommandTypes.Moderation; } }
|
||||
public override bool museumUsable { get { return true; } }
|
||||
public override LevelPermission defaultRank { get { return LevelPermission.Operator; } }
|
||||
public override CommandPerm[] AdditionalPerms {
|
||||
public override CommandPerm[] ExtraPerms {
|
||||
get { return new[] { new CommandPerm(LevelPermission.Admin, "+ can hide/unhide without showing a message to ops") }; }
|
||||
}
|
||||
public override CommandAlias[] Aliases {
|
||||
|
@ -29,7 +29,7 @@ namespace MCGalaxy.Commands
|
||||
public override string type { get { return CommandTypes.Moderation; } }
|
||||
public override bool museumUsable { get { return false; } }
|
||||
public override LevelPermission defaultRank { get { return LevelPermission.Builder; } }
|
||||
public override CommandPerm[] AdditionalPerms {
|
||||
public override CommandPerm[] ExtraPerms {
|
||||
get { return new[] { new CommandPerm(LevelPermission.Guest, " and below are patrolled") }; }
|
||||
}
|
||||
|
||||
|
@ -27,7 +27,7 @@ namespace MCGalaxy.Commands {
|
||||
public override string type { get { return CommandTypes.Moderation; } }
|
||||
public override bool museumUsable { get { return true; } }
|
||||
public override LevelPermission defaultRank { get { return LevelPermission.Guest; } }
|
||||
public override CommandPerm[] AdditionalPerms {
|
||||
public override CommandPerm[] ExtraPerms {
|
||||
get { return new[] {
|
||||
new CommandPerm(LevelPermission.Operator, "+ can see the review queue"),
|
||||
new CommandPerm(LevelPermission.Operator, "+ can teleport to next in review queue"),
|
||||
|
@ -24,7 +24,7 @@ namespace MCGalaxy.Commands {
|
||||
public override string type { get { return CommandTypes.Moderation; } }
|
||||
public override bool museumUsable { get { return false; } }
|
||||
public override LevelPermission defaultRank { get { return LevelPermission.Operator; } }
|
||||
public override CommandPerm[] AdditionalPerms {
|
||||
public override CommandPerm[] ExtraPerms {
|
||||
get { return new[] {
|
||||
new CommandPerm(LevelPermission.Operator, "+ can delete zones"),
|
||||
new CommandPerm(LevelPermission.Operator, "+ can delete all zones"),
|
||||
|
@ -23,7 +23,7 @@ namespace MCGalaxy.Commands.World {
|
||||
public override string type { get { return CommandTypes.World; } }
|
||||
public override bool museumUsable { get { return true; } }
|
||||
public override LevelPermission defaultRank { get { return LevelPermission.Banned; } }
|
||||
public override CommandPerm[] AdditionalPerms {
|
||||
public override CommandPerm[] ExtraPerms {
|
||||
get { return new[] { new CommandPerm(LevelPermission.Admin, "+ can change the main level") }; }
|
||||
}
|
||||
public CmdMain() { }
|
||||
|
@ -24,7 +24,7 @@ namespace MCGalaxy.Commands.World {
|
||||
public override string type { get { return CommandTypes.World; } }
|
||||
public override bool museumUsable { get { return true; } }
|
||||
public override LevelPermission defaultRank { get { return LevelPermission.Guest; } }
|
||||
public override CommandPerm[] AdditionalPerms {
|
||||
public override CommandPerm[] ExtraPerms {
|
||||
get { return new[] { new CommandPerm(LevelPermission.Operator, "+ can edit map options"),
|
||||
new CommandPerm(LevelPermission.Admin, "+ can set realm owners") }; }
|
||||
}
|
||||
|
@ -26,6 +26,9 @@ namespace MCGalaxy.Commands.World {
|
||||
public override string type { get { return CommandTypes.World; } }
|
||||
public override bool museumUsable { get { return true; } }
|
||||
public override LevelPermission defaultRank { get { return LevelPermission.Admin; } }
|
||||
public override CommandPerm[] ExtraPerms {
|
||||
get { return new[] { new CommandPerm(LevelPermission.Admin, "+ can generate maps with advanced themes") }; }
|
||||
}
|
||||
public CmdNewLvl() { }
|
||||
|
||||
public override void Use(Player p, string message) {
|
||||
@ -49,6 +52,9 @@ namespace MCGalaxy.Commands.World {
|
||||
if (LevelInfo.ExistsOffline(name)) {
|
||||
Player.Message(p, "Level \"{0}\" already exists", name); return;
|
||||
}
|
||||
if (!MapGen.IsSimpleTheme(args[4]) && !CheckExtraPerm(p)) {
|
||||
MessageNeedExtra(p, "can generate maps with advanced themes."); return;
|
||||
}
|
||||
|
||||
try {
|
||||
using (Level lvl = new Level(name, x, y, z)) {
|
||||
|
@ -26,7 +26,7 @@ namespace MCGalaxy.Commands {
|
||||
public override CommandAlias[] Aliases {
|
||||
get { return new [] { new CommandAlias("rejoin"), new CommandAlias("rd") }; }
|
||||
}
|
||||
public override CommandPerm[] AdditionalPerms {
|
||||
public override CommandPerm[] ExtraPerms {
|
||||
get { return new[] { new CommandPerm(LevelPermission.Operator, "+ can reload for other players") }; }
|
||||
}
|
||||
|
||||
|
@ -71,7 +71,7 @@ namespace MCGalaxy.Commands.Building {
|
||||
|
||||
DrawArgs dArgs = default(DrawArgs);
|
||||
dArgs.layer = layer;
|
||||
dArgs.bitmapLoc = bitmapLoc;
|
||||
dArgs.name = bitmapLoc;
|
||||
dArgs.popType = popType;
|
||||
Player.Message(p, "Place two blocks to determine direction.");
|
||||
p.MakeSelection(2, dArgs, DoImage);
|
||||
@ -97,15 +97,13 @@ namespace MCGalaxy.Commands.Building {
|
||||
}
|
||||
|
||||
void DoDrawImage(Player p, Vec3S32 p0, DrawArgs dArgs, int direction) {
|
||||
Bitmap bmp = null;
|
||||
Bitmap bmp = HeightmapGen.ReadBitmap(dArgs.name, "extra/images/", p);
|
||||
if (bmp == null) return;
|
||||
try {
|
||||
bmp = new Bitmap("extra/images/" + dArgs.bitmapLoc + ".bmp");
|
||||
bmp.RotateFlip(RotateFlipType.RotateNoneFlipY);
|
||||
} catch (Exception ex) {
|
||||
Server.ErrorLog(ex);
|
||||
if (bmp != null) bmp.Dispose();
|
||||
Player.Message(p, "&cThere was an error reading the downloaded image.");
|
||||
Player.Message(p, "&cThe url may need to end with its extension (such as .jpg).");
|
||||
bmp.Dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
@ -171,7 +169,7 @@ namespace MCGalaxy.Commands.Building {
|
||||
p.level.UpdateBlock(p, (ushort)P.X, (ushort)P.Y, (ushort)P.Z, cur.type, 0);
|
||||
}
|
||||
|
||||
if (dArgs.bitmapLoc == "tempImage_" + p.name)
|
||||
if (dArgs.name == "tempImage_" + p.name)
|
||||
File.Delete("extra/images/tempImage_" + p.name + ".bmp");
|
||||
Player.Message(p, "Finished printing image using " + ImagePalette.Names[popType]);
|
||||
}
|
||||
@ -186,7 +184,7 @@ namespace MCGalaxy.Commands.Building {
|
||||
Player.Message(p, "Use switch (&flayer%S) or (&fl%S) to print horizontally.");
|
||||
}
|
||||
|
||||
struct DrawArgs { public bool layer; public byte popType; public string bitmapLoc; }
|
||||
struct DrawArgs { public bool layer; public byte popType; public string name; }
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -29,7 +29,7 @@ namespace MCGalaxy.Commands.Building {
|
||||
public override bool museumUsable { get { return false; } }
|
||||
public override LevelPermission defaultRank { get { return LevelPermission.AdvBuilder; } }
|
||||
public CmdMessageBlock() { }
|
||||
public override CommandPerm[] AdditionalPerms {
|
||||
public override CommandPerm[] ExtraPerms {
|
||||
get { return new[] { new CommandPerm(LevelPermission.Nobody, "+ can use moderation commands in MBs") }; }
|
||||
}
|
||||
|
||||
|
@ -26,7 +26,7 @@ namespace MCGalaxy.Commands.Building {
|
||||
public override string type { get { return CommandTypes.Building; } }
|
||||
public override bool museumUsable { get { return true; } }
|
||||
public override LevelPermission defaultRank { get { return LevelPermission.Guest; } }
|
||||
public override CommandPerm[] AdditionalPerms {
|
||||
public override CommandPerm[] ExtraPerms {
|
||||
get { return new[] {
|
||||
new CommandPerm(LevelPermission.Operator, "+ can undo other players"),
|
||||
new CommandPerm(LevelPermission.AdvBuilder, "+ can undo physics"),
|
||||
|
@ -28,7 +28,7 @@ namespace MCGalaxy.Commands {
|
||||
public override string type { get { return CommandTypes.Other; } }
|
||||
public override bool museumUsable { get { return true; } }
|
||||
public override LevelPermission defaultRank { get { return LevelPermission.Guest; } }
|
||||
public override CommandPerm[] AdditionalPerms {
|
||||
public override CommandPerm[] ExtraPerms {
|
||||
get { return new[] { new CommandPerm(LevelPermission.Operator, "+ can check, view and delete reports") }; }
|
||||
}
|
||||
public override CommandAlias[] Aliases {
|
||||
|
@ -24,7 +24,7 @@ namespace MCGalaxy.Commands
|
||||
public override string type { get { return CommandTypes.Other; } }
|
||||
public override bool museumUsable { get { return false; } }
|
||||
public override LevelPermission defaultRank { get { return LevelPermission.Builder; } }
|
||||
public override CommandPerm[] AdditionalPerms {
|
||||
public override CommandPerm[] ExtraPerms {
|
||||
get { return new[] {
|
||||
new CommandPerm(LevelPermission.Operator, "+ can use big TNT"),
|
||||
new CommandPerm(LevelPermission.Operator, "+ can allow/disallow tnt"),
|
||||
|
@ -25,7 +25,7 @@ namespace MCGalaxy.Commands {
|
||||
public override string type { get { return CommandTypes.Other; } }
|
||||
public override bool museumUsable { get { return false; } }
|
||||
public override LevelPermission defaultRank { get { return LevelPermission.Guest; } }
|
||||
public override CommandPerm[] AdditionalPerms {
|
||||
public override CommandPerm[] ExtraPerms {
|
||||
get { return new[] {
|
||||
new CommandPerm(LevelPermission.Operator, "+ can create warps"),
|
||||
new CommandPerm(LevelPermission.Operator, "+ can delete warps"),
|
||||
|
@ -14,14 +14,18 @@
|
||||
BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
||||
or implied. See the Licenses for the specific language governing
|
||||
permissions and limitations under the Licenses.
|
||||
*/
|
||||
*/
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
|
||||
namespace MCGalaxy.Generator {
|
||||
public static class HeightmapGen {
|
||||
|
||||
public static bool DownloadImage(string url, string dir, Player p) {
|
||||
if (!Directory.Exists(dir))
|
||||
Directory.CreateDirectory(dir);
|
||||
if (!url.StartsWith("http://") && !url.StartsWith("https://"))
|
||||
url = "http://" + url;
|
||||
|
||||
@ -39,5 +43,50 @@ namespace MCGalaxy.Generator {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static Bitmap ReadBitmap(string name, string dir, Player p) {
|
||||
Bitmap bmp = null;
|
||||
try {
|
||||
bmp = new Bitmap(dir + name + ".bmp");
|
||||
int width = bmp.Width;
|
||||
// sometimes Mono will return an invalid bitmap instance that throws ArgumentNullException,
|
||||
// so we make sure to check for that here rather than later.
|
||||
return bmp;
|
||||
} catch (Exception ex) {
|
||||
Server.ErrorLog(ex);
|
||||
if (bmp != null) bmp.Dispose();
|
||||
Player.Message(p, "&cThere was an error reading the downloaded image.");
|
||||
Player.Message(p, "&cThe url may need to end with its extension (such as .jpg).");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool Generate(MapGenArgs args) {
|
||||
Player p = args.Player;
|
||||
Level lvl = args.Level;
|
||||
if (args.Args == "") { Player.Message(p, "You need to provide a url for the image."); return false; }
|
||||
|
||||
if (!DownloadImage(args.Args, "extra/heightmap/", p )) return false;
|
||||
Bitmap bmp = ReadBitmap("tempImage_" + p.name, "extra/heightmap/", p);
|
||||
if (bmp == null) return false;
|
||||
if (lvl.Width != bmp.Width || lvl.Length != bmp.Height) {
|
||||
Player.Message(p, "The size of the heightmap is {0} by {1}.", bmp.Width, bmp.Height);
|
||||
Player.Message(p, "The width and length of the new level must match that size.");
|
||||
return false;
|
||||
}
|
||||
|
||||
int index = 0, oneY = lvl.Width * lvl.Height;
|
||||
using (bmp) {
|
||||
for (int z = 0; z < bmp.Height; z++)
|
||||
for (int x = 0; x < bmp.Width; x++)
|
||||
{
|
||||
int height = bmp.GetPixel(x, z).R * lvl.Height / 255;
|
||||
for (int y = 0; y < height; y++)
|
||||
lvl.blocks[index + oneY * y] = Block.stone;
|
||||
index++;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ namespace MCGalaxy.Generator {
|
||||
public struct MapGenArgs {
|
||||
public Player Player;
|
||||
public Level Level;
|
||||
public string Theme, RawArgs;
|
||||
public string Theme, Args;
|
||||
public bool UseSeed;
|
||||
public int Seed;
|
||||
}
|
||||
@ -35,6 +35,10 @@ namespace MCGalaxy.Generator {
|
||||
return simpleGens.ContainsKey(s) || advGens.ContainsKey(s);
|
||||
}
|
||||
|
||||
public static bool IsSimpleTheme(string s) {
|
||||
return simpleGens.ContainsKey(s.ToLower());
|
||||
}
|
||||
|
||||
public static void PrintThemes(Player p) {
|
||||
Player.Message(p, "Simple themes: " + simpleGens.Keys.Concatenate(", "));
|
||||
Player.Message(p, "Advanced themes: " + advGens.Keys.Concatenate(", "));
|
||||
@ -47,7 +51,7 @@ namespace MCGalaxy.Generator {
|
||||
public static bool Generate(Level lvl, string theme, string args, Player p) {
|
||||
MapGenArgs genArgs = new MapGenArgs();
|
||||
genArgs.Level = lvl; genArgs.Player = p;
|
||||
genArgs.Theme = theme; genArgs.RawArgs = args;
|
||||
genArgs.Theme = theme; genArgs.Args = args;
|
||||
|
||||
genArgs.UseSeed = args != "";
|
||||
if (genArgs.UseSeed && !int.TryParse(args, out genArgs.Seed))
|
||||
@ -76,6 +80,7 @@ namespace MCGalaxy.Generator {
|
||||
advGens = new Dictionary<string, Func<MapGenArgs, bool>>();
|
||||
SimpleGen.RegisterGenerators();
|
||||
AdvNoiseGen.RegisterGenerators();
|
||||
RegisterAdvancedGen("heightmap", HeightmapGen.Generate);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -51,7 +51,7 @@ namespace MCGalaxy {
|
||||
Player.Message(p, builder.ToString());
|
||||
|
||||
PrintAliases(p, cmd);
|
||||
CommandPerm[] addPerms = cmd.AdditionalPerms;
|
||||
CommandPerm[] addPerms = cmd.ExtraPerms;
|
||||
if (addPerms == null) return;
|
||||
|
||||
Player.Message(p, "%TExtra permissions:");
|
||||
|
Loading…
x
Reference in New Issue
Block a user