//Ensures folders exist, sets up defaults, processes command line arguments and runs Autoexec.csx public override void _Ready() { //First we make sure that the Saves folder exists { Directory Dir = new Directory(); if (!Dir.DirExists("user://Saves")) { Dir.MakeDir("user://Saves"); } } //Then defaults are set SetupDefaults(); //Then command line arguments are processed bool ConnectFlag = false; string[] CmdArgs = OS.GetCmdlineArgs(); foreach (string CurrentArg in CmdArgs) { Console.Log($"Command line argument '{CurrentArg}'"); switch (CurrentArg) { case "-connect": { ConnectFlag = true; Net.ConnectTo("127.0.0.1"); break; } } } if (OS.IsDebugBuild() && !ConnectFlag) { Game.Nickname = "me"; } if (CmdArgs.Length > 0) { Console.LogLabel.Text += "\n"; } }
//Ensures folders exist, sets up defaults, processes command line arguments and runs Autoexec.csx public override void _Ready() { //First we make sure that the Saves folder exists { Directory Dir = new Directory(); if (!Dir.DirExists("user://Saves")) { Dir.MakeDir("user://Saves"); } } //Then defaults are set SetupDefaults(); //Then command line arguments are processed string[] CmdArgs = OS.GetCmdlineArgs(); foreach (string CurrentArg in CmdArgs) { Console.Log($"Command line argument '{CurrentArg}'"); switch (CurrentArg) { case "-host": { Net.Host(); break; } case "-connect": { Net.ConnectTo("127.0.0.1"); break; } } } if (CmdArgs.Length > 0) { Console.LogLabel.Text += "\n"; } Console.Print("The console is disabled in 0.1.6"); }
public static bool Connect(string Ip) { if (Net.Work.NetworkPeer != null) { if (Net.Work.IsNetworkServer()) { Console.ThrowPrint("Cannot connect when hosting"); } else { Console.ThrowPrint("Cannot connect when already connected to a server"); } return(false); } if (Game.Nickname == Game.DefaultNickname) { Console.ThrowPrint("Please set a multiplayer nickname before connecting"); return(false); } else { if (Ip == "" || Ip == "localhost") { Ip = "127.0.0.1"; } IPAddress Address; //Unused, just to check if valid ip if (!IPAddress.TryParse(Ip, out Address)) //Requires an `out` argument { Console.ThrowPrint("Please provide a valid IP address"); return(false); } Net.ConnectTo(Ip); return(true); } }
public void ConnectPressed() { string Ip = IpEdit.GetText(); if (Ip == "localhost") { Ip = "127.0.0.1"; } IPAddress Address; //Unused, just to check if valid ip if (!IPAddress.TryParse(Ip, out Address)) { //Invalid ip AlertLabel.Visible = true; AlertLabel.Text = "Please enter a valid IP address"; return; } //Valid ip Menu.BuildWaitConnecting(); Net.ConnectTo(Ip); }
static List <object> GetDelCall(string Name) { switch (Name) { case "print": return(new List <object> { Name, new Action <string>(delegate(string ToPrint){ Console.Print(ToPrint); }) }); case "log": return(new List <object> { Name, new Action <string>(delegate(string ToLog){ Console.Log(ToLog); }) }); case "host": return(new List <object> { Name, new Action(delegate(){ Net.Host(); }) }); case "connect": return(new List <object> { Name, new Action <string>(delegate(string Ip){ if (Ip == "" || Ip == "localhost" || Ip == "undefined") { Ip = "127.0.0.1"; } Net.ConnectTo(Ip); }) }); case "disconnect": return(new List <object> { Name, new Action(delegate(){ Net.Disconnect(); }) }); case "ms_get": return(new List <object> { Name, new Func <int>(() => { return OS.GetTicksMsec(); }) }); case "peerlist_get": return(new List <object> { Name, new Func <Jurassic.Library.ArrayInstance>(() => { Jurassic.Library.ArrayInstance Out = Scripting.ConsoleEngine.Array.Construct(); foreach (int Id in Net.PeerList) { Out.Push(Id); } return Out; }) }); case "bind": return(new List <object> { Name, new Action <string, string>(delegate(string FunctionName, string InputString){ Bindings.Bind(FunctionName, InputString); }) }); case "unbind": return(new List <object> { Name, new Action <string>(delegate(string FunctionName){ Bindings.UnBind(FunctionName); }) }); case "player_input_forward_set": return(new List <object> { Name, new Action <double>(delegate(double Sens){ Game.PossessedPlayer.ForwardMove(Sens); }) }); case "player_input_forward_get": return(new List <object> { Name, new Func <double>(() => { return Game.PossessedPlayer.ForwardSens; }) }); case "player_input_backward_set": return(new List <object> { Name, new Action <double>(delegate(double Sens){ Game.PossessedPlayer.BackwardMove(Sens); }) }); case "player_input_backward_get": return(new List <object> { Name, new Func <double>(() => { return Game.PossessedPlayer.BackwardSens; }) }); case "player_input_right_set": return(new List <object> { Name, new Action <double>(delegate(double Sens){ Game.PossessedPlayer.RightMove(Sens); }) }); case "player_input_right_get": return(new List <object> { Name, new Func <double>(() => { return Game.PossessedPlayer.RightSens; }) }); case "player_input_left_set": return(new List <object> { Name, new Action <double>(delegate(double Sens){ Game.PossessedPlayer.LeftMove(Sens); }) }); case "player_input_left_get": return(new List <object> { Name, new Func <double>(() => { return Game.PossessedPlayer.LeftSens; }) }); case "player_input_sprint_set": return(new List <object> { Name, new Action <double>(delegate(double Sens){ Game.PossessedPlayer.Sprint(Sens); }) }); case "player_input_sprint_get": return(new List <object> { Name, new Func <double>(() => { return Game.PossessedPlayer.IsSprinting ? 1d : 0d; }) }); case "player_input_jump_set": return(new List <object> { Name, new Action <double>(delegate(double Sens){ Game.PossessedPlayer.Jump(Sens); }) }); case "player_input_jump_get": return(new List <object> { Name, new Func <double>(() => { return Game.PossessedPlayer.IsJumping ? 1d : 0d; }) }); case "player_input_inventory_up": return(new List <object> { Name, new Action(delegate(){ Game.PossessedPlayer.InventoryUp(); }) }); case "player_input_inventory_down": return(new List <object> { Name, new Action(delegate(){ Game.PossessedPlayer.InventoryDown(); }) }); case "player_input_look_up": return(new List <object> { Name, new Action <double>(delegate(double Sens){ Game.PossessedPlayer.LookUp(Sens); }) }); case "player_input_look_down": return(new List <object> { Name, new Action <double>(delegate(double Sens){ Game.PossessedPlayer.LookDown(Sens); }) }); case "player_input_look_right": return(new List <object> { Name, new Action <double>(delegate(double Sens){ Game.PossessedPlayer.LookRight(Sens); }) }); case "player_input_look_left": return(new List <object> { Name, new Action <double>(delegate(double Sens){ Game.PossessedPlayer.LookLeft(Sens); }) }); case "player_input_build_rotate": return(new List <object> { Name, new Action <double>(delegate(double Sens){ Game.PossessedPlayer.BuildRotate(Sens); }) }); case "player_input_primary_fire": return(new List <object> { Name, new Action <double>(delegate(double Sens){ Game.PossessedPlayer.PrimaryFire(Sens); }) }); case "player_input_secondary_fire": return(new List <object> { Name, new Action <double>(delegate(double Sens){ Game.PossessedPlayer.SecondaryFire(Sens); }) }); case "gamemode_set": return(new List <object> { Name, new Action <string>(delegate(string GameModeName){ if (Game.Self.GetTree().GetNetworkPeer() != null && Game.Self.GetTree().GetNetworkUniqueId() == 1) { Scripting.LoadGameMode(GameModeName); } else { Console.Print("Error: Cannot set gamemode as client"); } }) }); case "gamemode_get": return(new List <object> { Name, new Func <string>(() => { return Scripting.GamemodeName; }) }); case "chunk_render_distance_set": return(new List <object> { Name, new Action <double>(delegate(double Distance){ if (Distance < 2d) { Console.Print("Cannot set render distance value lower than two chunks"); return; } Game.ChunkRenderDistance = (int)Distance; Game.PossessedPlayer.UnloadAndRequestChunks(); }) }); case "chunk_render_distance_get": return(new List <object> { Name, new Func <double>(() => { return Convert.ToDouble(Game.ChunkRenderDistance); }) }); case "save": return(new List <object> { Name, new Action(delegate(){ Building.SaveWorld("TestSave"); }) }); case "load": return(new List <object> { Name, new Action(delegate(){ Building.LoadWorld("TestSave"); }) }); default: throw new System.ArgumentException("Invalid GetDelCall name arg '" + Name + "'"); } }
static List <object> GetDelCall(string Name) { switch (Name) { case "print": return(new List <object> { Name, new Action <string>(delegate(string ToPrint){ Console.Print(ToPrint); }) }); case "log": return(new List <object> { Name, new Action <string>(delegate(string ToLog){ Console.Log(ToLog); }) }); case "host": return(new List <object> { Name, new Action(delegate(){ Net.Host(); }) }); case "connect": return(new List <object> { Name, new Action <string>(delegate(string Ip){ if (Ip == "" || Ip == "localhost" || Ip == "undefined") { Ip = "127.0.0.1"; } Net.ConnectTo(Ip); }) }); case "ms_get": return(new List <object> { Name, new Func <int>(() => { return OS.GetTicksMsec(); }) }); case "peerlist_get": return(new List <object> { Name, new Func <Jurassic.Library.ArrayInstance>(() => { Jurassic.Library.ArrayInstance Out = Scripting.ConsoleEngine.Array.Construct(); foreach (int Id in Net.PeerList) { Out.Push(Id); } return Out; }) }); case "bind": return(new List <object> { Name, new Action <string, string>(delegate(string FunctionName, string InputString){ Bindings.Bind(FunctionName, InputString); }) }); case "unbind": return(new List <object> { Name, new Action <string>(delegate(string FunctionName){ Bindings.UnBind(FunctionName); }) }); case "player_input_forward_set": return(new List <object> { Name, new Action <double>(delegate(double Sens){ Game.PossessedPlayer.ForwardMove(Sens); }) }); case "player_input_forward_get": return(new List <object> { Name, new Func <double>(() => { return Game.PossessedPlayer.ForwardSens; }) }); case "player_input_backward_set": return(new List <object> { Name, new Action <double>(delegate(double Sens){ Game.PossessedPlayer.BackwardMove(Sens); }) }); case "player_input_backward_get": return(new List <object> { Name, new Func <double>(() => { return Game.PossessedPlayer.BackwardSens; }) }); case "player_input_right_set": return(new List <object> { Name, new Action <double>(delegate(double Sens){ Game.PossessedPlayer.RightMove(Sens); }) }); case "player_input_right_get": return(new List <object> { Name, new Func <double>(() => { return Game.PossessedPlayer.RightSens; }) }); case "player_input_left_set": return(new List <object> { Name, new Action <double>(delegate(double Sens){ Game.PossessedPlayer.LeftMove(Sens); }) }); case "player_input_left_get": return(new List <object> { Name, new Func <double>(() => { return Game.PossessedPlayer.LeftSens; }) }); case "player_input_sprint_set": return(new List <object> { Name, new Action <double>(delegate(double Sens){ Game.PossessedPlayer.Sprint(Sens); }) }); case "player_input_sprint_get": return(new List <object> { Name, new Func <double>(() => { return Game.PossessedPlayer.IsSprinting ? 1d : 0d; }) }); case "player_input_jump_set": return(new List <object> { Name, new Action <double>(delegate(double Sens){ Game.PossessedPlayer.Jump(Sens); }) }); case "player_input_jump_get": return(new List <object> { Name, new Func <double>(() => { return Game.PossessedPlayer.IsJumping ? 1d : 0d; }) }); case "player_input_inventory_up": return(new List <object> { Name, new Action(delegate(){ Game.PossessedPlayer.InventoryUp(); }) }); case "player_input_inventory_down": return(new List <object> { Name, new Action(delegate(){ Game.PossessedPlayer.InventoryDown(); }) }); case "player_input_look_up": return(new List <object> { Name, new Action <double>(delegate(double Sens){ Game.PossessedPlayer.LookUp(Sens); }) }); case "player_input_look_down": return(new List <object> { Name, new Action <double>(delegate(double Sens){ Game.PossessedPlayer.LookDown(Sens); }) }); case "player_input_look_right": return(new List <object> { Name, new Action <double>(delegate(double Sens){ Game.PossessedPlayer.LookRight(Sens); }) }); case "player_input_look_left": return(new List <object> { Name, new Action <double>(delegate(double Sens){ Game.PossessedPlayer.LookLeft(Sens); }) }); case "player_input_primary_fire": return(new List <object> { Name, new Action <double>(delegate(double Sens){ Game.PossessedPlayer.PrimaryFire(Sens); }) }); default: throw new System.ArgumentException("Invalid GetDelCall name arg '" + Name + "'"); } }
//Ensures folders exist, sets up defaults, processes command line arguments and runs Autoexec.csx public override void _Ready() { //First we make sure that the Saves and Gamemodes folders exist { Directory Dir = new Directory(); if (!Dir.DirExists("user://Saves")) { Dir.MakeDir("user://Saves"); } if (!Dir.DirExists("user//Gamemodes")) { Dir.MakeDir("user://Gamemodes"); } } //Then defaults are set SetupDefaults(); //Then command line arguments are processed string[] CmdArgs = OS.GetCmdlineArgs(); foreach (string CurrentArg in CmdArgs) { Console.Log($"Command line argument '{CurrentArg}'"); switch (CurrentArg) { case "-host": { Net.Host(); break; } case "-connect": { Net.ConnectTo("127.0.0.1"); break; } } } if (CmdArgs.Length > 0) { Console.LogLabel.Text += "\n"; } //autoexec.csx is executed last File Autoexec = new File(); if (Autoexec.FileExists("user://Autoexec.csx")) { Autoexec.Open("user://Autoexec.csx", 1); Console.Print("Autoexec loaded"); try { Scripting.ConsoleState = Scripting.ConsoleState.ContinueWithAsync(Autoexec.GetAsText()).Result; Console.Print("Successfully executed autoexec"); } catch (Exception Error) { Console.Print(Error.Message); Console.Print("AUTOEXEC FAILED: Not all parts of the autoexec executed successfully. It is highly recommended that you fix your autoexec and restart the game."); } } else { Console.Print("Autoexec not found, creating a default one"); System.IO.File.WriteAllText($"{OS.GetUserDataDir()}/Autoexec.csx", "// This is your autoexec\n// It is executed directly after command line arugments are\n\n"); } Autoexec.Close(); }
internal void ConnectTo(string addr) { // connect to a client ---- changed Net.ConnectTo(addr); }