Пример #1
0
 public Server(ISettingsProvider settingsProvider)
 {
     SettingsProvider = settingsProvider;
     // Touch TerrainGeneration to load it into app domain
     FlatlandGenerator.DefaultGeneratorOptions.ToString();
     var generator = Level.GetGenerator(SettingsProvider.Get<string>("level.type"));
     if (generator == null)
         generator = new FlatlandGenerator();
     Level level;
     if (Directory.Exists(SettingsProvider.Get<string>("level.name")))
         level = Level.LoadFrom(SettingsProvider.Get<string>("level.name"));
     else
     {
         level = new Level(generator, SettingsProvider.Get<string>("level.name"));
         level.AddWorld("overworld");
         level.SaveTo(SettingsProvider.Get<string>("level.name"));
     }
     MinecraftServer = new MinecraftServer(level);
     MinecraftServer.Settings.MotD = SettingsProvider.Get<string>("server.motd");
     MinecraftServer.Settings.OnlineMode = SettingsProvider.Get<bool>("server.onlinemode");
     MinecraftServer.ChatMessage += MinecraftServerOnChatMessage;
     MinecraftServer.PlayerLoggedIn += MinecraftServerOnPlayerLoggedIn;
     MinecraftServer.PlayerLoggedOut += MinecraftServerOnPlayerLoggedOut;
     //MinecraftServer.TabComplete += MinecraftServer_TabComplete;
 }
Пример #2
0
 internal ReadOnlyWorld()
 {
     World = new World("default");
     Level = new Level();
     Level.AddWorld(World);
     UnloadChunks = true;
 }
Пример #3
0
 public void TestCakeItem()
 {
     using (var level = new Level(new FlatlandGenerator()))
     {
         level.AddWorld("overworld");
         Item.OnItemUsedOnBlock(new ItemDescriptor(CakeItem.ItemId), level.DefaultWorld, new Coordinates3D(0, 3, 0),
             Coordinates3D.Up, Coordinates3D.Zero);
         Assert.AreEqual(CakeBlock.BlockId, level.DefaultWorld.GetBlockId(new Coordinates3D(0, 4, 0)));
     }
 }
Пример #4
0
 public void Initialize(Level level)
 {
     if (GeneratorOptions != null)
         return;
     if (level != null && !string.IsNullOrEmpty(level.GeneratorOptions))
         GeneratorOptions = level.GeneratorOptions;
     else
         GeneratorOptions = DefaultGeneratorOptions;
     if (string.IsNullOrEmpty(GeneratorOptions))
         GeneratorOptions = DefaultGeneratorOptions;
 }
Пример #5
0
 static void Main(string[] args)
 {
     if (Directory.Exists("world"))
         Directory.Delete("world", true);
     level = new Level(new StandardGenerator(), "world");
     level.AddWorld("region");
     level.SaveTo("world");
     var server = new MinecraftServer(level);
     server.ChatMessage += server_ChatMessage;
     server.PlayerLoggedIn += server_PlayerLoggedIn;
     server.Settings.OnlineMode = true;
     server.Start(new IPEndPoint(IPAddress.Any, 25565));
     Console.WriteLine("Press 'q' to exit");
     ConsoleKeyInfo cki;
     do cki = Console.ReadKey(true);
     while (cki.KeyChar != 'q');
     server.Stop();
 }
Пример #6
0
 static void Main(string[] args)
 {
     if (Directory.Exists("world"))
         Directory.Delete("world", true);
     level = new Level(new StandardGenerator(), "world");
     level.AddWorld("region");
     level.AddWorld("test", new FlatlandGenerator());
     level.Worlds[1].GenerateChunk(Coordinates2D.Zero);
     level.SaveTo("world");
     server = new MinecraftServer(level);
     server.ChatMessage += server_ChatMessage;
     server.Settings.OnlineMode = true;
     server.Settings.MotD = "Craft.Net Test Server";
     server.Start(new IPEndPoint(IPAddress.Any, 25565));
     Console.WriteLine("Press 'q' to exit");
     ConsoleKeyInfo cki;
     do cki = Console.ReadKey(true);
     while (cki.KeyChar != 'q');
     server.Stop();
 }
Пример #7
0
		public Server (int port, bool onlineMode, int maxPlayers, String motd, int difficulty, String levelName, String levelType, GameMode gamemode, String ingameMOTD)
		{
			var level = new Level ();
			if (levelType == "FLAT") {
				var generator = new FlatlandGenerator ();
				level = new Level (generator);
			} else if (levelType == "NORMAL") {
				var generator = new StandardGenerator ();
				level = new Level (generator);
			}
			level.AddWorld ("overworld");
			this.server = new MinecraftServer (level);
			this.server.Settings.MotD = motd;
			this.server.Settings.OnlineMode = onlineMode;
			this.server.Settings.MaxPlayers = (byte)maxPlayers;
			this.server.Settings.Difficulty = (Difficulty)difficulty;
			this.server.PlayerLoggedIn += OnPlayerLoggedIn;
			this.server.ChatMessage += OnPlayerChatMessage;
			this.server.PlayerLoggedOut += OnPlayerLoggedOut;
			this.server.Level.GameMode = gamemode;
			this.port = port;
			this.ingameMOTD = ingameMOTD;
		}
Пример #8
0
 public MinecraftServer(Level level, ServerSettings settings) : this(level)
 {
     Settings = settings;
 }
Пример #9
0
 public MinecraftServer(Level level) : this()
 {
     Level = level;
 }
Пример #10
0
 /// <summary>
 /// Called after the world generator is created and
 /// all values are set.
 /// </summary>
 public void Initialize(Level level)
 {
     const double persistence = 1, frequency = 0.01, amplitude = 80;
     int octaves = 2;
     noise = new Noise(persistence, frequency, amplitude, octaves, (int)Seed);
     SpawnPoint = new Vector3(0, GetHeight(0, 0), 0);
 }
Пример #11
0
 private static void CreateNewPlayer(Level level, RemoteClient client)
 {
     client.Entity = new PlayerEntity(client.Username);
     client.Entity.Position = level.Spawn;
     client.Entity.SpawnPoint = level.Spawn;
     client.GameMode = level.GameMode;
 }