Random character

This commit is contained in:
wjsjwr 2024-11-30 00:57:01 +08:00
parent bd0f367687
commit edc28cddcb
8 changed files with 641 additions and 470 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
# Godot 4+ specific ignores
.godot/
/android/
~*.dll

View File

@ -1,6 +1,7 @@
[gd_scene load_steps=2 format=3 uid="uid://c1ohxlt6fy4rr"]
[gd_scene load_steps=3 format=3 uid="uid://c1ohxlt6fy4rr"]
[ext_resource type="Script" path="res://scripts/GameManager.cs" id="1_uwl7p"]
[ext_resource type="Script" path="res://scripts/Res.cs" id="2_3213b"]
[node name="GameManager" type="Node"]
script = ExtResource("1_uwl7p")
@ -8,3 +9,6 @@ script = ExtResource("1_uwl7p")
[node name="OneSecondTicker" type="Timer" parent="."]
unique_name_in_owner = true
autostart = true
[node name="Res" type="Node" parent="."]
script = ExtResource("2_3213b")

View File

@ -19,4 +19,5 @@ public partial class GameManager : Node
public override void _Process(double delta)
{
}
}

View File

@ -1,11 +1,12 @@
using Godot;
using System;
using System.Collections.Generic;
public partial class Loader : Control
{
private ProgressBar progressBar;
private int sceneLoaded = 0;
private string[] scenesToLoad = {
private List<string> resToLoad = new (){
"res://lab.tscn",
"res://player.tscn"
};
@ -18,30 +19,38 @@ public partial class Loader : Control
if (nextScene != null) {
GameManager.NextScene = "res://lab.tscn";
}
ResourceLoader.LoadThreadedRequest(scenesToLoad[sceneLoaded]);
progressBar.MaxValue = 100 * scenesToLoad.Length;
resToLoad.AddRange(Res.Accessory);
resToLoad.AddRange(Res.Body);
resToLoad.AddRange(Res.Eye);
resToLoad.AddRange(Res.Hair);
resToLoad.AddRange(Res.Outfit);
resToLoad.AddRange(Res.Smartphone);
ResourceLoader.LoadThreadedRequest(resToLoad[sceneLoaded]);
progressBar.MaxValue = 100 * resToLoad.Count;
SetProcess(true);
}
// Called every frame. 'delta' is the elapsed time since the previous frame.
public override void _Process(double delta)
{
Godot.Collections.Array progress = new();
switch(ResourceLoader.LoadThreadedGetStatus(scenesToLoad[sceneLoaded], progress))
switch(ResourceLoader.LoadThreadedGetStatus(resToLoad[sceneLoaded], progress))
{
case ResourceLoader.ThreadLoadStatus.InProgress:
progressBar.Value = 100 * sceneLoaded + (int)((float)progress[0] * 100);
break;
case ResourceLoader.ThreadLoadStatus.Loaded:
sceneLoaded++;
if(sceneLoaded < scenesToLoad.Length) {
ResourceLoader.LoadThreadedRequest(scenesToLoad[sceneLoaded]);
if(sceneLoaded < resToLoad.Count) {
ResourceLoader.LoadThreadedRequest(resToLoad[sceneLoaded]);
} else {
var transit = GetNode<SceneTransit>("/root/SceneTransit");
transit.Transit("res://lab.tscn", false);
SetProcess(false);
}
break;
default:
GD.Print("Error loading scene: " + scenesToLoad[sceneLoaded]);
GD.Print("Error loading scene: " + resToLoad[sceneLoaded]);
break;
}
}

501
scripts/Res.cs Normal file
View File

@ -0,0 +1,501 @@
using Godot;
using System;
public partial class Res : Node
{
// Called when the node enters the scene tree for the first time.
public override void _Ready()
{
}
// Called every frame. 'delta' is the elapsed time since the previous frame.
public override void _Process(double delta)
{
}
public enum Type
{
ACCESSORY,
BODY,
EYE,
HAIR,
OUTFIT,
PHONE
}
public static string GetRandom(Type resType)
{
var resources = allResources[(int)resType];
if (resources == null) {
GD.PrintErr("resources is null");
GD.Print(allResources);
}
int index = GD.RandRange(0, resources.Length - 1);
return resources[index];
}
public static readonly string[] Body = {
"res://resources/characters/bodies/Body_48x48_01.png",
"res://resources/characters/bodies/Body_48x48_02.png",
"res://resources/characters/bodies/Body_48x48_03.png",
"res://resources/characters/bodies/Body_48x48_04.png",
"res://resources/characters/bodies/Body_48x48_05.png",
"res://resources/characters/bodies/Body_48x48_06.png",
"res://resources/characters/bodies/Body_48x48_07.png",
"res://resources/characters/bodies/Body_48x48_08.png",
};
public static readonly string[] Accessory = {
"res://resources/characters/accessories/Accessory_01_Ladybug_48x48_01.png",
"res://resources/characters/accessories/Accessory_01_Ladybug_48x48_02.png",
"res://resources/characters/accessories/Accessory_01_Ladybug_48x48_03.png",
"res://resources/characters/accessories/Accessory_01_Ladybug_48x48_04.png",
"res://resources/characters/accessories/Accessory_02_Bee_48x48_01.png",
"res://resources/characters/accessories/Accessory_02_Bee_48x48_02.png",
"res://resources/characters/accessories/Accessory_02_Bee_48x48_03.png",
"res://resources/characters/accessories/Accessory_03_Backpack_48x48_01.png",
"res://resources/characters/accessories/Accessory_03_Backpack_48x48_02.png",
"res://resources/characters/accessories/Accessory_03_Backpack_48x48_03.png",
"res://resources/characters/accessories/Accessory_03_Backpack_48x48_04.png",
"res://resources/characters/accessories/Accessory_03_Backpack_48x48_05.png",
"res://resources/characters/accessories/Accessory_03_Backpack_48x48_06.png",
"res://resources/characters/accessories/Accessory_03_Backpack_48x48_07.png",
"res://resources/characters/accessories/Accessory_03_Backpack_48x48_08.png",
"res://resources/characters/accessories/Accessory_03_Backpack_48x48_09.png",
"res://resources/characters/accessories/Accessory_03_Backpack_48x48_10.png",
"res://resources/characters/accessories/Accessory_04_Snapback_48x48_01.png",
"res://resources/characters/accessories/Accessory_04_Snapback_48x48_02.png",
"res://resources/characters/accessories/Accessory_04_Snapback_48x48_03.png",
"res://resources/characters/accessories/Accessory_04_Snapback_48x48_04.png",
"res://resources/characters/accessories/Accessory_04_Snapback_48x48_05.png",
"res://resources/characters/accessories/Accessory_04_Snapback_48x48_06.png",
"res://resources/characters/accessories/Accessory_05_Dino_Snapback_48x48_01.png",
"res://resources/characters/accessories/Accessory_05_Dino_Snapback_48x48_02.png",
"res://resources/characters/accessories/Accessory_05_Dino_Snapback_48x48_03.png",
"res://resources/characters/accessories/Accessory_06_Policeman_Hat_48x48_01.png",
"res://resources/characters/accessories/Accessory_06_Policeman_Hat_48x48_02.png",
"res://resources/characters/accessories/Accessory_06_Policeman_Hat_48x48_03.png",
"res://resources/characters/accessories/Accessory_06_Policeman_Hat_48x48_04.png",
"res://resources/characters/accessories/Accessory_06_Policeman_Hat_48x48_05.png",
"res://resources/characters/accessories/Accessory_06_Policeman_Hat_48x48_06.png",
"res://resources/characters/accessories/Accessory_07_Bataclava_48x48_01.png",
"res://resources/characters/accessories/Accessory_07_Bataclava_48x48_02.png",
"res://resources/characters/accessories/Accessory_07_Bataclava_48x48_03.png",
"res://resources/characters/accessories/Accessory_08_Detective_Hat_48x48_01.png",
"res://resources/characters/accessories/Accessory_08_Detective_Hat_48x48_02.png",
"res://resources/characters/accessories/Accessory_08_Detective_Hat_48x48_03.png",
"res://resources/characters/accessories/Accessory_09_Zombie_Brain_48x48_01.png",
"res://resources/characters/accessories/Accessory_09_Zombie_Brain_48x48_02.png",
"res://resources/characters/accessories/Accessory_09_Zombie_Brain_48x48_03.png",
"res://resources/characters/accessories/Accessory_10_Bolt_48x48_01.png",
"res://resources/characters/accessories/Accessory_10_Bolt_48x48_02.png",
"res://resources/characters/accessories/Accessory_10_Bolt_48x48_03.png",
"res://resources/characters/accessories/Accessory_11_Beanie_48x48_01.png",
"res://resources/characters/accessories/Accessory_11_Beanie_48x48_02.png",
"res://resources/characters/accessories/Accessory_11_Beanie_48x48_03.png",
"res://resources/characters/accessories/Accessory_11_Beanie_48x48_04.png",
"res://resources/characters/accessories/Accessory_11_Beanie_48x48_05.png",
"res://resources/characters/accessories/Accessory_12_Mustache_48x48_01.png",
"res://resources/characters/accessories/Accessory_12_Mustache_48x48_02.png",
"res://resources/characters/accessories/Accessory_12_Mustache_48x48_03.png",
"res://resources/characters/accessories/Accessory_12_Mustache_48x48_04.png",
"res://resources/characters/accessories/Accessory_12_Mustache_48x48_05.png",
"res://resources/characters/accessories/Accessory_13_Beard_48x48_01.png",
"res://resources/characters/accessories/Accessory_13_Beard_48x48_02.png",
"res://resources/characters/accessories/Accessory_13_Beard_48x48_03.png",
"res://resources/characters/accessories/Accessory_13_Beard_48x48_04.png",
"res://resources/characters/accessories/Accessory_13_Beard_48x48_05.png",
"res://resources/characters/accessories/Accessory_14_Gloves_48x48_01.png",
"res://resources/characters/accessories/Accessory_14_Gloves_48x48_02.png",
"res://resources/characters/accessories/Accessory_14_Gloves_48x48_03.png",
"res://resources/characters/accessories/Accessory_14_Gloves_48x48_04.png",
"res://resources/characters/accessories/Accessory_15_Glasses_48x48_01.png",
"res://resources/characters/accessories/Accessory_15_Glasses_48x48_02.png",
"res://resources/characters/accessories/Accessory_15_Glasses_48x48_03.png",
"res://resources/characters/accessories/Accessory_15_Glasses_48x48_04.png",
"res://resources/characters/accessories/Accessory_15_Glasses_48x48_05.png",
"res://resources/characters/accessories/Accessory_15_Glasses_48x48_06.png",
"res://resources/characters/accessories/Accessory_16_Monocle_48x48_01.png",
"res://resources/characters/accessories/Accessory_16_Monocle_48x48_02.png",
"res://resources/characters/accessories/Accessory_16_Monocle_48x48_03.png",
"res://resources/characters/accessories/Accessory_17_Medical_Mask_48x48_01.png",
"res://resources/characters/accessories/Accessory_17_Medical_Mask_48x48_02.png",
"res://resources/characters/accessories/Accessory_17_Medical_Mask_48x48_03.png",
"res://resources/characters/accessories/Accessory_17_Medical_Mask_48x48_04.png",
"res://resources/characters/accessories/Accessory_17_Medical_Mask_48x48_05.png",
"res://resources/characters/accessories/Accessory_18_Chef_48x48_01.png",
"res://resources/characters/accessories/Accessory_18_Chef_48x48_02.png",
"res://resources/characters/accessories/Accessory_18_Chef_48x48_03.png",
"res://resources/characters/accessories/Accessory_19_Party_Cone_48x48_01.png",
"res://resources/characters/accessories/Accessory_19_Party_Cone_48x48_02.png",
"res://resources/characters/accessories/Accessory_19_Party_Cone_48x48_03.png",
"res://resources/characters/accessories/Accessory_19_Party_Cone_48x48_04.png",
};
public static readonly string[] Eye = {
"res://resources/characters/eyes/Eyes_48x48_01.png",
"res://resources/characters/eyes/Eyes_48x48_02.png",
"res://resources/characters/eyes/Eyes_48x48_03.png",
"res://resources/characters/eyes/Eyes_48x48_04.png",
"res://resources/characters/eyes/Eyes_48x48_05.png",
"res://resources/characters/eyes/Eyes_48x48_06.png",
"res://resources/characters/eyes/Eyes_48x48_07.png",
};
public static readonly string[] Hair = {
"res://resources/characters/hairstyles/Hairstyle_01_48x48_01.png",
"res://resources/characters/hairstyles/Hairstyle_01_48x48_02.png",
"res://resources/characters/hairstyles/Hairstyle_01_48x48_03.png",
"res://resources/characters/hairstyles/Hairstyle_01_48x48_04.png",
"res://resources/characters/hairstyles/Hairstyle_01_48x48_05.png",
"res://resources/characters/hairstyles/Hairstyle_01_48x48_06.png",
"res://resources/characters/hairstyles/Hairstyle_01_48x48_07.png",
"res://resources/characters/hairstyles/Hairstyle_02_48x48_01.png",
"res://resources/characters/hairstyles/Hairstyle_02_48x48_02.png",
"res://resources/characters/hairstyles/Hairstyle_02_48x48_03.png",
"res://resources/characters/hairstyles/Hairstyle_02_48x48_04.png",
"res://resources/characters/hairstyles/Hairstyle_02_48x48_05.png",
"res://resources/characters/hairstyles/Hairstyle_02_48x48_06.png",
"res://resources/characters/hairstyles/Hairstyle_02_48x48_07.png",
"res://resources/characters/hairstyles/Hairstyle_03_48x48_01.png",
"res://resources/characters/hairstyles/Hairstyle_03_48x48_02.png",
"res://resources/characters/hairstyles/Hairstyle_03_48x48_03.png",
"res://resources/characters/hairstyles/Hairstyle_03_48x48_04.png",
"res://resources/characters/hairstyles/Hairstyle_03_48x48_05.png",
"res://resources/characters/hairstyles/Hairstyle_03_48x48_06.png",
"res://resources/characters/hairstyles/Hairstyle_03_48x48_07.png",
"res://resources/characters/hairstyles/Hairstyle_04_48x48_01.png",
"res://resources/characters/hairstyles/Hairstyle_04_48x48_02.png",
"res://resources/characters/hairstyles/Hairstyle_04_48x48_03.png",
"res://resources/characters/hairstyles/Hairstyle_04_48x48_04.png",
"res://resources/characters/hairstyles/Hairstyle_04_48x48_05.png",
"res://resources/characters/hairstyles/Hairstyle_04_48x48_06.png",
"res://resources/characters/hairstyles/Hairstyle_04_48x48_07.png",
"res://resources/characters/hairstyles/Hairstyle_05_48x48_01.png",
"res://resources/characters/hairstyles/Hairstyle_05_48x48_02.png",
"res://resources/characters/hairstyles/Hairstyle_05_48x48_03.png",
"res://resources/characters/hairstyles/Hairstyle_05_48x48_04.png",
"res://resources/characters/hairstyles/Hairstyle_05_48x48_05.png",
"res://resources/characters/hairstyles/Hairstyle_05_48x48_06.png",
"res://resources/characters/hairstyles/Hairstyle_05_48x48_07.png",
"res://resources/characters/hairstyles/Hairstyle_06_48x48_01.png",
"res://resources/characters/hairstyles/Hairstyle_06_48x48_02.png",
"res://resources/characters/hairstyles/Hairstyle_06_48x48_03.png",
"res://resources/characters/hairstyles/Hairstyle_06_48x48_04.png",
"res://resources/characters/hairstyles/Hairstyle_06_48x48_05.png",
"res://resources/characters/hairstyles/Hairstyle_06_48x48_06.png",
"res://resources/characters/hairstyles/Hairstyle_06_48x48_07.png",
"res://resources/characters/hairstyles/Hairstyle_07_48x48_01.png",
"res://resources/characters/hairstyles/Hairstyle_07_48x48_02.png",
"res://resources/characters/hairstyles/Hairstyle_07_48x48_03.png",
"res://resources/characters/hairstyles/Hairstyle_07_48x48_04.png",
"res://resources/characters/hairstyles/Hairstyle_07_48x48_05.png",
"res://resources/characters/hairstyles/Hairstyle_07_48x48_06.png",
"res://resources/characters/hairstyles/Hairstyle_07_48x48_07.png",
"res://resources/characters/hairstyles/Hairstyle_08_48x48_01.png",
"res://resources/characters/hairstyles/Hairstyle_08_48x48_02.png",
"res://resources/characters/hairstyles/Hairstyle_08_48x48_03.png",
"res://resources/characters/hairstyles/Hairstyle_08_48x48_04.png",
"res://resources/characters/hairstyles/Hairstyle_08_48x48_05.png",
"res://resources/characters/hairstyles/Hairstyle_08_48x48_06.png",
"res://resources/characters/hairstyles/Hairstyle_08_48x48_07.png",
"res://resources/characters/hairstyles/Hairstyle_09_48x48_01.png",
"res://resources/characters/hairstyles/Hairstyle_09_48x48_02.png",
"res://resources/characters/hairstyles/Hairstyle_09_48x48_03.png",
"res://resources/characters/hairstyles/Hairstyle_09_48x48_04.png",
"res://resources/characters/hairstyles/Hairstyle_09_48x48_05.png",
"res://resources/characters/hairstyles/Hairstyle_09_48x48_06.png",
"res://resources/characters/hairstyles/Hairstyle_09_48x48_07.png",
"res://resources/characters/hairstyles/Hairstyle_10_48x48_01.png",
"res://resources/characters/hairstyles/Hairstyle_10_48x48_02.png",
"res://resources/characters/hairstyles/Hairstyle_10_48x48_03.png",
"res://resources/characters/hairstyles/Hairstyle_10_48x48_04.png",
"res://resources/characters/hairstyles/Hairstyle_10_48x48_05.png",
"res://resources/characters/hairstyles/Hairstyle_10_48x48_06.png",
"res://resources/characters/hairstyles/Hairstyle_10_48x48_07.png",
"res://resources/characters/hairstyles/Hairstyle_11_48x48_01.png",
"res://resources/characters/hairstyles/Hairstyle_11_48x48_02.png",
"res://resources/characters/hairstyles/Hairstyle_11_48x48_03.png",
"res://resources/characters/hairstyles/Hairstyle_11_48x48_04.png",
"res://resources/characters/hairstyles/Hairstyle_11_48x48_05.png",
"res://resources/characters/hairstyles/Hairstyle_11_48x48_06.png",
"res://resources/characters/hairstyles/Hairstyle_11_48x48_07.png",
"res://resources/characters/hairstyles/Hairstyle_12_48x48_01.png",
"res://resources/characters/hairstyles/Hairstyle_12_48x48_02.png",
"res://resources/characters/hairstyles/Hairstyle_12_48x48_03.png",
"res://resources/characters/hairstyles/Hairstyle_12_48x48_04.png",
"res://resources/characters/hairstyles/Hairstyle_12_48x48_05.png",
"res://resources/characters/hairstyles/Hairstyle_12_48x48_06.png",
"res://resources/characters/hairstyles/Hairstyle_12_48x48_07.png",
"res://resources/characters/hairstyles/Hairstyle_13_48x48_01.png",
"res://resources/characters/hairstyles/Hairstyle_13_48x48_02.png",
"res://resources/characters/hairstyles/Hairstyle_13_48x48_03.png",
"res://resources/characters/hairstyles/Hairstyle_13_48x48_04.png",
"res://resources/characters/hairstyles/Hairstyle_13_48x48_05.png",
"res://resources/characters/hairstyles/Hairstyle_13_48x48_06.png",
"res://resources/characters/hairstyles/Hairstyle_13_48x48_07.png",
"res://resources/characters/hairstyles/Hairstyle_14_48x48_01.png",
"res://resources/characters/hairstyles/Hairstyle_14_48x48_02.png",
"res://resources/characters/hairstyles/Hairstyle_14_48x48_03.png",
"res://resources/characters/hairstyles/Hairstyle_14_48x48_04.png",
"res://resources/characters/hairstyles/Hairstyle_14_48x48_05.png",
"res://resources/characters/hairstyles/Hairstyle_14_48x48_06.png",
"res://resources/characters/hairstyles/Hairstyle_14_48x48_07.png",
"res://resources/characters/hairstyles/Hairstyle_15_48x48_01.png",
"res://resources/characters/hairstyles/Hairstyle_15_48x48_02.png",
"res://resources/characters/hairstyles/Hairstyle_15_48x48_03.png",
"res://resources/characters/hairstyles/Hairstyle_15_48x48_04.png",
"res://resources/characters/hairstyles/Hairstyle_15_48x48_05.png",
"res://resources/characters/hairstyles/Hairstyle_15_48x48_06.png",
"res://resources/characters/hairstyles/Hairstyle_15_48x48_07.png",
"res://resources/characters/hairstyles/Hairstyle_16_48x48_01.png",
"res://resources/characters/hairstyles/Hairstyle_16_48x48_02.png",
"res://resources/characters/hairstyles/Hairstyle_16_48x48_03.png",
"res://resources/characters/hairstyles/Hairstyle_16_48x48_04.png",
"res://resources/characters/hairstyles/Hairstyle_16_48x48_05.png",
"res://resources/characters/hairstyles/Hairstyle_16_48x48_06.png",
"res://resources/characters/hairstyles/Hairstyle_16_48x48_07.png",
"res://resources/characters/hairstyles/Hairstyle_17_48x48_01.png",
"res://resources/characters/hairstyles/Hairstyle_17_48x48_02.png",
"res://resources/characters/hairstyles/Hairstyle_17_48x48_03.png",
"res://resources/characters/hairstyles/Hairstyle_17_48x48_04.png",
"res://resources/characters/hairstyles/Hairstyle_17_48x48_05.png",
"res://resources/characters/hairstyles/Hairstyle_17_48x48_06.png",
"res://resources/characters/hairstyles/Hairstyle_17_48x48_07.png",
"res://resources/characters/hairstyles/Hairstyle_18_48x48_01.png",
"res://resources/characters/hairstyles/Hairstyle_18_48x48_02.png",
"res://resources/characters/hairstyles/Hairstyle_18_48x48_03.png",
"res://resources/characters/hairstyles/Hairstyle_18_48x48_04.png",
"res://resources/characters/hairstyles/Hairstyle_18_48x48_05.png",
"res://resources/characters/hairstyles/Hairstyle_18_48x48_06.png",
"res://resources/characters/hairstyles/Hairstyle_18_48x48_07.png",
"res://resources/characters/hairstyles/Hairstyle_19_48x48_01.png",
"res://resources/characters/hairstyles/Hairstyle_19_48x48_02.png",
"res://resources/characters/hairstyles/Hairstyle_19_48x48_03.png",
"res://resources/characters/hairstyles/Hairstyle_19_48x48_04.png",
"res://resources/characters/hairstyles/Hairstyle_19_48x48_05.png",
"res://resources/characters/hairstyles/Hairstyle_19_48x48_06.png",
"res://resources/characters/hairstyles/Hairstyle_19_48x48_07.png",
"res://resources/characters/hairstyles/Hairstyle_20_48x48_01.png",
"res://resources/characters/hairstyles/Hairstyle_20_48x48_02.png",
"res://resources/characters/hairstyles/Hairstyle_20_48x48_03.png",
"res://resources/characters/hairstyles/Hairstyle_20_48x48_04.png",
"res://resources/characters/hairstyles/Hairstyle_20_48x48_05.png",
"res://resources/characters/hairstyles/Hairstyle_20_48x48_06.png",
"res://resources/characters/hairstyles/Hairstyle_20_48x48_07.png",
"res://resources/characters/hairstyles/Hairstyle_21_48x48_01.png",
"res://resources/characters/hairstyles/Hairstyle_21_48x48_02.png",
"res://resources/characters/hairstyles/Hairstyle_21_48x48_03.png",
"res://resources/characters/hairstyles/Hairstyle_21_48x48_04.png",
"res://resources/characters/hairstyles/Hairstyle_21_48x48_05.png",
"res://resources/characters/hairstyles/Hairstyle_21_48x48_06.png",
"res://resources/characters/hairstyles/Hairstyle_21_48x48_07.png",
"res://resources/characters/hairstyles/Hairstyle_22_48x48_01.png",
"res://resources/characters/hairstyles/Hairstyle_22_48x48_02.png",
"res://resources/characters/hairstyles/Hairstyle_22_48x48_03.png",
"res://resources/characters/hairstyles/Hairstyle_22_48x48_04.png",
"res://resources/characters/hairstyles/Hairstyle_22_48x48_05.png",
"res://resources/characters/hairstyles/Hairstyle_22_48x48_06.png",
"res://resources/characters/hairstyles/Hairstyle_22_48x48_07.png",
"res://resources/characters/hairstyles/Hairstyle_23_48x48_01.png",
"res://resources/characters/hairstyles/Hairstyle_23_48x48_02.png",
"res://resources/characters/hairstyles/Hairstyle_23_48x48_03.png",
"res://resources/characters/hairstyles/Hairstyle_23_48x48_04.png",
"res://resources/characters/hairstyles/Hairstyle_23_48x48_05.png",
"res://resources/characters/hairstyles/Hairstyle_23_48x48_06.png",
"res://resources/characters/hairstyles/Hairstyle_23_48x48_07.png",
"res://resources/characters/hairstyles/Hairstyle_24_48x48_01.png",
"res://resources/characters/hairstyles/Hairstyle_24_48x48_02.png",
"res://resources/characters/hairstyles/Hairstyle_24_48x48_03.png",
"res://resources/characters/hairstyles/Hairstyle_24_48x48_04.png",
"res://resources/characters/hairstyles/Hairstyle_24_48x48_05.png",
"res://resources/characters/hairstyles/Hairstyle_24_48x48_06.png",
"res://resources/characters/hairstyles/Hairstyle_24_48x48_07.png",
"res://resources/characters/hairstyles/Hairstyle_25_48x48_01.png",
"res://resources/characters/hairstyles/Hairstyle_25_48x48_02.png",
"res://resources/characters/hairstyles/Hairstyle_25_48x48_03.png",
"res://resources/characters/hairstyles/Hairstyle_25_48x48_04.png",
"res://resources/characters/hairstyles/Hairstyle_25_48x48_05.png",
"res://resources/characters/hairstyles/Hairstyle_25_48x48_06.png",
"res://resources/characters/hairstyles/Hairstyle_25_48x48_07.png",
"res://resources/characters/hairstyles/Hairstyle_26_48x48_01.png",
"res://resources/characters/hairstyles/Hairstyle_26_48x48_02.png",
"res://resources/characters/hairstyles/Hairstyle_26_48x48_03.png",
"res://resources/characters/hairstyles/Hairstyle_26_48x48_04.png",
"res://resources/characters/hairstyles/Hairstyle_26_48x48_05.png",
"res://resources/characters/hairstyles/Hairstyle_26_48x48_06.png",
"res://resources/characters/hairstyles/Hairstyle_26_48x48_07.png",
"res://resources/characters/hairstyles/Hairstyle_27_48x48_01.png",
"res://resources/characters/hairstyles/Hairstyle_27_48x48_02.png",
"res://resources/characters/hairstyles/Hairstyle_27_48x48_03.png",
"res://resources/characters/hairstyles/Hairstyle_27_48x48_04.png",
"res://resources/characters/hairstyles/Hairstyle_27_48x48_05.png",
"res://resources/characters/hairstyles/Hairstyle_27_48x48_06.png",
"res://resources/characters/hairstyles/Hairstyle_28_48x48_01.png",
"res://resources/characters/hairstyles/Hairstyle_28_48x48_02.png",
"res://resources/characters/hairstyles/Hairstyle_28_48x48_03.png",
"res://resources/characters/hairstyles/Hairstyle_28_48x48_04.png",
"res://resources/characters/hairstyles/Hairstyle_28_48x48_05.png",
"res://resources/characters/hairstyles/Hairstyle_28_48x48_06.png",
"res://resources/characters/hairstyles/Hairstyle_29_48x48_01.png",
"res://resources/characters/hairstyles/Hairstyle_29_48x48_02.png",
"res://resources/characters/hairstyles/Hairstyle_29_48x48_03.png",
"res://resources/characters/hairstyles/Hairstyle_29_48x48_04.png",
"res://resources/characters/hairstyles/Hairstyle_29_48x48_05.png",
"res://resources/characters/hairstyles/Hairstyle_29_48x48_06.png",
};
public static readonly string[] Outfit = {
"res://resources/characters/outfits/Outfit_01_48x48_01.png",
"res://resources/characters/outfits/Outfit_01_48x48_02.png",
"res://resources/characters/outfits/Outfit_01_48x48_03.png",
"res://resources/characters/outfits/Outfit_01_48x48_04.png",
"res://resources/characters/outfits/Outfit_01_48x48_05.png",
"res://resources/characters/outfits/Outfit_01_48x48_06.png",
"res://resources/characters/outfits/Outfit_01_48x48_07.png",
"res://resources/characters/outfits/Outfit_01_48x48_08.png",
"res://resources/characters/outfits/Outfit_01_48x48_09.png",
"res://resources/characters/outfits/Outfit_01_48x48_10.png",
"res://resources/characters/outfits/Outfit_02_48x48_01.png",
"res://resources/characters/outfits/Outfit_02_48x48_02.png",
"res://resources/characters/outfits/Outfit_02_48x48_03.png",
"res://resources/characters/outfits/Outfit_02_48x48_04.png",
"res://resources/characters/outfits/Outfit_03_48x48_01.png",
"res://resources/characters/outfits/Outfit_03_48x48_02.png",
"res://resources/characters/outfits/Outfit_03_48x48_03.png",
"res://resources/characters/outfits/Outfit_03_48x48_04.png",
"res://resources/characters/outfits/Outfit_04_48x48_01.png",
"res://resources/characters/outfits/Outfit_04_48x48_02.png",
"res://resources/characters/outfits/Outfit_04_48x48_03.png",
"res://resources/characters/outfits/Outfit_05_48x48_01.png",
"res://resources/characters/outfits/Outfit_05_48x48_02.png",
"res://resources/characters/outfits/Outfit_05_48x48_03.png",
"res://resources/characters/outfits/Outfit_05_48x48_04.png",
"res://resources/characters/outfits/Outfit_05_48x48_05.png",
"res://resources/characters/outfits/Outfit_06_48x48_01.png",
"res://resources/characters/outfits/Outfit_06_48x48_02.png",
"res://resources/characters/outfits/Outfit_06_48x48_03.png",
"res://resources/characters/outfits/Outfit_06_48x48_04.png",
"res://resources/characters/outfits/Outfit_07_48x48_01.png",
"res://resources/characters/outfits/Outfit_07_48x48_02.png",
"res://resources/characters/outfits/Outfit_07_48x48_03.png",
"res://resources/characters/outfits/Outfit_07_48x48_04.png",
"res://resources/characters/outfits/Outfit_08_48x48_01.png",
"res://resources/characters/outfits/Outfit_08_48x48_02.png",
"res://resources/characters/outfits/Outfit_08_48x48_03.png",
"res://resources/characters/outfits/Outfit_09_48x48_01.png",
"res://resources/characters/outfits/Outfit_09_48x48_02.png",
"res://resources/characters/outfits/Outfit_09_48x48_03.png",
"res://resources/characters/outfits/Outfit_10_48x48_01.png",
"res://resources/characters/outfits/Outfit_10_48x48_02.png",
"res://resources/characters/outfits/Outfit_10_48x48_03.png",
"res://resources/characters/outfits/Outfit_10_48x48_04.png",
"res://resources/characters/outfits/Outfit_10_48x48_05.png",
"res://resources/characters/outfits/Outfit_11_48x48_01.png",
"res://resources/characters/outfits/Outfit_11_48x48_02.png",
"res://resources/characters/outfits/Outfit_11_48x48_03.png",
"res://resources/characters/outfits/Outfit_11_48x48_04.png",
"res://resources/characters/outfits/Outfit_12_48x48_01.png",
"res://resources/characters/outfits/Outfit_12_48x48_02.png",
"res://resources/characters/outfits/Outfit_12_48x48_03.png",
"res://resources/characters/outfits/Outfit_13_48x48_01.png",
"res://resources/characters/outfits/Outfit_13_48x48_02.png",
"res://resources/characters/outfits/Outfit_13_48x48_03.png",
"res://resources/characters/outfits/Outfit_13_48x48_04.png",
"res://resources/characters/outfits/Outfit_14_48x48_01.png",
"res://resources/characters/outfits/Outfit_14_48x48_02.png",
"res://resources/characters/outfits/Outfit_14_48x48_03.png",
"res://resources/characters/outfits/Outfit_14_48x48_04.png",
"res://resources/characters/outfits/Outfit_14_48x48_05.png",
"res://resources/characters/outfits/Outfit_15_48x48_01.png",
"res://resources/characters/outfits/Outfit_15_48x48_02.png",
"res://resources/characters/outfits/Outfit_15_48x48_03.png",
"res://resources/characters/outfits/Outfit_16_48x48_01.png",
"res://resources/characters/outfits/Outfit_16_48x48_02.png",
"res://resources/characters/outfits/Outfit_16_48x48_03.png",
"res://resources/characters/outfits/Outfit_17_48x48_01.png",
"res://resources/characters/outfits/Outfit_17_48x48_02.png",
"res://resources/characters/outfits/Outfit_17_48x48_03.png",
"res://resources/characters/outfits/Outfit_18_48x48_01.png",
"res://resources/characters/outfits/Outfit_18_48x48_02.png",
"res://resources/characters/outfits/Outfit_18_48x48_03.png",
"res://resources/characters/outfits/Outfit_18_48x48_04.png",
"res://resources/characters/outfits/Outfit_19_48x48_01.png",
"res://resources/characters/outfits/Outfit_19_48x48_02.png",
"res://resources/characters/outfits/Outfit_19_48x48_03.png",
"res://resources/characters/outfits/Outfit_19_48x48_04.png",
"res://resources/characters/outfits/Outfit_20_48x48_01.png",
"res://resources/characters/outfits/Outfit_20_48x48_02.png",
"res://resources/characters/outfits/Outfit_20_48x48_03.png",
"res://resources/characters/outfits/Outfit_21_48x48_01.png",
"res://resources/characters/outfits/Outfit_21_48x48_02.png",
"res://resources/characters/outfits/Outfit_21_48x48_03.png",
"res://resources/characters/outfits/Outfit_21_48x48_04.png",
"res://resources/characters/outfits/Outfit_22_48x48_01.png",
"res://resources/characters/outfits/Outfit_22_48x48_02.png",
"res://resources/characters/outfits/Outfit_22_48x48_03.png",
"res://resources/characters/outfits/Outfit_22_48x48_04.png",
"res://resources/characters/outfits/Outfit_23_48x48_01.png",
"res://resources/characters/outfits/Outfit_23_48x48_02.png",
"res://resources/characters/outfits/Outfit_23_48x48_03.png",
"res://resources/characters/outfits/Outfit_23_48x48_04.png",
"res://resources/characters/outfits/Outfit_24_48x48_01.png",
"res://resources/characters/outfits/Outfit_24_48x48_02.png",
"res://resources/characters/outfits/Outfit_24_48x48_03.png",
"res://resources/characters/outfits/Outfit_24_48x48_04.png",
"res://resources/characters/outfits/Outfit_25_48x48_01.png",
"res://resources/characters/outfits/Outfit_25_48x48_02.png",
"res://resources/characters/outfits/Outfit_25_48x48_03.png",
"res://resources/characters/outfits/Outfit_25_48x48_04.png",
"res://resources/characters/outfits/Outfit_25_48x48_05.png",
"res://resources/characters/outfits/Outfit_26_48x48_01.png",
"res://resources/characters/outfits/Outfit_26_48x48_02.png",
"res://resources/characters/outfits/Outfit_26_48x48_03.png",
"res://resources/characters/outfits/Outfit_27_48x48_01.png",
"res://resources/characters/outfits/Outfit_27_48x48_02.png",
"res://resources/characters/outfits/Outfit_27_48x48_03.png",
"res://resources/characters/outfits/Outfit_28_48x48_01.png",
"res://resources/characters/outfits/Outfit_28_48x48_02.png",
"res://resources/characters/outfits/Outfit_28_48x48_03.png",
"res://resources/characters/outfits/Outfit_28_48x48_04.png",
"res://resources/characters/outfits/Outfit_29_48x48_01.png",
"res://resources/characters/outfits/Outfit_29_48x48_02.png",
"res://resources/characters/outfits/Outfit_29_48x48_03.png",
"res://resources/characters/outfits/Outfit_29_48x48_04.png",
"res://resources/characters/outfits/Outfit_30_48x48_01.png",
"res://resources/characters/outfits/Outfit_30_48x48_02.png",
"res://resources/characters/outfits/Outfit_30_48x48_03.png",
"res://resources/characters/outfits/Outfit_31_48x48_01.png",
"res://resources/characters/outfits/Outfit_31_48x48_02.png",
"res://resources/characters/outfits/Outfit_31_48x48_03.png",
"res://resources/characters/outfits/Outfit_31_48x48_04.png",
"res://resources/characters/outfits/Outfit_31_48x48_05.png",
"res://resources/characters/outfits/Outfit_32_48x48_01.png",
"res://resources/characters/outfits/Outfit_32_48x48_02.png",
"res://resources/characters/outfits/Outfit_32_48x48_03.png",
"res://resources/characters/outfits/Outfit_32_48x48_04.png",
"res://resources/characters/outfits/Outfit_32_48x48_05.png",
"res://resources/characters/outfits/Outfit_33_48x48_01.png",
"res://resources/characters/outfits/Outfit_33_48x48_02.png",
"res://resources/characters/outfits/Outfit_33_48x48_03.png",
};
public static readonly string[] Smartphone = {
"res://resources/characters/smartphones/Smartphone_48x48_1.png",
"res://resources/characters/smartphones/Smartphone_48x48_2.png",
"res://resources/characters/smartphones/Smartphone_48x48_3.png",
"res://resources/characters/smartphones/Smartphone_48x48_4.png",
"res://resources/characters/smartphones/Smartphone_48x48_5.png",
};
private static readonly string[][] allResources = {
Accessory,
Body,
Eye,
Hair,
Outfit,
Smartphone
};
}

View File

@ -20,10 +20,11 @@ public partial class Student : CharacterBody2D
Vector2 velocity = new();
var nextPoint = PathToGo.Peek();
if ((int)GlobalPosition.X == nextPoint.X && (int)GlobalPosition.Y == nextPoint.Y) {
if ((int)GlobalPosition.X == nextPoint.X && (int)GlobalPosition.Y == nextPoint.Y)
{
GD.Print(PathToGo.Dequeue());
return;
}
nextPoint = PathToGo.Peek();
// if ((int)GlobalPosition.X == nextPoint.X) {
// // Move Y
// // velocity.Y = Math.Max(Speed, Math.Abs(nextPoint.Y - GlobalPosition.Y));
@ -39,22 +40,28 @@ public partial class Student : CharacterBody2D
// velocity.X = -velocity.X;
// }
// }
if ((int)GlobalPosition.X == nextPoint.X) {
if ((int)GlobalPosition.X == nextPoint.X)
{
// Move Y
// velocity.Y = Math.Max(Speed, Math.Abs(nextPoint.Y - GlobalPosition.Y));
velocity.Y = Speed;
if (GlobalPosition.Y > nextPoint.Y) {
if (GlobalPosition.Y > nextPoint.Y)
{
velocity.Y = -velocity.Y;
}
} else if ((int)GlobalPosition.Y == nextPoint.Y) {
}
else if ((int)GlobalPosition.Y == nextPoint.Y)
{
// move X
// velocity.X = Math.Max(Speed, Math.Abs(nextPoint.X - GlobalPosition.X));
velocity.X = Speed;
if (GlobalPosition.X > nextPoint.X) {
if (GlobalPosition.X > nextPoint.X)
{
velocity.X = -velocity.X;
}
}
GlobalPosition = GlobalPosition with {
GlobalPosition = GlobalPosition with
{
X = GlobalPosition.X + velocity.X,
Y = GlobalPosition.Y + velocity.Y
};
@ -72,7 +79,6 @@ public partial class Student : CharacterBody2D
// GD.Print(bb.GetVar("Stayed"));
// GD.Print($"Speed: {Speed}");
var ap = GetNode<AnimationPlayer>("AnimationPlayer");
ap.Autoplay = "idle_front";
ap.Play("idle_front");
}
@ -84,10 +90,12 @@ public partial class Student : CharacterBody2D
}
}
public void GoTo(int nType) {
public void GoTo(int nType)
{
GD.Print($"Called with nType = {nType}");
var lab = GetParentOrNull<Lab>();
if (lab == null) {
if (lab == null)
{
return;
}
var block = lab.GetTypedBlock((Lab.MapNodeType)nType, GD.Randi());
@ -95,10 +103,13 @@ public partial class Student : CharacterBody2D
randomChangeBody();
}
private void randomChangeBody() {
uint bodyId = GD.Randi() % 9 + 1;
var body = GetNode<Sprite2D>("parts/body");
var rp = GetNode<ResourcePreloader>("ResourcePreloader");
body.Texture = (Texture2D)rp.GetResource($"Body_48x48_0{bodyId}");
private void randomChangeBody()
{
GetNode<Sprite2D>("parts/body").Texture = (Texture2D)ResourceLoader.Load(Res.GetRandom(Res.Type.BODY));
GetNode<Sprite2D>("parts/hairstyle").Texture = (Texture2D)ResourceLoader.Load(Res.GetRandom(Res.Type.HAIR));
GetNode<Sprite2D>("parts/outfit").Texture = (Texture2D)ResourceLoader.Load(Res.GetRandom(Res.Type.OUTFIT));
GetNode<Sprite2D>("parts/eye").Texture = (Texture2D)ResourceLoader.Load(Res.GetRandom(Res.Type.EYE));
GetNode<Sprite2D>("parts/accessory").Texture = (Texture2D)ResourceLoader.Load(Res.GetRandom(Res.Type.ACCESSORY));
GetNode<Sprite2D>("parts/smartphone").Texture = (Texture2D)ResourceLoader.Load(Res.GetRandom(Res.Type.PHONE));
}
}

File diff suppressed because one or more lines are too long