pushing changes before bed
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Tue, 1 Mar 2022 04:28:42 +0000 (22:28 -0600)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Tue, 1 Mar 2022 04:28:42 +0000 (22:28 -0600)
src/entity/components/furniture.onyx
src/entity/components/patron.onyx
src/entity/components/player.onyx

index 1fb10a5ff2e24c722f1ff7f0b4c1be70717cc2ac..07611d86876c8f383aed264ecf81db1744ec23b5 100644 (file)
@@ -18,4 +18,10 @@ FurnitureComponent :: struct {
         sprite.size = .{32, 32};
         sprite.color = .{1, 1, 1};
     }
+
+    try_take :: (use this: ^FurnitureComponent) -> bool {
+        if taken do return false;
+        taken = true;
+        return true;
+    }
 }
\ No newline at end of file
index b33004d7ed326fdcb079cf6b41eb93cf9835e187..41e2f6ecfb2e50aaa6c92d1a1e2c6f884b40ed25 100644 (file)
@@ -39,8 +39,8 @@ PatronComponent :: struct {
 
                 for seats {
                     furniture := it->get(FurnitureComponent);
-                    if !furniture.taken && furniture.furniture_type == .Seat {
-                        furniture.taken = true;
+                    if furniture.furniture_type != .Seat do continue;
+                    if furniture->try_take() {
                         seat = it.id;
                         break;
                     }
index d3292a1e5eb18a585fbb36eab61969dd3c2448a6..e552b9f01add865a0f03b62bbbcf16235fe43828 100644 (file)
@@ -84,7 +84,7 @@ PlayerComponent :: struct {
             holding_object := scene->get(player.holding);
             r := Entity.get_rect(holding_object);
             target_pos := pos - .{0, (size.y + r.h) / 2};
-            holding_object.pos += (target_pos - holding_object.pos) * 0.25;
+            holding_object.pos += (target_pos - holding_object.pos) * 0.4;
         }
     }