-void InteractiveState::Render(Viewport &viewport) {
- Entity &player = *interface.GetPlayer().entity;
- viewport.WorldPosition(player.Transform(player.ChunkCoords()));
- chunk_renderer.Render(viewport);
- world.Render(viewport);
- interface.Render(viewport);
+void InteractiveState::SetVideo(bool b) {
+ master.GetConfig().video.world = b;
+ if (b) {
+ hud.PostMessage("World rendering enabled");
+ } else {
+ hud.PostMessage("World rendering disabled");
+ }
+}
+
+void InteractiveState::SetHUD(bool b) {
+ master.GetConfig().video.hud = b;
+ if (b) {
+ hud.PostMessage("HUD rendering enabled");
+ } else {
+ hud.PostMessage("HUD rendering disabled");
+ }
+}
+
+void InteractiveState::SetDebug(bool b) {
+ master.GetConfig().video.debug = b;
+ if (b) {
+ hud.PostMessage("Debug rendering enabled");
+ } else {
+ hud.PostMessage("Debug rendering disabled");
+ }
+}
+
+void InteractiveState::NextCamera() {
+ if (iszero(master.GetEnv().viewport.CameraOffset())) {
+ master.GetEnv().viewport.OffsetCamera(glm::vec3(0.0f, 0.0f, -5.0f));
+ } else {
+ master.GetEnv().viewport.OffsetCamera(glm::vec3(0.0f, 0.0f, 0.0f));
+ }
+}
+
+void InteractiveState::Exit() {
+ save.Write(player);
+ master.Quit();
+}
+
+void InteractiveState::OnLineSubmit(const string &line) {
+ if (!line.empty()) {
+ master.GetClient().SendMessage(1, 0, line);
+ }