Exemple #1
0
        public Target FillTargets(OpenPlayer commander, OpenLevel level, string source)
        {
            Target target = ParseTarget(source);

            if (target.Selector == "closestPlayer" && target.Rules == null)
            {
                target.Players = new[] { commander };
            }
            else if (target.Selector == "closestPlayer" && target.Rules != null)
            {
                string username = target.Rules.First().Value;
                var    players  = level.GetAllPlayers().Where(p => p.Username == username);
                target.Players = players.ToArray();
            }
            else if (target.Selector == "allPlayers")
            {
                target.Players = level.GetAllPlayers();
            }
            else if (target.Selector == "allEntities")
            {
                target.Entities = level.GetEntites();
            }
            else if (target.Selector == "randomPlayer")
            {
                MiNET.Player[] players = level.GetAllPlayers();
                target.Players = new[] { players[new Random().Next(players.Length)] };
            }


            return(target);
        }
        public override void Enabled(OpenApi api)
        {
            Api = api;
            if (Config.GetProperty("WorldGen.IsDefault", false))
            {
                IWorldGenerator generator;

                /* generator = new MiNET.Worlds.SuperflatGenerator(Dimension.Overworld)
                 * {
                 *   BlockLayers = new List<Block>()
                 *   {
                 *       new Bedrock(),
                 *       new Dirt(),
                 *       new Dirt(),
                 *       new Grass()
                 *   }
                 * };*/

                generator = new OverworldGeneratorV2();

                var level = new OpenLevel(api, api.LevelManager, Dimension.Overworld.ToString(),
                                          new DebugWorldProvider(generator), api.LevelManager.EntityManager, GameMode.Creative,
                                          Difficulty.Peaceful);

                api.LevelManager.LoadLevel(level);
                api.LevelManager.SetDefaultLevel(level);
            }

            api.EventDispatcher.RegisterEvents(this);

            if (Config.GetProperty("WorldGen.Debug", false))
            {
                _timer = new Timer(Callback, null, TimeSpan.Zero, TimeSpan.FromSeconds(1.25));
            }
        }
Exemple #3
0
        public SingleplayerServer(string world, Gamemode gamemode, Difficulty difficulty, Alex alex, IPEndPoint endPoint, PlayerProfile profile, DedicatedThreadPool threadPool, out NetworkProvider networkProvider) : base(alex, endPoint, profile, threadPool, out networkProvider)
        {
            Server = new OpenServer();
            ReflectionHelper.SetPrivatePropertyValue(
                typeof(OpenServer), Server, "Endpoint", new IPEndPoint(IPAddress.Loopback, 0));

            ConnectionEndpoint = Server.Endpoint;
            Api = ReflectionHelper.GetPrivatePropertyValue <OpenApi>(typeof(OpenServer), Server, "OpenApi");

            MiNET.Worlds.AnvilWorldProvider provider = new MiNET.Worlds.AnvilWorldProvider(world);

            MiNETLevel = new OpenLevel(
                Api, Api.LevelManager, "default", provider, Api.LevelManager.EntityManager, (GameMode)gamemode,
                difficulty);

            Api.LevelManager.SetDefaultLevel(MiNETLevel);
        }
Exemple #4
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="coordinates">The coordinates of the new chunk</param>
 /// <param name="chunk">An instance of the affected chunk</param>
 /// <param name="level">The level the chunk was generated in</param>
 public ChunkGeneratedEvent(ChunkCoordinates coordinates, ChunkColumn chunk, OpenLevel level) : base(chunk, level)
 {
     Coordinates = coordinates;
 }
Exemple #5
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="world">The level that got initiated</param>
 public LevelInitEvent(OpenLevel world) : base(world)
 {
 }
Exemple #6
0
 public LevelSaveEvent(OpenLevel world) : base(world)
 {
     throw new NotImplementedException();
 }
Exemple #7
0
 public ChunkEvent(ChunkColumn chunk, OpenLevel level) : base(level)
 {
     Chunk = chunk;
 }
Exemple #8
0
 public OpenEntity(int entityTypeId, OpenLevel level) : base(entityTypeId, level)
 {
     OpenLevel = level;
 }
Exemple #9
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="chunk">The chunk that was unloaded</param>
 /// <param name="level">The level the chunk was unloaded from</param>
 public ChunkUnloadEvent(ChunkColumn chunk, OpenLevel level) : base(chunk, level)
 {
 }
 /// <summary>
 ///
 /// </summary>
 /// <param name="world">The level the entity was added to</param>
 /// <param name="entity">The entity that has been added</param>
 public LevelEntityAddedEvent(OpenLevel world, MiNET.Entities.Entity entity) : base(world)
 {
     Entity = entity;
 }
 /// <summary>
 ///
 /// </summary>
 /// <param name="world">The level that got closed</param>
 public LevelClosedEvent(OpenLevel world) : base(world)
 {
 }
Exemple #12
0
 public ChunkSaveEvent(ChunkColumn chunk, OpenLevel level) : base(chunk, level)
 {
 }
Exemple #13
0
 public LevelEvent(OpenLevel world)
 {
     Level = world;
 }