behaviour-tree-test/modules/generative_grammar/generator.h

30 lines
683 B
C++

#pragma once
#include "core/templates/hash_map.h"
#include "generative_grammar/grammar.h"
#include "scene/3d/node_3d.h"
#include "scene/resources/packed_scene.h"
class Generator : public Node3D {
GDCLASS(Generator, Node3D);
static void _bind_methods();
void initialise_state();
void ready();
protected:
void _notification(int what);
public:
Ref<Sentence> state{};
Rule *rule{ nullptr };
typedef HashMap<Symbol, Ref<PackedScene>> TileMap;
TileMap tiles{};
float tile_size{ 1.f };
private:
GET_SET_FNS(float, tile_size);
GET_SET_FNS(Ref<Sentence>, state);
GET_SET_REF_FNS(TileMap, tiles);
void set_tiles_dict(Dictionary dict);
Dictionary get_tiles_dict() const;
};