From 3ccfe2c30699839e173945a2daebe71645c0954f Mon Sep 17 00:00:00 2001 From: Insality Date: Wed, 16 Oct 2024 21:15:16 +0300 Subject: [PATCH] Remove pin knob component --- druid/custom/pin_knob/pin_knob.gui | 182 ----------------------------- druid/custom/pin_knob/pin_knob.lua | 121 ------------------- 2 files changed, 303 deletions(-) delete mode 100644 druid/custom/pin_knob/pin_knob.gui delete mode 100644 druid/custom/pin_knob/pin_knob.lua diff --git a/druid/custom/pin_knob/pin_knob.gui b/druid/custom/pin_knob/pin_knob.gui deleted file mode 100644 index 63974606..00000000 --- a/druid/custom/pin_knob/pin_knob.gui +++ /dev/null @@ -1,182 +0,0 @@ -script: "" -fonts { - name: "game" - font: "/example/assets/fonts/game.font" -} -textures { - name: "kenney" - texture: "/example/assets/images/kenney.atlas" -} -background_color { - x: 0.0 - y: 0.0 - z: 0.0 - w: 0.0 -} -nodes { - position { - x: 0.0 - y: 0.0 - z: 0.0 - w: 1.0 - } - rotation { - x: 0.0 - y: 0.0 - z: 0.0 - w: 1.0 - } - scale { - x: 1.0 - y: 1.0 - z: 1.0 - w: 1.0 - } - size { - x: 1.0 - y: 1.0 - z: 0.0 - w: 1.0 - } - color { - x: 1.0 - y: 1.0 - z: 1.0 - w: 1.0 - } - type: TYPE_BOX - blend_mode: BLEND_MODE_ALPHA - texture: "kenney/empty" - id: "root" - xanchor: XANCHOR_NONE - yanchor: YANCHOR_NONE - pivot: PIVOT_CENTER - adjust_mode: ADJUST_MODE_FIT - layer: "" - inherit_alpha: true - slice9 { - x: 0.0 - y: 0.0 - z: 0.0 - w: 0.0 - } - clipping_mode: CLIPPING_MODE_NONE - clipping_visible: true - clipping_inverted: false - alpha: 1.0 - template_node_child: false - size_mode: SIZE_MODE_AUTO -} -nodes { - position { - x: 0.0 - y: 0.0 - z: 0.0 - w: 1.0 - } - rotation { - x: 0.0 - y: 0.0 - z: 0.0 - w: 1.0 - } - scale { - x: 2.0 - y: 2.0 - z: 1.0 - w: 1.0 - } - size { - x: 36.0 - y: 36.0 - z: 0.0 - w: 1.0 - } - color { - x: 1.0 - y: 1.0 - z: 1.0 - w: 1.0 - } - type: TYPE_BOX - blend_mode: BLEND_MODE_ALPHA - texture: "kenney/slider_move" - id: "pin" - xanchor: XANCHOR_NONE - yanchor: YANCHOR_NONE - pivot: PIVOT_CENTER - adjust_mode: ADJUST_MODE_FIT - parent: "root" - layer: "" - inherit_alpha: true - slice9 { - x: 0.0 - y: 0.0 - z: 0.0 - w: 0.0 - } - clipping_mode: CLIPPING_MODE_NONE - clipping_visible: true - clipping_inverted: false - alpha: 1.0 - template_node_child: false - size_mode: SIZE_MODE_AUTO -} -nodes { - position { - x: 0.0 - y: 13.5 - z: 0.0 - w: 1.0 - } - rotation { - x: 0.0 - y: 0.0 - z: 0.0 - w: 1.0 - } - scale { - x: 0.2 - y: 1.0 - z: 1.0 - w: 1.0 - } - size { - x: 17.0 - y: 17.0 - z: 0.0 - w: 1.0 - } - color { - x: 0.101960786 - y: 0.101960786 - z: 0.101960786 - w: 1.0 - } - type: TYPE_BOX - blend_mode: BLEND_MODE_ALPHA - texture: "kenney/tick" - id: "notch" - xanchor: XANCHOR_NONE - yanchor: YANCHOR_NONE - pivot: PIVOT_CENTER - adjust_mode: ADJUST_MODE_FIT - parent: "pin" - layer: "" - inherit_alpha: true - slice9 { - x: 0.0 - y: 0.0 - z: 0.0 - w: 0.0 - } - clipping_mode: CLIPPING_MODE_NONE - clipping_visible: true - clipping_inverted: false - alpha: 1.0 - template_node_child: false - size_mode: SIZE_MODE_AUTO -} -material: "/builtins/materials/gui.material" -adjust_reference: ADJUST_REFERENCE_PARENT -max_nodes: 512 diff --git a/druid/custom/pin_knob/pin_knob.lua b/druid/custom/pin_knob/pin_knob.lua deleted file mode 100644 index 39e8c5f0..00000000 --- a/druid/custom/pin_knob/pin_knob.lua +++ /dev/null @@ -1,121 +0,0 @@ --- Copyright (c) 2022 Maksim Tuprikov . This code is licensed under MIT license - ---- Druid pin knob custom component. --- It's simple rotating input element --- @module PinKnob --- @within BaseComponent --- @alias druid.pin_knob - ---- The component druid instance --- @tfield DruidInstance druid @{DruidInstance} - ---- Is currently under user control --- @tfield boolean is_drag - ---- The pin node --- @tfield node node - ---- - -local const = require("druid.const") -local component = require("druid.component") - -local PinKnob = component.create("druid.pin_knob", { const.ON_INPUT }) - -local SCHEME = { - ROOT = "root", - PIN = "pin", -} - - -local function update_visual(self) - local rotation = vmath.vector3(0, 0, self.angle) - gui.set_euler(self.node, rotation) -end - - -local function set_angle(self, value) - local prev_value = self.angle - - self.angle = value - self.angle = math.min(self.angle, self.angle_max) - self.angle = math.max(self.angle, self.angle_min) - update_visual(self) - - if prev_value ~= self.angle and self.callback then - local output_value = self.angle - if output_value ~= 0 then - output_value = -output_value - end - self.callback(self:get_context(), output_value) - end -end - - ---- The @{PinKnob} constructor --- @tparam PinKnob self @{PinKnob} --- @tparam function callback Callback(self, value) on value changed --- @tparam string template The template string name --- @tparam table nodes Nodes table from gui.clone_tree -function PinKnob.init(self, callback, template, nodes) - self.druid = self:get_druid(template, nodes) - self.node = self:get_node(SCHEME.PIN) - self.is_drag = false - - self.callback = callback - self:set_angle(0, -100, 100) - self._friction = 0.75 -end - - ---- Set current and min/max angles for component --- @tparam PinKnob self @{PinKnob} --- @tparam number cur_value The new value for pin knob --- @tparam number min The minimum value for pin knob --- @tparam number max The maximum value for pin knob --- @treturn PinKnob @{PinKnob} -function PinKnob.set_angle(self, cur_value, min, max) - self.angle_min = min or self.angle_min - self.angle_max = max or self.angle_max - set_angle(self, cur_value) - - return self -end - - ---- Set current and min/max angles for component --- @tparam PinKnob self @{PinKnob} --- @tparam number|nil value The spin speed multiplier. Default: 1 --- @treturn PinKnob @{PinKnob} -function PinKnob.set_friction(self, value) - self._friction = value or 1 - - return self -end - - -function PinKnob.on_input(self, action_id, action) - if action_id ~= const.ACTION_TOUCH then - return false - end - - if gui.pick_node(self.node, action.x, action.y) then - if action.pressed then - self.pos = gui.get_position(self.node) - self.is_drag = true - end - end - - if self.is_drag and not action.pressed then - set_angle(self, self.angle - action.dx * self._friction - action.dy * self._friction) - end - - if action.released then - self.is_drag = false - end - - return self.is_drag -end - - -return PinKnob