Item spawning
This commit is contained in:
@@ -1,12 +1,52 @@
|
||||
using Godot;
|
||||
using Godot.Collections;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace GameJamDungeon
|
||||
{
|
||||
public partial class ItemDatabase : Node
|
||||
{
|
||||
[Export]
|
||||
public PackedScene[] ItemScene;
|
||||
public PackedScene WeaponScene { get; set; }
|
||||
|
||||
[Export]
|
||||
public float[] DropRate;
|
||||
public PackedScene ArmorScene { get; set; }
|
||||
|
||||
[Export]
|
||||
public PackedScene AccessoryScene { get; set; }
|
||||
|
||||
public List<(IInventoryItem Item, float SpawnRate)> Database { get; private set; }
|
||||
|
||||
public void SpawnItems()
|
||||
{
|
||||
Database = new List<(IInventoryItem, float SpawnRates)>();
|
||||
var armorResources = DirAccess.GetFilesAt("res://src/items/armor/resources/");
|
||||
var weaponResources = DirAccess.GetFilesAt("res://src/items/weapons/resources/");
|
||||
var accessoryResources = DirAccess.GetFilesAt("res://src/items/accessory/resources/");
|
||||
|
||||
foreach (var armor in armorResources)
|
||||
{
|
||||
var armorInfo = GD.Load<ArmorInfo>($"res://src/items/armor/resources/{armor}");
|
||||
var armorScene = ArmorScene.Instantiate<Armor>();
|
||||
armorScene.ArmorInfo = armorInfo;
|
||||
Database.Add(new(armorScene, 0.75f));
|
||||
}
|
||||
|
||||
foreach (var weapon in weaponResources)
|
||||
{
|
||||
var weaponInfo = GD.Load<WeaponInfo>($"res://src/items/weapons/resources/{weapon}");
|
||||
var weaponScene = WeaponScene.Instantiate<Weapon>();
|
||||
weaponScene.WeaponInfo = weaponInfo;
|
||||
Database.Add(new(weaponScene, 0.75f));
|
||||
}
|
||||
|
||||
foreach (var accessory in accessoryResources)
|
||||
{
|
||||
var accessoryInfo = GD.Load<AccessoryInfo>($"res://src/items/accessory/resources/{accessory}");
|
||||
var accessoryScene = AccessoryScene.Instantiate<Accessory>();
|
||||
accessoryScene.AccessoryInfo = accessoryInfo;
|
||||
Database.Add(new(accessoryScene, 0.75f));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user