From dc76f63bd612ea80acda453e15bc413166ad3d4c Mon Sep 17 00:00:00 2001 From: Sara Date: Wed, 1 Apr 2026 15:30:33 +0200 Subject: [PATCH] feat: implemented variable tile sizes --- modules/generative_grammar/generator.cpp | 3 ++- modules/generative_grammar/generator.h | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/generative_grammar/generator.cpp b/modules/generative_grammar/generator.cpp index c351076371..55a73db3f8 100644 --- a/modules/generative_grammar/generator.cpp +++ b/modules/generative_grammar/generator.cpp @@ -8,6 +8,7 @@ void Generator::_bind_methods() { BIND_HPROPERTY(Variant::OBJECT, state, PROPERTY_HINT_RESOURCE_TYPE, "Sentence"); BIND_HPROPERTY(Variant::DICTIONARY, tiles_dict, PROPERTY_HINT_DICTIONARY_TYPE, vformat("String;PackedScene")); + BIND_PROPERTY(Variant::FLOAT, tile_size); } void Generator::initialise_state() { @@ -54,7 +55,7 @@ void Generator::ready() { if (this->tiles.has(s)) { if (Node * node{ this->tiles.get(s)->instantiate() }) { if (Node3D * node3d{ cast_to(node) }) { - node3d->set_position({ (float)at.x, 0, (float)at.y }); + node3d->set_position(Vector3{ (float)at.x, 0, (float)at.y } * this->tile_size); } this->add_child(node); } diff --git a/modules/generative_grammar/generator.h b/modules/generative_grammar/generator.h index 89aa71c478..415894f97e 100644 --- a/modules/generative_grammar/generator.h +++ b/modules/generative_grammar/generator.h @@ -19,8 +19,10 @@ public: Rule *rule{ nullptr }; typedef HashMap> TileMap; TileMap tiles{}; + float tile_size{ 1.f }; private: + GET_SET_FNS(float, tile_size); GET_SET_FNS(Ref, state); GET_SET_REF_FNS(TileMap, tiles); void set_tiles_dict(Dictionary dict);