Refactor hut tier definitions to use images and scales instead of scene paths; add moddable visual component

This commit is contained in:
2025-08-23 15:41:57 +02:00
parent 8efbc9cc6e
commit 608bcc552d
15 changed files with 204 additions and 15 deletions

View File

@@ -5,7 +5,8 @@ namespace ParasiticGod.Scripts.Core;
[GlobalClass]
public partial class TierDefinition : Resource
{
[Export] public PackedScene Scene { get; set; }
[Export] public Texture2D Texture { get; set; }
[Export] public long Threshold { get; set; }
[Export] public Follower.FollowerTier TierEnum { get; set; }
[Export] public Vector2 Scale { get; set; } = Vector2.One;
}

View File

@@ -1,4 +1,5 @@
using System.Collections.Generic;
using System.Numerics;
namespace ParasiticGod.Scripts.Core;
@@ -6,7 +7,8 @@ public class TierDto
{
public Follower.FollowerTier TierEnum { get; set; }
public long Threshold { get; set; }
public string ScenePath { get; set; }
public string ImagePath { get; set; }
public Vector2 Scale { get; set; } = Vector2.One;
}
public class TierListDto

View File

@@ -27,11 +27,18 @@ public static class TierLoader
foreach (var dto in tierListDto.Tiers)
{
var image = Image.LoadFromFile(dto.ImagePath);
if (image == null)
{
GD.PushError($"Failed to load image at path: {dto.ImagePath}");
continue;
}
var tierDef = new TierDefinition
{
Threshold = dto.Threshold,
TierEnum = dto.TierEnum,
Scene = GD.Load<PackedScene>(dto.ScenePath)
Texture = ImageTexture.CreateFromImage(image),
Scale = new Vector2(dto.Scale.X, dto.Scale.Y)
};
loadedTiers.Add(tierDef);
}