示例#1
0
        public MultiplayerClient(TrueCraftUser user)
        {
            User         = user;
            Client       = new TcpClient();
            PacketReader = new PacketReader();
            PacketReader.RegisterCorePackets();
            PacketHandlers = new PacketHandler[0x100];
            Handlers.PacketHandlers.RegisterHandlers(this);
            World     = new ReadOnlyWorld();
            Inventory = new InventoryWindow(null);
            var repo = new BlockRepository();

            repo.DiscoverBlockProviders();
            World.World.BlockRepository = repo;
            World.World.ChunkProvider   = new EmptyGenerator();
            Physics    = new PhysicsEngine(World.World, repo);
            SocketPool = new SocketAsyncEventArgsPool(100, 200, 65536);
            connected  = 0;
            cancel     = new CancellationTokenSource();
            Health     = 20;
            var crafting = new CraftingRepository();

            CraftingRepository = crafting;
            crafting.DiscoverRecipes();
        }
示例#2
0
        // We need to spawn the main thread manually so we can register the assembly resolver
        // and manage apartment state ourselves.
        private static void Main_Thread(string[] args)
        {
            UserSettings.Local = new UserSettings();
            UserSettings.Local.Load();

            var user = new TrueCraftUser {
                Username = args[1]
            };
            var client = new MultiplayerClient(user);
            var game   = new TrueCraftGame(client, ParseEndPoint(args[0]));

            game.Run();
            client.Disconnect();
        }
示例#3
0
        public static void Start(params string[] args)
        {
            var username = args.Length == 0 ? "" : args[0];
            var endpoint = args.Length < 2 ? "127.0.0.1" : args[1];

            UserSettings.Local = new UserSettings();
            UserSettings.Local.Load();

            var user = new TrueCraftUser {
                Username = username
            };
            var client = new MultiPlayerClient(user);
            var game   = new TrueCraftGame(client, ParseEndPoint(endpoint));

            game.Run();
            client.Disconnect();
        }
示例#4
0
        public static void Main(string[] args)
        {
            if (args.Length == 0)
            {
                args = new[] { "127.0.0.1", "-" };
            }

            UserSettings.Local = new UserSettings();
            UserSettings.Local.Load();

            var user = new TrueCraftUser {
                Username = args[1]
            };
            var client = new MultiplayerClient(user);
            var game   = new TrueCraftGame(client, ParseEndPoint(args[0]));

            game.Run();
            client.Disconnect();
        }
示例#5
0
        public LauncherWindow()
        {
            Title  = "TrueCraft Launcher";
            Width  = 300;
            Height = 100;
            User   = new TrueCraftUser();

            MainContainer    = new HBox();
            OptionView       = new OptionView(this);
            MultiPlayerView  = new MultiPlayerView(this);
            SinglePlayerView = new SinglePlayerView(this);
            InteractionBox   = new VBox();
            MainMenuView     = new MainMenuView(this);

            using (var stream = Assembly.GetExecutingAssembly()
                                .GetManifestResourceStream("TrueCraft.Launcher.Content.truecraft_logo.png"))
                TrueCraftLogoImage = new ImageView(Image.FromStream(stream).WithBoxSize(300, 75));

            InteractionBox.PackStart(TrueCraftLogoImage);
            InteractionBox.PackEnd(MainMenuView);
            MainContainer.PackEnd(InteractionBox);

            Content = MainContainer;
        }