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 = }
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; } } } }
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"); }); }
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(); }
public static void Import(string type, string csvFileName, WorldProvider provider) { using (StreamReader reader = new StreamReader(csvFileName)) { Import(type, reader.BaseStream, provider); } }
protected override void OnLoad(IRenderArgs args) { Alex.InGame = true; World.SpawnPoint = WorldProvider.GetSpawnPoint(); World.Camera.MoveTo(World.GetSpawnPoint(), Vector3.Zero); base.OnLoad(args); }
/// <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); }
/// <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); }
protected override void OnUnload() { World.Destroy(); WorldProvider.Dispose(); NetworkProvider.Close(); _playingHud.Unload(); //GetService<IEventDispatcher>().UnregisterEvents(_playingHud.Chat); //_playingHud.Chat = }
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); }
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)); } } }
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); } }
/// <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); }
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); }
protected override void OnUnload() { Alex.InGame = false; World.Destroy(); WorldProvider.Dispose(); NetworkProvider.Close(); _playingHud.Unload(); RichPresenceProvider.ClearPresence(); //GetService<IEventDispatcher>().UnregisterEvents(_playingHud.Chat); //_playingHud.Chat = }
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); }
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); }
public string GetName() { return(WorldProvider.GetName()); }
public WorldServer(WorldInfo info) : base(info, WorldProvider.getProviderForDimension()) { provider.registerWorld(this); chunkProvider = createChunkProvider(); }
public void ChunkReceived(ChunkColumn chunkColumn) { WorldProvider.ChunkReceived(chunkColumn); }
protected override void OnUnload() { World.Destroy(); WorldProvider.Dispose(); NetworkProvider.Close(); }
public void addWorldProvider(WorldProvider worldProvider) { this.worldProviders.Add(worldProvider); }
protected World(WorldInfo info, WorldProvider providerIn) { worldInfo = info; provider = providerIn; }
public void Initialize() { WorldProvider.Initialize(); }
public Vector3 GetSpawnPoint() { return(WorldProvider.GetSpawnPoint()); }
public bool HaveTheEnd() { return(WorldProvider.HaveTheEnd()); }
public bool HaveNether() { return(WorldProvider.HaveNether()); }
public int SaveChunks() { return(WorldProvider.SaveChunks()); }
public virtual bool TryGetWorldProvider(ServerConnectionDetails connectionDetails, PlayerProfile playerProfile, out WorldProvider worldProvider, out NetworkProvider networkProvider) { worldProvider = null; networkProvider = null; return(false); }
public long GetDayTime() { return(WorldProvider.GetDayTime()); }