public override void _Ready() { GD.Randomize(); // Get references to all the nodes we need to manipulate _mortar = GetNode <Mortar>("MortarPestle/Mortar"); _potionCircle = GetNode <PotionCircle>("MortarPestle/Crush/PotionCircle"); _potionReagentsBox = GetNode <VBoxContainer>("MortarPestle/PickReagents/PotionReagentsBox"); _helpDialog = GetNode <AcceptDialog>("HelpDialog"); _proceedToCrush = GetNode <Button>("MortarPestle/PickReagents/ProceedToCrush"); _tween = GetNode <Tween>("MortarPestle/PickReagents/Tween"); _inventory = GetNode <Inventory>("MortarPestle/PickReagents/Inventory"); _inventory.SetSize(4, 4); _inventory.DrawPosition = new Vector2(324f, 16f); _inventory.CanDeselect = false; _itemTooltip = GetNode <ItemTooltip>("MortarPestle/PickReagents/ItemTooltip"); _debugOverlay = GetNode <DebugOverlay>("DebugOverlay"); // Load assets needed _itemBtnBg = GD.Load <Texture>("res://textures/item_slot.png"); _singleItemSlot = GD.Load <Texture>("res://textures/single_item_slot.png"); _smallFont = GD.Load <DynamicFont>("res://font/small_font.tres"); // Signal connections GetNode <TouchScreenButton>("HelpButton").Connect("released", this, nameof(DisplayHelpPopup)); _proceedToCrush.Connect("pressed", this, nameof(ProceedToCrushPressed)); _tween.Connect("tween_all_completed", this, nameof(TweenAllCompleted)); _inventory.Connect("ItemSlotSelected", this, nameof(InventorySlotSelected)); GetNode <Button>("MortarPestle/PickReagents/AddToPotion").Connect("pressed", this, nameof(ItemButtonReleased)); // Adding items to simulate an inventory _itemList.AddRange(new Item.ItemStack[] { new Item.ItemStack(Items.BRIMSTONE, 1), new Item.ItemStack(Items.FLY_AGARIC, 3), new Item.ItemStack(Items.ELDERBERRIES, 5), new Item.ItemStack(Items.ORPIMENT, 1), new Item.ItemStack(Items.HOLLY_BERRIES, 3) }); _inventory.UpdateSlots(_itemList); // Tracking stuff for debug _debugOverlay.TrackProperty(nameof(_mortarPestleStage), this, "MortarPestleStage"); _debugOverlay.TrackProperty(nameof(_mortar.CurrentParticleColour), _mortar, "Splash Colour"); }
public override void _Ready() { // Get nodes _joystick = GetParent().GetNode("CanvasLayer/Joystick").GetChild <JoystickButton>(0); _playerSprite = GetNode <Sprite>("PlayerSprite"); _inventory = GetParent().GetNode <Inventory>("CanvasLayer/Inventory"); _debugOverlay = GetParent().GetNode <DebugOverlay>("CanvasLayer/DebugOverlay"); _audioPlayer = GetNode <AudioStreamPlayer>("AudioPlayer"); _itemTooltip = (ItemTooltip)GD.Load <PackedScene>("res://ItemTooltip.tscn").Instance(); GetParent().GetNode("CanvasLayer").AddChild(_itemTooltip); _gathering = GetParent <Gathering>(); _footstepPlayer = GetNode <AudioStreamPlayer>("FootstepPlayer"); _miscPlayer = GetNode <AudioStreamPlayer>("MiscPlayer"); // Load assets _runForwards = GD.Load <Texture>("res://textures/Player_run_forwards.png"); _runBackwards = GD.Load <Texture>("res://textures/Player_run_backwards.png"); _runRight = GD.Load <Texture>("res://textures/Player_run_right.png"); _runForwardsNormal = GD.Load <Texture>("res://textures/normal/Player_run_forwards_n.png"); _runBackwardsNormal = GD.Load <Texture>("res://textures/normal/Player_run_backwards_n.png"); _runRightNormal = GD.Load <Texture>("res://textures/normal/Player_run_right_n.png"); _forestSong = GD.Load <AudioStreamOGGVorbis>("res://audio/music/enchanted_forest_longer.ogg"); // Load footstep sounds into an array for (int i = 0; i < _footstepSounds.Length; i++) { string terrainType = string.Empty; int indexOffset = 0; if (i < 4) { terrainType = "dirt"; } else if (i >= 4 && i < 8) { terrainType = "grass"; indexOffset = 4; } else if (i >= 8) { terrainType = "stone"; indexOffset = 8; } _footstepSounds[i] = GD.Load <AudioStream>("res://audio/sfx/footstep/" + terrainType + "_" + (i - indexOffset + 1).ToString() + ".wav"); } // Load magic pop sounds for (int i = 0; i < _magicPopSounds.Length; i++) { _magicPopSounds[i] = GD.Load <AudioStream>("res://audio/sfx/magic/magic_pop_open_0" + (i + 1).ToString() + ".wav"); } // Other setup Timer spriteAnimTimer = GetNode <Timer>("SpriteAnimateTimer"); spriteAnimTimer.WaitTime = 1f / _SpriteFPS; spriteAnimTimer.Connect("timeout", this, nameof(AnimateSprite)); _invItems.AddRange(new Item.ItemStack[] { new Item.ItemStack(Items.BRIMSTONE, 1), new Item.ItemStack(Items.FLY_AGARIC, 3), new Item.ItemStack(Items.ELDERBERRIES, 5), new Item.ItemStack(Items.AQUA_FORTIS, 1), new Item.ItemStack(Items.HOLLY_BERRIES, 3), new Item.ItemStack(Items.AQUA_VITAE, 1) }); GetParent().GetNode <Inventory>("CanvasLayer/Inventory").UpdateSlots(_invItems); _debugOverlay.TrackProperty(nameof(_inventory.Scale), _inventory, "Inventory Scale"); _debugOverlay.TrackFunc(nameof(FloorPositionString), this, "Player Position"); _inventory.Connect("ItemSlotSelected", this, nameof(InventorySlotSelected)); _audioPlayer.Stream = _forestSong; _audioPlayer.VolumeDb = -25f; _audioPlayer.Play(); }