From af766236c1ee40b42fdb32c6b81fec5483421d12 Mon Sep 17 00:00:00 2001 From: Mario Steele Date: Fri, 13 Jun 2025 17:11:08 -0500 Subject: [PATCH] Added WildPokemon Scene Started work on Wild Poke`mon Scene for capturing wild pokemon. --- Scenes/WildPokemon.cs | 49 +++++++++++++++++++++++++++++++++++++++ Scenes/WildPokemon.cs.uid | 1 + Scenes/WildPokemon.tscn | 10 ++++++++ 3 files changed, 60 insertions(+) create mode 100644 Scenes/WildPokemon.cs create mode 100644 Scenes/WildPokemon.cs.uid create mode 100644 Scenes/WildPokemon.tscn diff --git a/Scenes/WildPokemon.cs b/Scenes/WildPokemon.cs new file mode 100644 index 0000000..692e4ca --- /dev/null +++ b/Scenes/WildPokemon.cs @@ -0,0 +1,49 @@ +using Godot; +using System; +using System.ComponentModel; +using System.Text; +using Godot.Sharp.Extras; +using PokeApiNet; +using PokePurple.Library.Singletons; + +public partial class WildPokemon : Node2D +{ + private Generations _generations = new(); + private Pokemon _pokemon; + private PokeApiClient _apiClient; + private System.Net.Http.HttpClient _http; + [NodePath] private AnimatedSprite2D _pokemonSprite; + + private String _animatedUrl = + "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/{0}.gif"; + + public override void _Ready() + { + this.OnReady(); + _apiClient = new(); + _http = new(); + _generations.Generation = 8; + InitPokemon(); + } + + public override void _Input(InputEvent @event) + { + if (Input.IsActionJustPressed("debug_pokemon")) + { + InitPokemon(); + } + } + + private async void InitPokemon() + { + var pokeId = _generations.PickRandomPokemon(); + _pokemon = await _apiClient.GetResourceAsync(pokeId); + GD.Print(_pokemon.Name); + var url = String.Format(_animatedUrl, pokeId); + GD.Print(url); + var data = await _http.GetByteArrayAsync(url); + var frames = GifManager.Instance.SpriteFramesFromBuffer(data); + _pokemonSprite.SpriteFrames = frames; + _pokemonSprite.Play(); + } +} diff --git a/Scenes/WildPokemon.cs.uid b/Scenes/WildPokemon.cs.uid new file mode 100644 index 0000000..1db12bd --- /dev/null +++ b/Scenes/WildPokemon.cs.uid @@ -0,0 +1 @@ +uid://cfn824p8fcutm diff --git a/Scenes/WildPokemon.tscn b/Scenes/WildPokemon.tscn new file mode 100644 index 0000000..f0d44f9 --- /dev/null +++ b/Scenes/WildPokemon.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=2 format=3 uid="uid://k73x3ho8t1x1"] + +[ext_resource type="Script" uid="uid://cfn824p8fcutm" path="res://Scenes/WildPokemon.cs" id="1_3f6p2"] + +[node name="WildPokemon" type="Node2D"] +script = ExtResource("1_3f6p2") + +[node name="PokemonSprite" type="AnimatedSprite2D" parent="."] +position = Vector2(180, 180) +scale = Vector2(2, 2)