Add Cooler, Bag, and compact hotbar systems
This commit is contained in:
parent
8cd3e83285
commit
49e7faaf84
32 changed files with 1613 additions and 99 deletions
46
ui/item_drag_source.gd
Normal file
46
ui/item_drag_source.gd
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
class_name ItemDragSource
|
||||
extends Button
|
||||
|
||||
var item_id: StringName
|
||||
var item_icon: Texture2D
|
||||
var item_name: String
|
||||
|
||||
|
||||
func setup(
|
||||
new_item_id: StringName,
|
||||
new_item_name: String,
|
||||
new_icon: Texture2D,
|
||||
) -> void:
|
||||
item_id = new_item_id
|
||||
item_name = new_item_name
|
||||
item_icon = new_icon
|
||||
|
||||
|
||||
func _get_drag_data(_at_position: Vector2) -> Variant:
|
||||
if item_id.is_empty() or disabled:
|
||||
return null
|
||||
set_drag_preview(_create_drag_preview())
|
||||
return {
|
||||
"kind": "bag_item",
|
||||
"item_id": String(item_id),
|
||||
}
|
||||
|
||||
|
||||
func _create_drag_preview() -> Control:
|
||||
var preview := VBoxContainer.new()
|
||||
preview.mouse_filter = Control.MOUSE_FILTER_IGNORE
|
||||
preview.add_theme_constant_override("separation", 2)
|
||||
var texture := TextureRect.new()
|
||||
texture.custom_minimum_size = Vector2(44, 44)
|
||||
texture.texture = item_icon
|
||||
texture.expand_mode = TextureRect.EXPAND_IGNORE_SIZE
|
||||
texture.stretch_mode = TextureRect.STRETCH_KEEP_ASPECT_CENTERED
|
||||
texture.mouse_filter = Control.MOUSE_FILTER_IGNORE
|
||||
preview.add_child(texture)
|
||||
var label := Label.new()
|
||||
label.text = item_name
|
||||
label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER
|
||||
label.mouse_filter = Control.MOUSE_FILTER_IGNORE
|
||||
label.add_theme_font_size_override("font_size", 12)
|
||||
preview.add_child(label)
|
||||
return preview
|
||||
Loading…
Add table
Add a link
Reference in a new issue