Przeglądaj źródła

tools: start/stop game

Daniele Bartolini 6 lat temu
rodzic
commit
a5c2895bde

Plik diff jest za duży
+ 5374 - 5460
tools/gresources.c


+ 2 - 1
tools/gresources.xml

@@ -20,7 +20,8 @@
 		<file>ui/icons/theme/16x16/actions/level-tree.png</file>
 		<file>ui/icons/theme/16x16/actions/reference-local.png</file>
 		<file>ui/icons/theme/16x16/actions/reference-world.png</file>
-		<file>ui/icons/theme/16x16/actions/run.png</file>
+		<file>ui/icons/theme/16x16/actions/game-run.png</file>
+		<file>ui/icons/theme/16x16/actions/game-stop.png</file>
 		<file>ui/icons/theme/16x16/actions/snap-to-grid.png</file>
 		<file>ui/icons/theme/16x16/actions/tool-move.png</file>
 		<file>ui/icons/theme/16x16/actions/tool-place.png</file>

+ 66 - 61
tools/level_editor/level_editor.vala

@@ -89,61 +89,61 @@ namespace Crown
 
 		const Gtk.ActionEntry[] action_entries =
 		{
-			{ "menu-file",            null,  "_File",              null,             null,         null                       },
-			{ "new-level",            null,  "New Level",          "<ctrl>N",        null,         on_new_level               },
-			{ "open-level",           null,  "Open Level...",      "<ctrl>O",        null,         on_open_level              },
-			{ "open-project",         null,  "Open Project...",    null,             null,         on_open_project            },
-			{ "save",                 null,  "Save",               "<ctrl>S",        null,         on_save                    },
-			{ "save-as",              null,  "Save As...",         "<shift><ctrl>S", null,         on_save_as                 },
-			{ "import",               null,  "Import",             null,             null,         null                       },
-			{ "import-sprites",       null,  "Sprites...",         null,             null,         on_import_sprites          },
-			{ "import-meshes",        null,  "Meshes...",          null,             null,         on_import_meshes           },
-			{ "import-sounds",        null,  "Sounds...",          null,             null,         on_import_sounds           },
-			{ "import-textures",      null,  "Textures...",        null,             null,         on_import_textures         },
-			{ "preferences",          null,  "Preferences",        null,             null,         on_preferences             },
-			{ "deploy",               null,  "Deploy...",          null,             null,         on_deploy                  },
-			{ "quit",                 null,  "Quit",               "<ctrl>Q",        null,         on_quit                    },
-			{ "menu-edit",            null,  "_Edit",              null,             null,         null                       },
-			{ "undo",                 null,  "Undo",               "<ctrl>Z",        null,         on_undo                    },
-			{ "redo",                 null,  "Redo",               "<shift><ctrl>Z", null,         on_redo                    },
-			{ "duplicate",            null,  "Duplicate",          "<ctrl>D",        null,         on_duplicate               },
-			{ "delete",               null,  "Delete",             "<ctrl>K",        null,         on_delete                  },
-			{ "menu-grid",            null,  "Grid",               null,             null,         null                       },
-			{ "grid-custom",          null,  "Custom",             "<ctrl>G",        null,         on_custom_grid	          },
-			{ "menu-rotation-snap",   null,  "Rotation Snap",      null,             null,         null                       },
-			{ "rotation-snap-custom", null,  "Custom",             "<ctrl>H",        null,         on_rotation_snap           },
-			{ "menu-create",          null,  "Create",             null,             null,         null                       },
-			{ "menu-primitives",      null,  "Primitives",         null,             null,         null                       },
-			{ "primitive-cube",       null,  "Cube",               null,             null,         on_create_cube             },
-			{ "primitive-sphere",     null,  "Sphere",             null,             null,         on_create_sphere           },
-			{ "primitive-cone",       null,  "Cone",               null,             null,         on_create_cone             },
-			{ "primitive-cylinder",   null,  "Cylinder",           null,             null,         on_create_cylinder         },
-			{ "primitive-plane",      null,  "Plane",              null,             null,         on_create_plane            },
-			{ "camera",               null,  "Camera",             null,             null,         on_create_camera           },
-			{ "light",                null,  "Light",              null,             null,         on_create_light            },
-			{ "sound-source",         null,  "Sound Source",       null,             null,         on_create_sound_source     },
-			{ "menu-camera",          null,  "Camera",             null,             null,         null                       },
-			{ "camera-view-perspective", null,  "Perspective",     "KP_5",           null,         on_camera_view_perspective },
-			{ "camera-view-front",    null,  "View Front",         "KP_1",           null,         on_camera_view_front       },
-			{ "camera-view-back",     null,  "View Back",          "<ctrl>KP_1",     null,         on_camera_view_back        },
-			{ "camera-view-right",    null,  "View Right",         "KP_3",           null,         on_camera_view_right       },
-			{ "camera-view-left",     null,  "View Left",          "<ctrl>KP_3",     null,         on_camera_view_left        },
-			{ "camera-view-top",      null,  "View Top",           "KP_7",           null,         on_camera_view_top         },
-			{ "camera-view-bottom",   null,  "View Bottom",        "<ctrl>KP_7",     null,         on_camera_view_bottom      },
-			{ "menu-engine",          null,  "En_gine",            null,             null,         null                       },
-			{ "menu-view",            null,  "View",               null,             null,         null                       },
-			{ "resource-browser",     null,  "Resource Browser",   "<ctrl>P",        null,         on_resource_browser        },
-			{ "fullscreen",           null,  "Fullscreen",         "F11",            null,         on_fullscreen              },
-			{ "restart",              null,  "_Restart",           null,             null,         on_engine_restart          },
-			{ "reload-lua",           null,  "Reload Level Editor","F7",             null,         on_reload_lua              },
-			{ "menu-run",             null,  "_Run",               null,             null,         null                       },
-			{ "test-level",           "run", "Test Level",         "F5",             "Test Level", on_test_level              },
-			{ "run-game",             null,  "Run Game",           null,             null,         on_run_game                },
-			{ "menu-help",            null,  "Help",               null,             null,         null                       },
-			{ "manual",               null,  "Manual",             "F1",             null,         on_manual                  },
-			{ "report-issue",         null,  "Report an Issue",    null,             null,         on_report_issue            },
-			{ "open-last-log",        null,  "Open last.log",      null,             null,         on_open_last_log           },
-			{ "about",                null,  "About",              null,             null,         on_about                   }
+			{ "menu-file",               null,       "_File",               null,             null,         null                       },
+			{ "new-level",               null,       "New Level",           "<ctrl>N",        null,         on_new_level               },
+			{ "open-level",              null,       "Open Level...",       "<ctrl>O",        null,         on_open_level              },
+			{ "open-project",            null,       "Open Project...",     null,             null,         on_open_project            },
+			{ "save",                    null,       "Save",                "<ctrl>S",        null,         on_save                    },
+			{ "save-as",                 null,       "Save As...",          "<shift><ctrl>S", null,         on_save_as                 },
+			{ "import",                  null,       "Import",              null,             null,         null                       },
+			{ "import-sprites",          null,       "Sprites...",          null,             null,         on_import_sprites          },
+			{ "import-meshes",           null,       "Meshes...",           null,             null,         on_import_meshes           },
+			{ "import-sounds",           null,       "Sounds...",           null,             null,         on_import_sounds           },
+			{ "import-textures",         null,       "Textures...",         null,             null,         on_import_textures         },
+			{ "preferences",             null,       "Preferences",         null,             null,         on_preferences             },
+			{ "deploy",                  null,       "Deploy...",           null,             null,         on_deploy                  },
+			{ "quit",                    null,       "Quit",                "<ctrl>Q",        null,         on_quit                    },
+			{ "menu-edit",               null,       "_Edit",               null,             null,         null                       },
+			{ "undo",                    null,       "Undo",                "<ctrl>Z",        null,         on_undo                    },
+			{ "redo",                    null,       "Redo",                "<shift><ctrl>Z", null,         on_redo                    },
+			{ "duplicate",               null,       "Duplicate",           "<ctrl>D",        null,         on_duplicate               },
+			{ "delete",                  null,       "Delete",              "<ctrl>K",        null,         on_delete                  },
+			{ "menu-grid",               null,       "Grid",                null,             null,         null                       },
+			{ "grid-custom",             null,       "Custom",              "<ctrl>G",        null,         on_custom_grid             },
+			{ "menu-rotation-snap",      null,       "Rotation Snap",       null,             null,         null                       },
+			{ "rotation-snap-custom",    null,       "Custom",              "<ctrl>H",        null,         on_rotation_snap           },
+			{ "menu-create",             null,       "Create",              null,             null,         null                       },
+			{ "menu-primitives",         null,       "Primitives",          null,             null,         null                       },
+			{ "primitive-cube",          null,       "Cube",                null,             null,         on_create_cube             },
+			{ "primitive-sphere",        null,       "Sphere",              null,             null,         on_create_sphere           },
+			{ "primitive-cone",          null,       "Cone",                null,             null,         on_create_cone             },
+			{ "primitive-cylinder",      null,       "Cylinder",            null,             null,         on_create_cylinder         },
+			{ "primitive-plane",         null,       "Plane",               null,             null,         on_create_plane            },
+			{ "camera",                  null,       "Camera",              null,             null,         on_create_camera           },
+			{ "light",                   null,       "Light",               null,             null,         on_create_light            },
+			{ "sound-source",            null,       "Sound Source",        null,             null,         on_create_sound_source     },
+			{ "menu-camera",             null,       "Camera",              null,             null,         null                       },
+			{ "camera-view-perspective", null,       "Perspective",         "KP_5",           null,         on_camera_view_perspective },
+			{ "camera-view-front",       null,       "View Front",          "KP_1",           null,         on_camera_view_front       },
+			{ "camera-view-back",        null,       "View Back",           "<ctrl>KP_1",     null,         on_camera_view_back        },
+			{ "camera-view-right",       null,       "View Right",          "KP_3",           null,         on_camera_view_right       },
+			{ "camera-view-left",        null,       "View Left",           "<ctrl>KP_3",     null,         on_camera_view_left        },
+			{ "camera-view-top",         null,       "View Top",            "KP_7",           null,         on_camera_view_top         },
+			{ "camera-view-bottom",      null,       "View Bottom",         "<ctrl>KP_7",     null,         on_camera_view_bottom      },
+			{ "menu-engine",             null,       "En_gine",             null,             null,         null                       },
+			{ "menu-view",               null,       "View",                null,             null,         null                       },
+			{ "resource-browser",        null,       "Resource Browser",    "<ctrl>P",        null,         on_resource_browser        },
+			{ "fullscreen",              null,       "Fullscreen",          "F11",            null,         on_fullscreen              },
+			{ "restart",                 null,       "_Restart",            null,             null,         on_engine_restart          },
+			{ "reload-lua",              null,       "Reload Level Editor", "F7",             null,         on_reload_lua              },
+			{ "menu-run",                null,       "_Run",                null,             null,         null                       },
+			{ "test-level",              "game-run", "Test Level",          "F5",             "Test Level", on_run_game                },
+			{ "run-game",                null,       "Run Game",            null,             null,         on_run_game                },
+			{ "menu-help",               null,       "Help",                null,             null,         null                       },
+			{ "manual",                  null,       "Manual",              "F1",             null,         on_manual                  },
+			{ "report-issue",            null,       "Report an Issue",     null,             null,         on_report_issue            },
+			{ "open-last-log",           null,       "Open last.log",       null,             null,         on_open_last_log           },
+			{ "about",                   null,       "About",               null,             null,         on_about                   }
 		};
 
 		const Gtk.RadioActionEntry[] grid_entries =
@@ -397,6 +397,7 @@ namespace Crown
 
 		private void on_game_disconnected()
 		{
+			_action_group.get_action("test-level").icon_name = "game-run";
 			_console_view.logi("editor", "Game disconnected");
 			_project.delete_level_editor_test_level();
 		}
@@ -1409,14 +1410,18 @@ namespace Crown
 			send_state();
 		}
 
-		private void on_test_level(Gtk.Action action)
-		{
-			start_game(StartGame.TEST);
-		}
-
 		private void on_run_game(Gtk.Action action)
 		{
-			start_game(StartGame.NORMAL);
+			if (_game.is_connected())
+			{
+				stop_game();
+				action.icon_name = "game-run";
+			}
+			else
+			{
+				start_game(action.name == "test-level" ? StartGame.TEST : StartGame.NORMAL);
+				action.icon_name = "game-stop";
+			}
 		}
 
 		private void on_undo(Gtk.Action action)

+ 2 - 1
tools/makefile

@@ -18,7 +18,8 @@ OBJS = \
 	ui/icons/theme/16x16/actions/level-tree.png      \
 	ui/icons/theme/16x16/actions/reference-local.png \
 	ui/icons/theme/16x16/actions/reference-world.png \
-	ui/icons/theme/16x16/actions/run.png             \
+	ui/icons/theme/16x16/actions/game-run.png        \
+	ui/icons/theme/16x16/actions/game-stop.png       \
 	ui/icons/theme/16x16/actions/snap-to-grid.png    \
 	ui/icons/theme/16x16/actions/tool-move.png       \
 	ui/icons/theme/16x16/actions/tool-place.png      \

+ 0 - 0
tools/ui/icons/theme/16x16/actions/run.png → tools/ui/icons/theme/16x16/actions/game-run.png


BIN
tools/ui/icons/theme/16x16/actions/game-stop.png


Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików