#ifndef LAVA_H_
#define LAVA_H_
-#include "game/level/camera.h"
+#include <stdbool.h>
+
+#include "game/camera.h"
+#include "game/level/rigid_bodies.h"
#include "math/rect.h"
-typedef struct lava_t lava_t;
+typedef struct Lava Lava;
+typedef struct LineStream LineStream;
+typedef struct RectLayer RectLayer;
+
+Lava *create_lava_from_line_stream(LineStream *line_stream);
+Lava *create_lava_from_rect_layer(const RectLayer *rect_layer);
+void destroy_lava(Lava *lava);
-lava_t *create_lava_from_stream(FILE *stream);
-void destroy_lava(lava_t *lava);
+int lava_render(const Lava *lava,
+ Camera *camera);
+int lava_update(Lava *lava, float delta_time);
-int lava_render(const lava_t *lava,
- const camera_t *camera);
-int lava_update(lava_t *lava, float delta_time);
+bool lava_overlaps_rect(const Lava *lava, Rect rect);
-int lava_overlaps_rect(const lava_t *lava,
- rect_t rect);
+void lava_float_rigid_body(Lava *lava, RigidBodies *rigid_bodies, RigidBodyId id);
#endif // LAVA_H_