summaryrefslogtreecommitdiff
path: root/godot/scripts/world_tools.gd
diff options
context:
space:
mode:
Diffstat (limited to 'godot/scripts/world_tools.gd')
-rw-r--r--godot/scripts/world_tools.gd65
1 files changed, 65 insertions, 0 deletions
diff --git a/godot/scripts/world_tools.gd b/godot/scripts/world_tools.gd
new file mode 100644
index 0000000..bb3b336
--- /dev/null
+++ b/godot/scripts/world_tools.gd
@@ -0,0 +1,65 @@
+tool
+extends Node
+
+export(String) var terrain1path = "" setget t1update
+export(String) var terrain2path = "" setget t2update
+export(bool) var seam = 0 setget makeseam
+export(Vector3) var winddir = Vector3.ZERO
+
+var terr1
+var terr2
+
+func t1update(p):
+ terrain1path = p
+ terr1 = get_node(terrain1path)
+func t2update(p):
+ terrain2path = p
+ terr2 = get_node(terrain2path)
+
+#makes adjacent terrain (terr2) snap to given terrain (terr1) on their border
+func makeseam(_p):
+# var t1pos: Vector3 = terr1.transform.origin
+# var t2pos: Vector3 = terr2.transform.origin
+# var t1data = terr1.get_data()
+# var t2data = terr2.get_data()
+# var heightmap1: Image = t1data.get_image(t1data.CHANNEL_HEIGHT)
+# var heightmap2: Image = t2data.get_image(t2data.CHANNEL_HEIGHT)
+#
+# if heightmap1.get_height() != heightmap2.get_height():
+# return
+# var sidelength = heightmap1.get_height()
+# heightmap2.lock()
+# heightmap1.lock()
+
+ #if t1pos.distance_squared_to(t2pos) != heightmap1.get_height()*heightmap1.get_height():
+ # return
+ pass
+# var side : int = 0
+# var is_x : bool
+# if t1pos.x == t2pos.x:
+# is_x = false
+# if t1pos.z > t2pos.z:
+# side = sidelength-1
+# elif t2pos.z == t2pos.z:
+# is_x = true
+# if t1pos.x > t2pos.x:
+# side = sidelength-1
+# else:
+# return
+#
+# var oside = sidelength-1-side
+#
+# for i in sidelength:
+# if is_x:
+# heightmap2.set_pixel(side, i, heightmap1.get_pixel(oside, i))
+# else:
+# heightmap2.set_pixel(i, side, heightmap1.get_pixel(i, oside))
+#
+# heightmap2.unlock()
+# heightmap1.unlock()
+#
+# var modified_region = Rect2(Vector2(), heightmap2.get_size())
+# t2data.notify_region_change(modified_region, t2data.CHANNEL_HEIGHT)
+# Called every frame. 'delta' is the elapsed time since the previous frame.
+#func _process(delta):
+# pass