mirror of
https://github.com/litruv/PNGTuber-Plus.git
synced 2026-07-24 02:26:02 +10:00
adding mask options
This commit is contained in:
@@ -30,6 +30,7 @@ var editMode = true
|
||||
@onready var spriteObject = preload("res://ui_scenes/selectedSprite/spriteObject.tscn")
|
||||
|
||||
var saveLoaded = false
|
||||
var isSelectingMask = false
|
||||
|
||||
#Motion
|
||||
var yVel = 0
|
||||
@@ -62,7 +63,9 @@ func _ready():
|
||||
|
||||
Global.connect("startSpeaking",onSpeak)
|
||||
|
||||
ElgatoStreamDeck.on_key_down.connect(changeCostumeStreamDeck)
|
||||
var streamdeck_node = get_node_or_null("/root/ElgatoStreamDeck")
|
||||
if streamdeck_node:
|
||||
streamdeck_node.on_key_down.connect(changeCostumeStreamDeck)
|
||||
|
||||
if Saving.settings["newUser"]:
|
||||
_on_load_dialog_file_selected("default")
|
||||
@@ -153,6 +156,9 @@ func _process(delta):
|
||||
followShadow()
|
||||
|
||||
func followShadow():
|
||||
shadow.visible = false # Disabled drop shadow
|
||||
return
|
||||
|
||||
shadow.visible = is_instance_valid(Global.heldSprite)
|
||||
if !shadow.visible:
|
||||
return
|
||||
@@ -171,6 +177,9 @@ func isFileSystemOpen():
|
||||
if obj.visible:
|
||||
if obj == replaceDialog:
|
||||
return true
|
||||
# Don't clear held sprite when selecting mask
|
||||
if obj == fileDialog and isSelectingMask:
|
||||
return true
|
||||
Global.heldSprite = null
|
||||
return true
|
||||
return false
|
||||
@@ -288,7 +297,20 @@ func _on_add_button_pressed():
|
||||
|
||||
#Runs when selecting image in File Dialog
|
||||
func _on_file_dialog_file_selected(path):
|
||||
add_image(path)
|
||||
if isSelectingMask:
|
||||
# Handle mask selection
|
||||
if Global.heldSprite != null:
|
||||
Global.heldSprite.setMaskTexture(path)
|
||||
Global.spriteEdit.updateMaskDisplay(path)
|
||||
isSelectingMask = false
|
||||
else:
|
||||
# Handle normal sprite addition
|
||||
add_image(path)
|
||||
|
||||
#Opens File Dialog for mask selection
|
||||
func openMaskSelection():
|
||||
isSelectingMask = true
|
||||
fileDialog.visible = true
|
||||
|
||||
func _on_save_button_pressed():
|
||||
$SaveDialog.visible = true
|
||||
@@ -363,6 +385,14 @@ func _on_load_dialog_file_selected(path):
|
||||
if data[item].has("toggle"):
|
||||
sprite.toggle = data[item]["toggle"]
|
||||
|
||||
# Load mask properties
|
||||
if data[item].has("mask_texture_path"):
|
||||
sprite.mask_texture_path = data[item]["mask_texture_path"]
|
||||
if data[item].has("use_mask"):
|
||||
sprite.use_mask = data[item]["use_mask"]
|
||||
if data[item].has("mask_opacity"):
|
||||
sprite.mask_opacity = data[item]["mask_opacity"]
|
||||
|
||||
origin.add_child(sprite)
|
||||
sprite.position = str_to_var(data[item]["pos"])
|
||||
|
||||
@@ -424,6 +454,11 @@ func _on_save_dialog_file_selected(path):
|
||||
|
||||
data[id]["toggle"] = child.toggle
|
||||
|
||||
# Save mask properties
|
||||
data[id]["mask_texture_path"] = child.mask_texture_path
|
||||
data[id]["use_mask"] = child.use_mask
|
||||
data[id]["mask_opacity"] = child.mask_opacity
|
||||
|
||||
id += 1
|
||||
|
||||
Saving.settings["lastAvatar"] = path
|
||||
@@ -547,7 +582,7 @@ func moveSpriteMenu(delta):
|
||||
|
||||
var size = get_viewport().get_visible_rect().size
|
||||
|
||||
var windowLength = 1400
|
||||
var windowLength = 1800
|
||||
|
||||
$ViewerArrows/Arrows.position.y = size.y - 25
|
||||
|
||||
@@ -604,7 +639,7 @@ func _on_background_input_capture_bg_key_pressed(node, keys_pressed):
|
||||
var has_ctrl = keys_pressed.has(KEY_CTRL) and keys_pressed[KEY_CTRL]
|
||||
var has_shift = keys_pressed.has(KEY_SHIFT) and keys_pressed[KEY_SHIFT]
|
||||
var has_alt = keys_pressed.has(KEY_ALT) and keys_pressed[KEY_ALT]
|
||||
var has_meta = keys_pressed.has(KEY_META) and keys_pressed[KEY_META] # Command key on macOS
|
||||
var meta_pressed = keys_pressed.has(KEY_META) and keys_pressed[KEY_META] # Command key on macOS
|
||||
|
||||
# Build modifier prefix once
|
||||
if has_ctrl:
|
||||
@@ -613,7 +648,7 @@ func _on_background_input_capture_bg_key_pressed(node, keys_pressed):
|
||||
modifiers.append("Shift")
|
||||
if has_alt:
|
||||
modifiers.append("Alt")
|
||||
if has_meta:
|
||||
if meta_pressed:
|
||||
modifiers.append("Cmd") # Command key on macOS
|
||||
|
||||
var modifier_prefix = ""
|
||||
|
||||
@@ -14744,5 +14744,5 @@ z_index = -4096
|
||||
[connection signal="visibility_changed" from="ReplaceDialog" to="." method="_on_replace_dialog_visibility_changed"]
|
||||
[connection signal="file_selected" from="SaveDialog" to="." method="_on_save_dialog_file_selected"]
|
||||
[connection signal="file_selected" from="LoadDialog" to="." method="_on_load_dialog_file_selected"]
|
||||
[connection signal="bg_key_pressed" from="BackgroundInputCapture" to="." method="bgInputSprite"]
|
||||
[connection signal="bg_key_pressed" from="BackgroundInputCapture" to="." method="_on_background_input_capture_bg_key_pressed"]
|
||||
[connection signal="bg_key_pressed" from="BackgroundInputCapture" to="." method="bgInputSprite"]
|
||||
|
||||
Reference in New Issue
Block a user