Skip to content

Commit bfa0797

Browse files
committed
Fix Node inheritance fiasco (#27)
1 parent dc5d56e commit bfa0797

File tree

3 files changed

+32
-20
lines changed

3 files changed

+32
-20
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
[gd_scene load_steps=10 format=4 uid="uid://c183b4u6je7mj"]
1+
[gd_scene load_steps=9 format=4 uid="uid://c183b4u6je7mj"]
22

33
[ext_resource type="TileSet" uid="uid://f5ab14o2k2wy" path="res://addons/wfc/examples/assets/kenney-tiny-dungeon/tile-set-main.tres" id="1_wligw"]
44
[ext_resource type="Script" path="res://addons/wfc/problems/2d/mappers/mapper_2d_factory.gd" id="2_nbdfy"]
@@ -17,18 +17,25 @@ func _ready() -> void:
1717
$WFC2DGenerator.start()
1818
"
1919

20-
[sub_resource type="Resource" id="Resource_xa0lu"]
21-
script = ExtResource("2_nbdfy")
22-
23-
[sub_resource type="Resource" id="Resource_0p24s"]
20+
[sub_resource type="Resource" id="Resource_7ap8n"]
2421
script = ExtResource("2_nbdfy")
2522

2623
[node name="DemoWfc2dTilemaplayerMultilayer" type="Node2D"]
2724
script = SubResource("GDScript_fodhb")
2825

29-
[node name="sample" type="Node2D" parent="."]
26+
[node name="WFC2DGenerator" type="Node" parent="."]
27+
script = ExtResource("4_xxxg8")
28+
target = NodePath("../target")
29+
rect = Rect2i(0, 0, 121, 68)
30+
positive_sample = NodePath("../sample")
31+
render_intermediate_results = true
32+
33+
[node name="progressIndicator" parent="." node_paths=PackedStringArray("generator") instance=ExtResource("5_5glsc")]
34+
generator = NodePath("../WFC2DGenerator")
35+
36+
[node name="sample" type="Node" parent="."]
3037
script = ExtResource("3_orkfj")
31-
mapper_factory = SubResource("Resource_xa0lu")
38+
mapper_factory = SubResource("Resource_7ap8n")
3239

3340
[node name="main" type="TileMapLayer" parent="sample"]
3441
tile_map_data = PackedByteArray("AAAAAAAAAAAAAAQAAAABAAAAAAAAAAQAAAACAAAAAAAAAAQAAAADAAAAAAAAAAQAAAAEAAAAAAAAAAQAAAAFAAAAAAAAAAQAAAAGAAAAAAAAAAQAAAAHAAAAAAAAAAQAAAAIAAAAAAAAAAQAAAAJAAAAAAAAAAQAAAAKAAAAAAAAAAQAAAALAAAAAAAAAAQAAAAMAAAAAAAAAAQAAAANAAAAAAAAAAQAAAAOAAAAAAAAAAQAAAAPAAAAAAAAAAQAAAAAAAEAAAAAAAQAAAAAAAIAAAAAAAQAAAAAAAMAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAUAAAAAAAQAAAAAAAYAAAAAAAQAAAAAAAcAAAAAAAQAAAAAAAgAAAAAAAQAAAAAAAkAAAAAAAQAAAAAAAoAAAAAAAQAAAAAAAsAAAAAAAQAAAABAAEAAAAEAAAAAAABAAcAAAAEAAEAAAAPAAcAAAAFAAEAAAAPAAEAAAAFAAAAAAAPAAIAAAABAAEAAAAPAAMAAAABAAEAAAAPAAQAAAABAAEAAAAPAAUAAAABAAEAAAAPAAYAAAABAAEAAAABAAIAAAADAAEAAAABAAMAAAADAAEAAAABAAQAAAADAAEAAAABAAUAAAADAAEAAAABAAYAAAADAAEAAAACAAcAAAACAAAAAAADAAcAAAACAAAAAAAEAAcAAAACAAAAAAAFAAcAAAACAAAAAAAGAAcAAAACAAAAAAAHAAcAAAACAAAAAAAIAAcAAAAGAAAAAAAJAAcAAAACAAAAAAAKAAcAAAACAAAAAAALAAcAAAACAAAAAAAMAAcAAAACAAAAAAANAAcAAAACAAAAAAAOAAcAAAACAAAAAAACAAEAAAACAAIAAAADAAEAAAACAAIAAAAEAAEAAAACAAIAAAAFAAEAAAACAAIAAAAGAAEAAAACAAIAAAAHAAEAAAACAAIAAAAIAAEAAAACAAIAAAAJAAEAAAACAAIAAAAKAAEAAAACAAIAAAALAAEAAAACAAIAAAAMAAEAAAACAAIAAAANAAEAAAACAAIAAAAOAAEAAAACAAIAAAAEAAMAAAABAAAAAAAFAAMAAAACAAAAAAAGAAMAAAACAAAAAAAHAAMAAAADAAAAAAAEAAQAAAABAAEAAAAHAAQAAAADAAEAAAAFAAQAAAACAAEAAAAGAAQAAAACAAEAAAACAAgAAAACAAEAAAADAAgAAAAEAAMAAAAEAAgAAAAEAAIAAAAGAAgAAAAFAAIAAAAIAAgAAAAGAAEAAAAIAAkAAAAGAAIAAAAKAAgAAAAHAAAAAAAKAAkAAAAHAAMAAAAMAAgAAAAIAAEAAAAMAAkAAAAIAAIAAAACAAkAAAADAAQAAAAEAAkAAAADAAQAAAADAAkAAAACAAQAAAAFAAkAAAACAAQAAAAGAAkAAAACAAQAAAAHAAkAAAACAAQAAAABAAkAAAACAAQAAAAJAAkAAAACAAQAAAALAAkAAAACAAQAAAANAAkAAAACAAQAAAAOAAkAAAAIAAMAAAAPAAkAAAACAAQAAAAPAAgAAAALAAQAAAABAAgAAAAJAAQAAAAFAAgAAAAEAAMAAAAHAAgAAAAEAAMAAAAJAAgAAAAEAAMAAAALAAgAAAAEAAMAAAANAAgAAAAEAAMAAAAOAAgAAAAIAAAAAAACAAYAAAAAAAAAAAACAAUAAAAAAAAAAAACAAQAAAAAAAAAAAACAAMAAAAAAAAAAAACAAIAAAAAAAAAAAADAAIAAAAAAAAAAAADAAMAAAAAAAAAAAADAAQAAAAAAAAAAAADAAUAAAAAAAAAAAADAAYAAAAAAAAAAAAEAAYAAAABAAIAAAAFAAYAAAACAAIAAAAGAAYAAAACAAIAAAAHAAYAAAADAAIAAAAIAAYAAAAAAAAAAAAJAAYAAAAAAAAAAAAIAAUAAAAAAAAAAAAIAAQAAAAAAAAAAAAIAAMAAAAAAAAAAAAIAAIAAAAAAAAAAAAHAAIAAAAAAAAAAAAGAAIAAAAAAAAAAAAFAAIAAAAAAAAAAAAEAAIAAAAAAAAAAAAJAAIAAAAAAAAAAAAJAAUAAAAAAAIAAAALAAQAAAAAAAEAAAAJAAQAAAAAAAAAAAAKAAQAAAAAAAAAAAAKAAUAAAAAAAAAAAAKAAYAAAAAAAAAAAALAAYAAAAAAAAAAAALAAUAAAAAAAAAAAAMAAUAAAAAAAAAAAAMAAYAAAAAAAAAAAANAAYAAAAAAAAAAAAOAAYAAAAAAAAAAAAOAAUAAAAAAAAAAAANAAUAAAAAAAAAAAANAAQAAAAAAAAAAAAMAAQAAAAAAAAAAAAMAAMAAAAAAAAAAAANAAMAAAAAAAAAAAAOAAMAAAAAAAAAAAAOAAQAAAAAAAAAAAAOAAIAAAAAAAAAAAANAAIAAAAAAAAAAAAMAAIAAAAAAAAAAAALAAIAAAAAAAAAAAALAAMAAAAAAAAAAAAKAAMAAAAAAAAAAAAJAAMAAAAAAAAAAAAKAAIAAAAAAAAAAAAQAAAAAAAAAAQAAAAQAAEAAAAAAAQAAAAQAAIAAAAAAAQAAAAQAAMAAAAAAAQAAAAQAAQAAAAAAAQAAAAQAAUAAAAAAAQAAAAQAAYAAAAAAAQAAAAQAAcAAAAAAAQAAAAQAAgAAAAAAAQAAAAQAAkAAAAAAAQAAAAQAAoAAAAAAAQAAAAQAAsAAAAAAAQAAAAQAAwAAAAAAAQAAAAQAA0AAAAAAAQAAAAPAA0AAAAAAAQAAAAOAA0AAAAAAAQAAAANAA0AAAAAAAQAAAAMAA0AAAAAAAQAAAALAA0AAAAAAAQAAAAKAA0AAAAAAAQAAAAJAA0AAAAAAAQAAAAIAA0AAAAAAAQAAAAHAA0AAAAAAAQAAAAGAA0AAAAAAAQAAAAFAA0AAAAAAAQAAAAEAA0AAAAAAAQAAAADAA0AAAAAAAQAAAACAA0AAAAAAAQAAAABAA0AAAAAAAQAAAAAAA0AAAAAAAQAAAAAAAwAAAAAAAQAAAABAAwAAAABAAQAAAACAAwAAAAAAAQAAAADAAwAAAAFAAMAAAAEAAwAAAAAAAQAAAAFAAwAAAAAAAQAAAAGAAwAAAAAAAQAAAAHAAwAAAAAAAQAAAAIAAwAAAAAAAQAAAAJAAwAAAAAAAQAAAAKAAwAAAAAAAQAAAALAAwAAAAAAAQAAAAMAAwAAAAAAAQAAAANAAwAAAAAAAQAAAAOAAwAAAAAAAQAAAAPAAwAAAAAAAQAAAAPAAsAAAAAAAQAAAAOAAsAAAAAAAQAAAANAAsAAAAAAAQAAAAMAAsAAAAAAAQAAAALAAoAAAAAAAQAAAAKAAoAAAAAAAQAAAAJAAoAAAAAAAQAAAAIAAoAAAAAAAQAAAAHAAoAAAAAAAQAAAAGAAoAAAAAAAQAAAAFAAoAAAAAAAQAAAAEAAoAAAAAAAQAAAADAAoAAAAAAAQAAAACAAoAAAAAAAQAAAABAAoAAAAAAAQAAAABAAsAAAAAAAQAAAACAAsAAAABAAQAAAADAAsAAAAAAAQAAAAEAAsAAAAGAAMAAAAFAAsAAAAAAAQAAAAGAAsAAAAAAAQAAAAHAAsAAAAAAAQAAAAIAAsAAAAAAAQAAAAJAAsAAAAAAAQAAAAKAAsAAAAAAAQAAAALAAsAAAAAAAQAAAAMAAoAAAAAAAQAAAANAAoAAAAAAAQAAAAOAAoAAAAAAAQAAAAPAAoAAAAAAAQAAAAQAA4AAAAAAAQAAAAQAA8AAAAAAAQAAAAQABAAAAAAAAQAAAAQABEAAAAAAAQAAAAQABIAAAAAAAQAAAAPABIAAAAAAAQAAAAOABIAAAAAAAQAAAANABIAAAAAAAQAAAAMABIAAAAAAAQAAAALABIAAAAAAAQAAAAKABIAAAAAAAQAAAAJABIAAAAAAAQAAAAIABIAAAAAAAQAAAAIABEAAAAAAAQAAAAIABAAAAAAAAQAAAAIAA8AAAAAAAQAAAAIAA4AAAAAAAQAAAAJAA4AAAAAAAQAAAAKAA4AAAAAAAQAAAALAA4AAAAAAAQAAAAMAA4AAAAAAAQAAAANAA4AAAAAAAQAAAAOAA4AAAAAAAQAAAAPAA4AAAAAAAQAAAAPAA8AAAAAAAQAAAAPABAAAAAAAAQAAAAPABEAAAAAAAQAAAAOABEAAAAAAAQAAAANABEAAAAAAAQAAAAMABEAAAAAAAQAAAALABEAAAAAAAQAAAAKABEAAAAAAAQAAAAJABEAAAAAAAQAAAAJABAAAAAAAAQAAAAJAA8AAAAAAAQAAAAKAA8AAAAAAAQAAAALAA8AAAAAAAQAAAAMAA8AAAAAAAQAAAANAA8AAAAAAAQAAAANABAAAAAAAAQAAAAOABAAAAAAAAQAAAAOAA8AAAAAAAQAAAAMABAAAAAAAAQAAAALABAAAAAAAAQAAAAKABAAAAAAAAQAAAAFAAUAAAACAAQAAAAGAAUAAAACAAQAAAAHAAUAAAADAAEAAAAEAAUAAAABAAEAAAA=")
@@ -38,22 +45,12 @@ tile_set = ExtResource("1_wligw")
3845
tile_map_data = PackedByteArray("AAAGAAoAAAAFAAUAAAADAAoAAAACAAYAAAAFAAwAAAABAAYAAAABAAoAAAAFAAcAAAAJAAsAAAAHAAUAAAAJAAwAAAAJAAYAAAAJAA0AAAAIAAUAAAAMAAsAAAAHAAYAAAANAAsAAAAKAAUAAAAOAAsAAAAIAAYAAAAMAA0AAAAJAAUAAAAMAA4AAAAJAAYAAAAMAA8AAAAJAAYAAAAMABAAAAAJAAcAAAANABAAAAAKAAUAAAAOABAAAAAKAAUAAAAPABAAAAALAAcAAAAPAA8AAAAJAAYAAAAPAA4AAAAJAAYAAAAPAA0AAAALAAUAAAANAA0AAAAKAAUAAAAOAA0AAAAKAAUAAAAJAA8AAAAKAAYAAAAJABEAAAAGAAUAAAAJAAMAAAACAAYAAAA=")
3946
tile_set = ExtResource("2_so28k")
4047

41-
[node name="target" type="Node2D" parent="."]
48+
[node name="target" type="Node" parent="."]
4249
script = ExtResource("3_orkfj")
43-
mapper_factory = SubResource("Resource_0p24s")
50+
mapper_factory = SubResource("Resource_7ap8n")
4451

4552
[node name="main" type="TileMapLayer" parent="target"]
4653
tile_set = ExtResource("1_wligw")
4754

4855
[node name="decorations" type="TileMapLayer" parent="target"]
4956
tile_set = ExtResource("2_so28k")
50-
51-
[node name="WFC2DGenerator" type="Node" parent="."]
52-
script = ExtResource("4_xxxg8")
53-
target = NodePath("../target")
54-
rect = Rect2i(0, 0, 121, 68)
55-
positive_sample = NodePath("../sample")
56-
render_intermediate_results = true
57-
58-
[node name="progressIndicator" parent="." node_paths=PackedStringArray("generator") instance=ExtResource("5_5glsc")]
59-
generator = NodePath("../WFC2DGenerator")

addons/wfc/nodes/layered_map_2d.gd

+15
Original file line numberDiff line numberDiff line change
@@ -57,3 +57,18 @@ func get_layers() -> Array[Node]:
5757

5858
func create_layer_mapper(layer: Node) -> WFCMapper2D:
5959
return mapper_factory.create_mapper_for(layer)
60+
61+
# show()/hide() are useful to hide sample maps (at least in demos).
62+
# But they are not available on Node's, only on Node2D and Node3D.
63+
# We don't want WFC2DLayeredMap to be Node2D or Node3D, instead it should work with both,
64+
# so, here are implementations that forward calls to children:
65+
66+
func show():
67+
for layer in get_layers():
68+
if layer.has_method('show'):
69+
layer.show()
70+
71+
func hide():
72+
for layer in get_layers():
73+
if layer.has_method('hide'):
74+
layer.hide()

addons/wfc/problems/2d/mappers/mapper_2d_factory.gd

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ func create_mapper_for(node: Node) -> WFCMapper2D:
2222
return WFCGridMapMapper2D.new()
2323
"TileMapLayer":
2424
return WFCTilemapLayerMapper2D.new()
25-
"Node2D":
25+
"Node":
2626
if node is WFC2DLayeredMap:
2727
return WFCLayeredMapMapper2D.new()
2828
else:

0 commit comments

Comments
 (0)