private void GetNodes() { // If in editor, skip. if (!GetTree().GetRoot().HasNode("Game")) { return; } GameNode = GetTree().GetRoot().GetNode("Game") as Node2D; FirstSpellSlot = GameNode.GetNode("UI/Screen/SelectedSpell") as Control; SecondSpellSlot = GameNode.GetNode("UI/Screen/SecondSpell") as Control; // TODO: Add path support. LoadLevel("res://editorLevel.tscn"); // Load level. CurrentLevel = GameNode.GetNode("CurrentLevel") as Level; Entities = CurrentLevel.GetNode("Layers/Entities") as YSort; InGameMode = true; // Spawn Player. CurrentLevel.SpawnPlayer(); Hand = Entities.GetNode("Player/Hand") as Hand; if (CurrentLevel is null) { GD.PrintErr("[GAME] Current Level not found"); } }
public void DeferredGotoScene() { // It is now safe to remove the current scene CurrentScene.Free(); // Instance the new scene. CurrentScene = whatToLoad.Instance(); // Add it to the active scene, as child of root. GetTree().Root.AddChild(CurrentScene); // Optionally, to make it compatible with the SceneTree.change_scene() API. GetTree().CurrentScene = CurrentScene; foreach (object allChildren in GetTree().CurrentScene.GetChildren()) { if (allChildren.GetType().ToString() == "Godot.YSort") { YSort ySort = allChildren as YSort; GameData.mapYSort = ySort; } if (allChildren.GetType().ToString() == "Godot.Position2D") //setting camrea limits upon entering scene { Position2D positions = allChildren as Position2D; if (positions.Name.Contains("CameraLimit")) //only for maps that need it, if { Position2D cameraLimits = positions; switch (cameraLimits.Name) { case "CameraLimitTop": Player.playerCam.LimitTop = (int)cameraLimits.GlobalPosition.y; break; case "CameraLimitLeft": Player.playerCam.LimitLeft = (int)cameraLimits.GlobalPosition.x; break; case "CameraLimitBottom": Player.playerCam.LimitBottom = (int)cameraLimits.GlobalPosition.y; break; case "CameraLimitRight": Player.playerCam.LimitRight = (int)cameraLimits.GlobalPosition.x; break; } } } } GameData.transitioning = false; Player.player.Visible = true; //For cases where the player is invisible (The rest is resetting variables) Player.moveDuringTransition = false; Player.transitionVelocityVector = Vector2.Zero; GameData.gameData.EmitSignal(nameof(GameData.SwitchedMaps), spawnPointNumber, spawnDirection); transitionPlayer.Play("InTransition"); }
private void CreateTrees() { YSort ySort = GetNode <YSort>("YSort"); for (int i = 0; i < 10; i++) { SpruceTree spruceTree = (SpruceTree)SpruceTreeScene.Instance(); spruceTree.Name = "SpruceTree" + i.ToString(); spruceTree.Position = GetRandomPosition(); ySort.AddChild(spruceTree); } }
public override void _Ready() { _chestGUI = GetNode <ChestGUI>("ChestGUI"); _objectsYSort = GetNode <YSort>("Objects"); _player = _objectsYSort.GetNode <Player>("Player"); _pauseMenu = GetNode <PauseMenu>("PauseMenu"); _guildInterface = GetNode <GuildInterface>("GuildInterface"); _extendedTileMap = GetNode <TileMap>("Extended"); _firstChestPosition = GetNode <Position2D>("FirstChestPosition").Position; _rightBorder = GetNode <CollisionShape2D>("Borders/Right"); _player.birdsSystem.Visible = false; _player.cloudsSystem.Visible = false; UpdateGuildFromLevel(); }
public void CreateMobs() { YSort ySort = GetNode <YSort>("YSort"); for (int i = 0; i < 20; i++) { Mob mob = (Mob)MobScene.Instance(); mob.Name = "Mob" + i.ToString(); mob.Position = GetRandomPosition(); ySort.AddChild(mob); GetNode("YSort/Mob" + i.ToString() + "/UI/SelectionArea").Connect("LeftClick", this, nameof(LeftClickOnMob)); GetNode("YSort/Mob" + i.ToString() + "/UI/SelectionArea").Connect("RightClick", this, nameof(RightCLickOnMob)); Mobs.Add(mob); } }
public override void _Ready() { _map = GetNode <YSort>("Map"); _enemySpawns = GetNode <Node2D>("EnemySpawns"); _combat = GetNode <Combat>("Combat"); _combatMenu = _combat.GetNode <CombatMenu>("CombatMenu"); _pauseMenu = GetNode <PauseMenu>("PauseMenu"); _player = _map.GetNode <Player>("Player"); _droppedItemsGUI = GetNode <DroppedItems>("DroppedItems"); _player.birdsSystem.Visible = true; _player.cloudsSystem.Visible = true; _player.Position = SaveManager.SaveData.WorldPosition; if (!AudioSystem.IsMusicPlaying) { AudioSystem.PlayMusic(AudioSystem.MusicCollection.Overworld); } SpawnEnemies(); }
public void GetNodes() { if (!GetTree().GetRoot().HasNode("Editor")) { EditorMode = false; return; } // Making sure that this code doesn't get executed more than once. EditorMode = true; // Getting the viewport first because thats where we are going to palce the loaded level. // Also where the camera is located. Viewport = GetTree().GetRoot().GetNode("Editor/ViewportContainer/Viewport") as Viewport; Camera = GetTree().GetRoot().GetNode("Editor/ViewportContainer/Viewport/Camera") as EditorCamera; LoadLevel("res://editorLevel.tscn"); // Loading the level scene. // Getting other refs. Entities = GetTree().GetRoot().GetNode("Editor/ViewportContainer/Viewport/CurrentLevel/Layers/Entities") as YSort; CurrentLevel = GetTree().GetRoot().GetNode("Editor/ViewportContainer/Viewport/CurrentLevel") as Level; }
public override void _Ready() { _enemies = GetNode <YSort>("Enemies"); AddDoors(); AddEnemies(); }
public override void _Ready() { Navigation2D = GetNode <Navigation2D>("Navigation2D"); _ySort = GetNode <YSort>("YSort"); _playerSpawnPosition = GetNode <Node2D>("PlayerSpawn").GlobalPosition; }