diff --git a/config.py b/config.py index 7bbd5c64..b29882bd 100644 --- a/config.py +++ b/config.py @@ -770,7 +770,7 @@ class Config: if isinstance(value, dict) and set(value.keys()) == set(self.OVERLAY_SMALL_LOG_SETTINGS.keys()): for key, value in value.items(): match (key): - case "x_pos" | "y_pos" | "depth": + case "x_pos" | "y_pos" | "depth" | "x_rotation" | "y_rotation" | "z_rotation": if isinstance(value, float): self._OVERLAY_SMALL_LOG_SETTINGS[key] = value case "display_duration" | "fadeout_duration": @@ -1074,6 +1074,9 @@ class Config: "x_pos": 0.0, "y_pos": -0.41, "depth": 1.0, + "x_rotation": 0.0, + "y_rotation": 0.0, + "z_rotation": 0.0, "display_duration": 5, "fadeout_duration": 2, } diff --git a/controller.py b/controller.py index 714335f0..9646ded6 100644 --- a/controller.py +++ b/controller.py @@ -903,6 +903,15 @@ def callbackSetOverlaySmallLogSettings(value, set_type:str): model.updateOverlayPosition() case "depth": model.updateOverlayPosition() + case "x_rotation": + pass + # update rotation + case "y_rotation": + pass + # update rotation + case "z_rotation": + pass + # update rotation case "display_duration": model.updateOverlayTimes() case "fadeout_duration": diff --git a/view.py b/view.py index 939e000a..ad701bbe 100644 --- a/view.py +++ b/view.py @@ -186,6 +186,25 @@ class View(): VAR_OVERLAY_SMALL_LOG_DEPTH=DoubleVar(value=config.OVERLAY_SMALL_LOG_SETTINGS["depth"]), VAR_CURRENT_VALUE_OVERLAY_SMALL_LOG_DEPTH=StringVar(value=config.OVERLAY_SMALL_LOG_SETTINGS["depth"]), + VAR_LABEL_OVERLAY_SMALL_LOG_X_ROTATION=StringVar(value="x_rotation"), + SLIDER_RANGE_OVERLAY_SMALL_LOG_X_ROTATION=(-1, 1), + NUMBER_OF_STEPS_OVERLAY_SMALL_LOG_X_ROTATION=200, + VAR_OVERLAY_SMALL_LOG_X_ROTATION=DoubleVar(value=config.OVERLAY_SMALL_LOG_SETTINGS["x_rotation"]), + VAR_CURRENT_VALUE_OVERLAY_SMALL_LOG_X_ROTATION=StringVar(value=config.OVERLAY_SMALL_LOG_SETTINGS["x_rotation"]), + + VAR_LABEL_OVERLAY_SMALL_LOG_Y_ROTATION=StringVar(value="y_rotation"), + SLIDER_RANGE_OVERLAY_SMALL_LOG_Y_ROTATION=(-1, 1), + NUMBER_OF_STEPS_OVERLAY_SMALL_LOG_Y_ROTATION=200, + VAR_OVERLAY_SMALL_LOG_Y_ROTATION=DoubleVar(value=config.OVERLAY_SMALL_LOG_SETTINGS["y_rotation"]), + VAR_CURRENT_VALUE_OVERLAY_SMALL_LOG_Y_ROTATION=StringVar(value=config.OVERLAY_SMALL_LOG_SETTINGS["y_rotation"]), + + VAR_LABEL_OVERLAY_SMALL_LOG_Z_ROTATION=StringVar(value="z_rotation"), + SLIDER_RANGE_OVERLAY_SMALL_LOG_Z_ROTATION=(-1, 1), + NUMBER_OF_STEPS_OVERLAY_SMALL_LOG_Z_ROTATION=200, + VAR_OVERLAY_SMALL_LOG_Z_ROTATION=DoubleVar(value=config.OVERLAY_SMALL_LOG_SETTINGS["z_rotation"]), + VAR_CURRENT_VALUE_OVERLAY_SMALL_LOG_Z_ROTATION=StringVar(value=config.OVERLAY_SMALL_LOG_SETTINGS["z_rotation"]), + + VAR_LABEL_OVERLAY_SMALL_LOG_DISPLAY_DURATION=StringVar(value=i18n.t("overlay_settings.display_duration")), SLIDER_RANGE_OVERLAY_SMALL_LOG_DISPLAY_DURATION=(1, 60), NUMBER_OF_STEPS_OVERLAY_SMALL_LOG_DISPLAY_DURATION=59, diff --git a/vrct_gui/quick_settings_window/QuickSettingsWindow.py b/vrct_gui/quick_settings_window/QuickSettingsWindow.py index 1f44f523..beba415c 100644 --- a/vrct_gui/quick_settings_window/QuickSettingsWindow.py +++ b/vrct_gui/quick_settings_window/QuickSettingsWindow.py @@ -163,6 +163,64 @@ class QuickSettingsWindow(CTkToplevel): self.qsb__overlay_small_log_settings_depth.grid(row=row) + + row+=1 + def overlaySmallLogSettingsXRotationSliderCallback(e): + value = round(e,2) + callFunctionIfCallable(view_variable.CALLBACK_SET_OVERLAY_SMALL_LOG_SETTINGS, value, "x_rotation") + view_variable.VAR_CURRENT_VALUE_OVERLAY_SMALL_LOG_X_ROTATION.set(str(value)) + + self.qsb__overlay_small_log_settings_x_rotation = createSettingBoxSlider( + for_var_label_text=view_variable.VAR_LABEL_OVERLAY_SMALL_LOG_X_ROTATION, + for_var_current_value=view_variable.VAR_CURRENT_VALUE_OVERLAY_SMALL_LOG_X_ROTATION, + slider_attr_name="qsb__overlay_small_log_settings_x_rotation_slider", + slider_range=view_variable.SLIDER_RANGE_OVERLAY_SMALL_LOG_X_ROTATION, + slider_number_of_steps=view_variable.NUMBER_OF_STEPS_OVERLAY_SMALL_LOG_X_ROTATION, + command=overlaySmallLogSettingsXRotationSliderCallback, + variable=view_variable.VAR_OVERLAY_SMALL_LOG_X_ROTATION, + ) + self.qsb__overlay_small_log_settings_x_rotation.grid(row=row) + + + + row+=1 + def overlaySmallLogSettingsYRotationSliderCallback(e): + value = round(e,2) + callFunctionIfCallable(view_variable.CALLBACK_SET_OVERLAY_SMALL_LOG_SETTINGS, value, "y_rotation") + view_variable.VAR_CURRENT_VALUE_OVERLAY_SMALL_LOG_Y_ROTATION.set(str(value)) + + self.qsb__overlay_small_log_settings_y_rotation = createSettingBoxSlider( + for_var_label_text=view_variable.VAR_LABEL_OVERLAY_SMALL_LOG_Y_ROTATION, + for_var_current_value=view_variable.VAR_CURRENT_VALUE_OVERLAY_SMALL_LOG_Y_ROTATION, + slider_attr_name="qsb__overlay_small_log_settings_y_rotation_slider", + slider_range=view_variable.SLIDER_RANGE_OVERLAY_SMALL_LOG_Y_ROTATION, + slider_number_of_steps=view_variable.NUMBER_OF_STEPS_OVERLAY_SMALL_LOG_Y_ROTATION, + command=overlaySmallLogSettingsYRotationSliderCallback, + variable=view_variable.VAR_OVERLAY_SMALL_LOG_Y_ROTATION, + ) + self.qsb__overlay_small_log_settings_y_rotation.grid(row=row) + + + + row+=1 + def overlaySmallLogSettingsZRotationSliderCallback(e): + value = round(e,2) + callFunctionIfCallable(view_variable.CALLBACK_SET_OVERLAY_SMALL_LOG_SETTINGS, value, "z_rotation") + view_variable.VAR_CURRENT_VALUE_OVERLAY_SMALL_LOG_Z_ROTATION.set(str(value)) + + self.qsb__overlay_small_log_settings_z_rotation = createSettingBoxSlider( + for_var_label_text=view_variable.VAR_LABEL_OVERLAY_SMALL_LOG_Z_ROTATION, + for_var_current_value=view_variable.VAR_CURRENT_VALUE_OVERLAY_SMALL_LOG_Z_ROTATION, + slider_attr_name="qsb__overlay_small_log_settings_z_rotation_slider", + slider_range=view_variable.SLIDER_RANGE_OVERLAY_SMALL_LOG_Z_ROTATION, + slider_number_of_steps=view_variable.NUMBER_OF_STEPS_OVERLAY_SMALL_LOG_Z_ROTATION, + command=overlaySmallLogSettingsZRotationSliderCallback, + variable=view_variable.VAR_OVERLAY_SMALL_LOG_Z_ROTATION, + ) + self.qsb__overlay_small_log_settings_z_rotation.grid(row=row) + + + row+=1 def overlaySmallLogSettingsDisplayDurationSliderCallback(e): value = int(e)