[{"data":1,"prerenderedAt":227},["ShallowReactive",2],{"class-doc-/reference/2.0/gg_dragondrop/ggdragondropstrategy":3,"navigation":155},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"_id":8,"navigation":6,"addon":5,"version":9,"brief_description":10,"description":11,"tutorials":7,"methods":12,"members":123,"signals":147,"constants":148,"inherits":149,"name":150,"title":150,"_source":151,"_file":152,"_stem":153,"_extension":154},"/reference/2.0/gg_dragondrop/ggdragondropstrategy","gg_dragondrop",false,"","content:40.reference:2.0:gg_dragondrop:GGDragonDropStrategy.xml","2.0","Encapsulates the drag-and-drop configuration and logic.","Provides base functionality for drag-and-drop behavior. [br][br]Extend this class with your custom logic.",[13,27,36,44,53,61,67,71,78,81,86,93,100,107,113,119],{"description":7,"name":14,"public":15,"returnType":16,"params":17},"get_drag_data",true,"GGDragonDropData",[18,21,24],{"name":19,"type":20},"component","GGDragonDrop",{"name":22,"type":23},"control","Control",{"name":25,"type":26},"at_position","Vector2",{"description":7,"name":28,"public":15,"returnType":29,"params":30},"can_drop_data","bool",[31,32,33,34],{"name":19,"type":20},{"name":22,"type":23},{"name":25,"type":26},{"name":35,"type":16},"data",{"description":7,"name":37,"public":15,"returnType":38,"params":39},"drop_data","void",[40,41,42,43],{"name":19,"type":20},{"name":22,"type":23},{"name":25,"type":26},{"name":35,"type":16},{"description":45,"name":46,"public":15,"returnType":38,"params":47},"Process the [param control]'s [signal Control.gui_input] signal to handle force-dragging.","gui_input",[48,49,50],{"name":19,"type":20},{"name":22,"type":23},{"name":51,"type":52},"event","InputEvent",{"description":54,"name":55,"public":15,"returnType":38,"params":56},"Invoked from the [GGDragonHelper] to support right-click to cancel drag and modifier buttons. Override the [method _apply_modifier_key] method in your strategy.","handle_modifier",[57,58,59,60],{"name":19,"type":20},{"name":22,"type":23},{"name":51,"type":52},{"name":35,"type":16},{"description":7,"name":62,"public":6,"returnType":38,"params":63},"_force_drag_support",[64,65,66],{"name":19,"type":20},{"name":22,"type":23},{"name":51,"type":52},{"description":7,"name":68,"public":6,"returnType":38,"params":69},"_force_drop_support",[70],{"name":35,"type":16},{"description":7,"name":72,"public":6,"returnType":16,"params":73},"_force_drag",[74,75,76,77],{"name":19,"type":20},{"name":22,"type":23},{"name":25,"type":26},{"name":35,"type":16},{"description":7,"name":79,"public":6,"returnType":29,"params":80},"_cancel_drag",[],{"description":7,"name":82,"public":6,"returnType":29,"params":83},"_right_click_cancel_drag",[84,85],{"name":19,"type":20},{"name":51,"type":52},{"description":7,"name":87,"public":6,"returnType":29,"params":88},"_can_drag_data",[89,91],{"name":90,"type":23},"_control",{"name":92,"type":26},"_at_position",{"description":7,"name":94,"public":6,"returnType":29,"params":95},"_can_drop_data",[96,97,98],{"name":90,"type":23},{"name":92,"type":26},{"name":99,"type":16},"_data",{"description":7,"name":101,"public":6,"returnType":38,"params":102},"_apply_modifier_key",[103,104,105,106],{"name":19,"type":20},{"name":22,"type":23},{"name":51,"type":52},{"name":35,"type":16},{"description":7,"name":108,"public":6,"returnType":16,"params":109},"_make_drag_data",[110,111,112],{"name":19,"type":20},{"name":22,"type":23},{"name":25,"type":26},{"description":114,"name":115,"public":15,"returnType":38,"params":116},"Update the preview. Should be called after a modifier updates the [param data] (e.g. via [method _apply_modifier_key]).","update_preview",[117,118],{"name":22,"type":23},{"name":35,"type":16},{"description":7,"name":120,"public":15,"returnType":23,"params":121},"get_preview",[122],{"name":35,"type":16},[124,128,132,135,140,144],{"name":125,"description":126,"type":29,"setter":7,"getter":7,"default":127,"public":15},"allow_drag","Whether the [member control] allows dragging.","true",{"name":129,"description":130,"type":29,"setter":7,"getter":7,"default":131,"public":15},"use_force_drag","When [code]true[/code] allows for simple left-clicks to start dragging.","false",{"name":133,"description":134,"type":29,"setter":7,"getter":7,"default":127,"public":15},"allow_drop","Whether the [member control] allows dropping.",{"name":136,"description":137,"type":138,"setter":7,"getter":7,"default":139,"public":15},"drag_data_script","The script to use when creating drag data in [method _make_drag_data].","Script","\u003CObject>",{"name":141,"description":142,"type":143,"setter":7,"getter":7,"default":139,"public":15},"preview_scene","The preview scene used while dragging. Assembled and populated in [method get_preview].","PackedScene",{"name":145,"description":146,"type":29,"setter":7,"getter":7,"default":131,"public":6},"_prevent_pickup_after_force_drop","(Internal) Flag to prevent immediate force_drag after a drop. This is because the drop occurs on pressed, while the pickup occurs during release. That's a current limitation of Godot's [method Control.force_drag] implementation. It's being addressed in [url=https://github.com/godotengine/godot/issues/95880]Godot issue #95880[/url].",[],[],"Resource","GGDragonDropStrategy","content","40.reference/2.0/gg_dragondrop/GGDragonDropStrategy.xml","40.reference/2.0/gg_dragondrop/GGDragonDropStrategy","xml",[156,165,192,212],{"title":157,"_path":158,"children":159},"Getting Started","/getting-started",[160,162],{"title":161,"_path":158},"Introduction",{"title":163,"_path":164},"Installation","/getting-started/installation",{"title":166,"_path":167,"children":168},"Concepts","/concepts",[169,171,174,177,180,183,186,189],{"title":170,"_path":167},"Overview",{"title":172,"_path":173},"Inventory","/concepts/inventory",{"title":175,"_path":176},"Interactions","/concepts/interaction",{"title":178,"_path":179},"Permissions","/concepts/permissions",{"title":181,"_path":182},"Multiplayer","/concepts/multiplayer",{"title":184,"_path":185},"User Interface","/concepts/user-interface",{"title":187,"_path":188},"Game Integration","/concepts/game-integration",{"title":190,"_path":191},"Crafting","/concepts/crafting",{"title":193,"_path":194,"children":195},"Demos","/demos",[196,198,201,204,206,209],{"title":197,"_path":194},"Inventory Tour",{"title":199,"_path":200},"Inventory UI Playground","/demos/inventory_ui",{"title":202,"_path":203},"Inventory Game UI","/demos/inventory_game_ui",{"title":190,"_path":205},"/demos/crafting",{"title":207,"_path":208},"Multiplayer Lobby","/demos/mp_lobby",{"title":210,"_path":211},"Sequencer (prototype)","/demos/sequencer",{"title":213,"_path":214,"children":215},"Guide","/guide",[216,218,221,224],{"title":217,"_path":214},"Architecture Deep Dive",{"title":219,"_path":220},"Design Principles","/guide/design-principles",{"title":222,"_path":223},"Changelog v2.x","/guide/changelog-v2",{"title":225,"_path":226},"Changelog v1.x","/guide/changelog",1743268978957]