From bb4700ba66a4acc1101bea5325672ed2d83210b6 Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Sun, 20 Mar 2022 21:43:50 +0800 Subject: [PATCH] random start collasped_propagated --- src/experimental/tile_wfc.scad | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/experimental/tile_wfc.scad b/src/experimental/tile_wfc.scad index 6dcad7dd..91155f83 100644 --- a/src/experimental/tile_wfc.scad +++ b/src/experimental/tile_wfc.scad @@ -1,8 +1,22 @@ use <_impl/_tiles_wfc_impl.scad>; +use <../util/rand.scad>; // An implementation of [Wave Function Collapse](https://github.com/mxgmn/WaveFunctionCollapse) function tile_wfc(size, sample) = - tilemap_generate(tilemap(size[0], size[1], sample)); + let( + tm = tilemap(size[0], size[1], sample), + wf = tilemap_wf(tm), + // random start + x = floor(rand(size[0] * 0.25, size[0] * 0.75)), + y = floor(rand(size[1] * 0.25, size[1] * 0.75)), + first_collasped_propagated = tilemap_propagate([ + tilemap_width(tm), + tilemap_height(tm), + tilemap_compatibilities(tm), + wf_collapse(wf, x, y) + ], x, y) + ) + tilemap_generate(first_collasped_propagated); /*