public static void CloseWorld() { if (RuntimeRoot.HasNode("SkyScene")) { RuntimeRoot.GetNode("SkyScene").QueueFree(); } PlayerList.Clear(); PossessedPlayer = ((PackedScene)GD.Load("res://Player/Player.tscn")).Instance() as Player; //Prevent crashes when player movement commands are run when world is not initalized StructureRoot = null; Scripting.GamemodeName = null; Scripting.SetupServerEngine(); Scripting.SetupClientEngine(); Scripting.ClientGmScript = null; Building.Chunks.Clear(); Building.RemoteLoadedChunks.Clear(); }
public static void StartWorld(bool AsServer = false) { CloseWorld(); Node SkyScene = ((PackedScene)GD.Load("res://World/SkyScene.tscn")).Instance(); SkyScene.SetName("SkyScene"); RuntimeRoot.AddChild(SkyScene); StructureRoot = new StructureRootClass(); StructureRoot.SetName("StructureRoot"); SkyScene.AddChild(StructureRoot); if (AsServer) { Scripting.SetupServerEngine(); Building.Place(Items.TYPE.PLATFORM, new Vector3(), new Vector3(), 0); } }