diff options
author | metamuffin <metamuffin@disroot.org> | 2024-09-28 21:00:23 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-09-28 21:00:29 +0200 |
commit | 033d928a1f8a3cdd791d00ac24a3e6d41163346e (patch) | |
tree | 52329a531b9a9ae002e3805bc4d221a202f184e1 /client | |
parent | 5cd87fc5d570d584019a6d6dd8dc25b6e5f274a0 (diff) | |
download | hurrycurry-033d928a1f8a3cdd791d00ac24a3e6d41163346e.tar hurrycurry-033d928a1f8a3cdd791d00ac24a3e6d41163346e.tar.bz2 hurrycurry-033d928a1f8a3cdd791d00ac24a3e6d41163346e.tar.zst |
new tiles for menu background
Diffstat (limited to 'client')
-rw-r--r-- | client/menu/menu_background.gd | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/client/menu/menu_background.gd b/client/menu/menu_background.gd index 33ec6e43..77fb123f 100644 --- a/client/menu/menu_background.gd +++ b/client/menu/menu_background.gd @@ -17,8 +17,8 @@ # extends Node3D -const NULLS = [null,null,null,null] -const BUCKETS = [[], ["floor","floor","floor","floor","tomato-crate", "steak-crate"], ["table", "chair", "counter"], ["sink", "stove"]] +const CRATES = ["tomato-crate", "steak-crate", "cheese-crate", "lettuce-crate", "flour-crate", "coconut-crate"] +const TOOLS = ["sink", "cuttingboard", "stove", "oven", "freezer"] @onready var environment: WorldEnvironment = $Environment @onready var map: Map = $Map @@ -27,12 +27,26 @@ func _ready(): if !Global.on_vulkan(): environment.environment.tonemap_exposure = 0.25 - for x in range(-10,11): - for y in range(-10,11): - var w = exp(-sqrt(x*x+y*y) * 0.15) + var tiles = {} + for x in range(-10, 11): + for y in range(-10, 11): + var w = exp(-sqrt(x * x + y * y) * 0.15) var k = randf() * w - var bucket = BUCKETS[int(floor(k * BUCKETS.size())) % BUCKETS.size()] - if bucket.size() == 0: continue - var tile_name = bucket[randi() % bucket.size()] - map.set_tile(Vector2i(x,y), tile_name) + var tn = null + if k > 0.25: tn = "floor" + if k > 0.4: tn = choose(CRATES) if randf() > 0.3 else "counter" + if k > 0.6: tn = choose(TOOLS) + if tn != null: tiles[str(Vector2i(x,y))] = [tn,[x,y]] + + var gt = func (cs): + var t = tiles.get(str(Vector2i(cs[0],cs[1]))) + return null if t == null else t[0] + for pk in tiles.keys(): + var x = tiles[pk][1][0] + var y = tiles[pk][1][1] + var t = gt.call([x,y]) + if t != null: map.set_tile(Vector2i(x,y), t, [[x,y-1],[x-1,y],[x,y+1],[x+1,y]].map(gt)) + map.flush() + +func choose(a): return a[floor(a.size() * randf())] |