Exemplo n.º 1
0
        protected override void OnUnload()
        {
            Alex.InGame = false;

            new Thread(
                o =>
            {
                NetworkProvider.Close();

                World.Destroy();
                WorldProvider.Dispose();

                _playingHud.Unload();

                //var threadPool =
                //	ReflectionHelper.GetPrivateStaticPropertyValue<MiNET.Utils.DedicatedThreadPool>(
                //		typeof(MiNetServer), "FastThreadPool");
                //threadPool?.Dispose();
                //ReflectionHelper.SetPrivateStaticPropertyValue<MiNET.Utils.DedicatedThreadPool>(typeof(MiNetServer), "FastThreadPool", null);

                RichPresenceProvider.ClearPresence();
            }).Start();

            //GetService<IEventDispatcher>().UnregisterEvents(_playingHud.Chat);
            //_playingHud.Chat =
        }
Exemplo n.º 2
0
        public static void Import(string type, Stream csvFileStream, WorldProvider provider)
        {
            List <string> lines = new List <string>();
            StringBuilder sb    = new StringBuilder();

            using (CsvReader reader = new CsvReader(csvFileStream))
            {
                string[] line = reader.GetCSVLine();
                while ((line = reader.GetCSVLine()) != null)
                {
                    switch (type)
                    {
                    case ImportTypes.Creature:
                        ParseCreature(line, sb, provider);
                        break;

                    case ImportTypes.Npc:
                        ParseNpc(line, sb, provider);
                        break;

                    case ImportTypes.Item:
                        ParseItem(line, sb, provider);
                        break;

                    case ImportTypes.Quest:
                        ParseQuest(line, sb, provider);
                        break;

                    case ImportTypes.Award:
                        ParseAward(line, sb, provider);
                        break;
                    }
                }
            }
        }
Exemplo n.º 3
0
        public void LoadWorld(WorldProvider worldProvider, INetworkProvider networkProvider)
        {
            PlayingState playState = new PlayingState(this, GraphicsDevice, worldProvider, networkProvider);

            LoadingWorldState loadingScreen = new LoadingWorldState();

            GameStateManager.AddState("loading", loadingScreen);
            GameStateManager.SetActiveState("loading");

            worldProvider.Load(loadingScreen.UpdateProgress).ContinueWith(task =>
            {
                GameStateManager.RemoveState("play");
                GameStateManager.AddState("play", playState);

                if (networkProvider.IsConnected)
                {
                    GameStateManager.SetActiveState("play");
                }
                else
                {
                    GameStateManager.RemoveState("play");
                    worldProvider.Dispose();
                }

                GameStateManager.RemoveState("loading");
            });
        }
Exemplo n.º 4
0
        public PlayingState(Alex alex, GraphicsDevice graphics, WorldProvider worldProvider, INetworkProvider networkProvider) : base(alex)
        {
            NetworkProvider = networkProvider;

            World       = new World(alex, graphics, Options, new FirstPersonCamera(Options.VideoOptions.RenderDistance, Vector3.Zero, Vector3.Zero), networkProvider);
            SkyRenderer = new SkyBox(alex, graphics, World);

            WorldProvider = worldProvider;
            if (worldProvider is SPWorldProvider)
            {
                World.FreezeWorldTime = true;
            }

            var chat  = new ChatComponent(World);
            var title = new TitleComponent();

            WorldProvider = worldProvider;
            WorldProvider.Init(World, chat, out var info, out var chatProvider);
            World.WorldInfo              = info;
            chat.ChatProvider            = chatProvider;
            WorldProvider.TitleComponent = title;

            _playingHud = new PlayingHud(Alex, World.Player, chat, title);
            _debugInfo  = new GuiDebugInfo();
            InitDebugInfo();
        }
Exemplo n.º 5
0
 public static void Import(string type, string csvFileName, WorldProvider provider)
 {
     using (StreamReader reader = new StreamReader(csvFileName))
     {
         Import(type, reader.BaseStream, provider);
     }
 }
Exemplo n.º 6
0
        protected override void OnLoad(IRenderArgs args)
        {
            Alex.InGame = true;

            World.SpawnPoint = WorldProvider.GetSpawnPoint();
            World.Camera.MoveTo(World.GetSpawnPoint(), Vector3.Zero);
            base.OnLoad(args);
        }
Exemplo n.º 7
0
        /// <inheritdoc />
        public override bool TryGetWorldProvider(ServerConnectionDetails connectionDetails, PlayerProfile profile,
                                                 out WorldProvider worldProvider,
                                                 out NetworkProvider networkProvider)
        {
            worldProvider = new BedrockWorldProvider(Alex, connectionDetails.EndPoint,
                                                     profile, new DedicatedThreadPool(new DedicatedThreadPoolSettings(4, "Bedrock Thread")), out networkProvider);

            return(true);
        }
Exemplo n.º 8
0
        /// <inheritdoc />
        public override bool TryGetWorldProvider(ServerConnectionDetails connectionDetails, PlayerProfile profile,
                                                 out WorldProvider worldProvider,
                                                 out NetworkProvider networkProvider)
        {
            worldProvider = new BedrockWorldProvider(Alex, connectionDetails.EndPoint,
                                                     profile, out networkProvider);

            return(true);
        }
Exemplo n.º 9
0
        protected override void OnUnload()
        {
            World.Destroy();
            WorldProvider.Dispose();
            NetworkProvider.Close();

            _playingHud.Unload();
            //GetService<IEventDispatcher>().UnregisterEvents(_playingHud.Chat);
            //_playingHud.Chat =
        }
Exemplo n.º 10
0
        public virtual ChunkColumn GenerateChunkColumn(ChunkCoordinates chunkCoordinates, bool cacheOnly = false)
        {
            var chunk = WorldProvider.GenerateChunkColumn(chunkCoordinates, cacheOnly);

            if (chunk != null)
            {
                Level.EventDispatcher.DispatchEvent(new ChunkGeneratedEvent(chunkCoordinates, chunk, Level));
            }

            return(chunk);
        }
Exemplo n.º 11
0
 public void GenerateChunkRadius(int radius)
 {
     for (int x = radius; x > -radius; x--)
     {
         for (int z = radius; z > -radius; z--)
         {
             //Debug.WriteLine($"Generating Chunk at ({x},{z})");
             WorldProvider.GenerateChunkColumn(new ChunkCoordinates(x, z));
         }
     }
 }
Exemplo n.º 12
0
        public void RecalculateBlockLight()
        {
            Queue <Block> lightSources = WorldProvider.GetLightSources();

            while (lightSources.Count > 0)
            {
                Block block = lightSources.Dequeue();
                block = GetConvertedBlock(block.Coordinates);
                Lighting.BlockLightCalculations.Calculate(this, block);
            }
        }
Exemplo n.º 13
0
        /// <inheritdoc />
        public override bool TryGetWorldProvider(ServerConnectionDetails connectionDetails,
                                                 PlayerProfile playerProfile,
                                                 out WorldProvider worldProvider,
                                                 out NetworkProvider networkProvider)
        {
            worldProvider = new JavaWorldProvider(Alex, connectionDetails.EndPoint, playerProfile, new DedicatedThreadPool(new DedicatedThreadPoolSettings(2)), out networkProvider)
            {
                Hostname = connectionDetails.Hostname
            };

            return(true);
        }
Exemplo n.º 14
0
        public PlayingState(Alex alex, GraphicsDevice graphics, WorldProvider worldProvider, NetworkProvider networkProvider) : base(alex)
        {
            NetworkProvider = networkProvider;

            World = new World(alex.Services, graphics, Options, networkProvider);
            World.Player.IsFirstPersonMode = true;

            WorldProvider = worldProvider;
            if (worldProvider is SPWorldProvider)
            {
                World.DoDaylightcycle = false;
                //World.Player.SetInventory(new BedrockInventory(46));
                if (ItemFactory.TryGetItem("minecraft:diamond_sword", out var sword))
                {
                    World.Player.Inventory.MainHand = sword;
                    World.Player.Inventory[World.Player.Inventory.SelectedSlot] = sword;
                }
            }

            var title = new TitleComponent();

            WorldProvider = worldProvider;
            WorldProvider.Init(World);

            WorldProvider.TitleComponent = title;

            _playingHud = new PlayingHud(Alex, World.Player, title);
            _playingHud.Chat.Network = networkProvider;

            WorldProvider.ScoreboardView = _playingHud.Scoreboard;
            WorldProvider.ChatRecipient  = _playingHud;
            //WorldProvider.ScoreboardView

            _debugInfo = new GuiDebugInfo();
            InitDebugInfo();

            MiniMap = new GuiMiniMap(World.ChunkManager)
            {
                Anchor = Alignment.TopRight
            };

            var settings = GetService <IOptionsProvider>();

            settings.AlexOptions.VideoOptions.Minimap.Bind(OnMinimapSettingChange);
            RenderMinimap = settings.AlexOptions.VideoOptions.Minimap.Value;

            if (RenderMinimap)
            {
                _playingHud.AddChild(MiniMap);
            }

            _networkDebugHud = new NetworkDebugHud(NetworkProvider);
        }
Exemplo n.º 15
0
        protected override void OnUnload()
        {
            Alex.InGame = false;

            World.Destroy();
            WorldProvider.Dispose();
            NetworkProvider.Close();

            _playingHud.Unload();

            RichPresenceProvider.ClearPresence();
            //GetService<IEventDispatcher>().UnregisterEvents(_playingHud.Chat);
            //_playingHud.Chat =
        }
Exemplo n.º 16
0
        protected override void OnLoad(IRenderArgs args)
        {
            Alex.InGame = true;

            World.SpawnPoint = WorldProvider.GetSpawnPoint();
            World.Camera.MoveTo(World.GetSpawnPoint(), Vector3.Zero);

            /*RichPresenceProvider.SetPresence(new RichPresence()
             * {
             *      State = "Multiplayer",
             *      Timestamps = Timestamps.Now,
             *      Details = $"Playing on a {WorldProvider} server.",
             *      Assets = RichPresenceProvider.GetDefaultAssets()
             * });
             */
            base.OnLoad(args);
        }
Exemplo n.º 17
0
        private static IGameWorld CreateWorld(IConsoleWriter consoleWriter)
        {
            var gameObjectLocator = new GameObjectLocator();

            var lineIntersectionResolver = new LianBarskyIntersectionResolver();
            var geometryMathService      = new GeometryMathService(lineIntersectionResolver);

            var serializedGameObjectDataProvider = new SerializedGameObjectDataProvider();
            var enemyData  = serializedGameObjectDataProvider.GetEnemyData();
            var playerData = serializedGameObjectDataProvider.GetPlayerData();
            var stoneData  = serializedGameObjectDataProvider.GetStoneData();
            var shellData  = serializedGameObjectDataProvider.GetShellData();

            var shellInputComponent   = new ShellInputComponent();
            var shellPhysicComponent  = new PhysicComponent(shellData.Speed);
            var shellLogicComponent   = new ShellLogicComponent();
            var shellGraphicComponent = new CharGraphicComponent(shellData.DisplayChar, consoleWriter);
            var shell = new GameObject(shellInputComponent, shellPhysicComponent,
                                       shellLogicComponent, shellGraphicComponent);

            shell.Width  = shellData.Width;
            shell.Height = shellData.Height;
            var fireCommand = new FireCommand(shell);

            var serializedGameObjectBuilders = new List <ISerializedGameObjectBuilder>()
            {
                new StoneBuilder(consoleWriter, stoneData),
                new PlayerBuilder(consoleWriter, geometryMathService, fireCommand, playerData),
                new EnemyBuilder(consoleWriter, gameObjectLocator, geometryMathService, fireCommand, enemyData),
                new WinPlatformBuilder(consoleWriter, gameObjectLocator, geometryMathService)
            };

            var gameObjectBuilder = new GameObjectBuilder(serializedGameObjectBuilders, gameObjectLocator);

            var worldProvider = new WorldProvider(gameObjectBuilder, geometryMathService, consoleWriter);
            var world         = worldProvider.GetWorld(1);

            return(world);
        }
Exemplo n.º 18
0
 public string GetName()
 {
     return(WorldProvider.GetName());
 }
Exemplo n.º 19
0
 public WorldServer(WorldInfo info) : base(info, WorldProvider.getProviderForDimension())
 {
     provider.registerWorld(this);
     chunkProvider = createChunkProvider();
 }
Exemplo n.º 20
0
 public void ChunkReceived(ChunkColumn chunkColumn)
 {
     WorldProvider.ChunkReceived(chunkColumn);
 }
Exemplo n.º 21
0
 protected override void OnUnload()
 {
     World.Destroy();
     WorldProvider.Dispose();
     NetworkProvider.Close();
 }
Exemplo n.º 22
0
 public void addWorldProvider(WorldProvider worldProvider)
 {
     this.worldProviders.Add(worldProvider);
 }
Exemplo n.º 23
0
 protected World(WorldInfo info, WorldProvider providerIn)
 {
     worldInfo = info;
     provider  = providerIn;
 }
Exemplo n.º 24
0
 public void Initialize()
 {
     WorldProvider.Initialize();
 }
Exemplo n.º 25
0
 public Vector3 GetSpawnPoint()
 {
     return(WorldProvider.GetSpawnPoint());
 }
Exemplo n.º 26
0
 public bool HaveTheEnd()
 {
     return(WorldProvider.HaveTheEnd());
 }
Exemplo n.º 27
0
 public bool HaveNether()
 {
     return(WorldProvider.HaveNether());
 }
Exemplo n.º 28
0
 public int SaveChunks()
 {
     return(WorldProvider.SaveChunks());
 }
Exemplo n.º 29
0
 public virtual bool TryGetWorldProvider(ServerConnectionDetails connectionDetails, PlayerProfile playerProfile, out WorldProvider worldProvider, out NetworkProvider networkProvider)
 {
     worldProvider   = null;
     networkProvider = null;
     return(false);
 }
Exemplo n.º 30
0
 public long GetDayTime()
 {
     return(WorldProvider.GetDayTime());
 }