using System.Collections;
using System.Collections.Generic;
using Godot;
using System;



namespace Rokojori
{
  [Tool]
  [GlobalClass]
  public partial class GeneratorEntry:Node3D
  {
    [Export]
    public PackedScene packedScene;

    [Export]
    public Node3D node3D;

    [Export]
    public bool refreshNode3D = false;

    [Export]
    public bool useInstancing = false;

    protected PackedScene _cachedNode3DScene;

    public PackedScene GetPackedScene()
    {
      if ( packedScene != null )
      {
        return packedScene;
      }

      if ( refreshNode3D || _cachedNode3DScene == null )
      {
        refreshNode3D = false;
        _cachedNode3DScene = new PackedScene();
        _cachedNode3DScene.Pack( node3D );
      }

      return _cachedNode3DScene; 
    }

    [Export]
    public float probability = 1;

    [Export]
    public Node3D container;

  }
}