You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
748 B
25 lines
748 B
using System;
|
|
using Godot;
|
|
using Godot.Collections;
|
|
|
|
namespace Babushka.scripts.CSharp.GameEntity.Management;
|
|
|
|
public partial class EntityNodeCreator : Node
|
|
{
|
|
[Export] private Dictionary<string, PackedScene> _entityPrefabs;
|
|
|
|
public Node2D InstantiateNode(string type)
|
|
{
|
|
if (string.IsNullOrEmpty(type))
|
|
{
|
|
throw new NullReferenceException("The type provided for Node instantiation cannot be null or empty.");
|
|
}
|
|
|
|
if (!_entityPrefabs.ContainsKey(type))
|
|
{
|
|
throw new Exception($"The type provided for Node instantiation ({type}) is not specified in the EntityNodeCreator dictionary.");
|
|
}
|
|
|
|
return _entityPrefabs[type].Instantiate<Node2D>();
|
|
}
|
|
} |