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
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;
}
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;
}
}