I give up

This commit is contained in:
CenTdemeern1 2025-05-01 01:03:40 +02:00
parent 0490edb8ec
commit 407a59d3eb
6 changed files with 46 additions and 135 deletions

View file

@ -290,7 +290,11 @@ func _on_load_button_pressed():
#LOAD AVATAR #LOAD AVATAR
func _on_load_dialog_file_selected(path): func _on_load_dialog_file_selected(path):
var data = Saving.read_save(path) var data
if path == "default":
data = load("res://default_avatars/hat_guy/hat_guy.tres")
else:
data = load(path)
if data == null: if data == null:
return return

View file

@ -29,7 +29,6 @@ driver/enable_input=true
Config="*res://scripts/autoload/config.gd" Config="*res://scripts/autoload/config.gd"
Global="*res://scripts/autoload/global.gd" Global="*res://scripts/autoload/global.gd"
ElgatoStreamDeck="*res://addons/godot-streamdeck-addon/singleton.gd" ElgatoStreamDeck="*res://addons/godot-streamdeck-addon/singleton.gd"
DefaultAvatarData="*res://scripts/autoload/defaultAvatarData.gd"
InputHandler="*res://scripts/autoload/input_handler.gd" InputHandler="*res://scripts/autoload/input_handler.gd"
[debug] [debug]

View file

@ -52,13 +52,6 @@ func _ready():
func _exit_tree(): func _exit_tree():
write_settings(settingsPath) write_settings(settingsPath)
func read_save(path):
if path == "default":
return DefaultAvatarData.data
return load(path)
func write_save(path): func write_save(path):
if OS.has_feature('web'): if OS.has_feature('web'):
JavaScriptBridge.eval("window.localStorage.setItem('" + key + "', '" + JSON.stringify(data) + "');") JavaScriptBridge.eval("window.localStorage.setItem('" + key + "', '" + JSON.stringify(data) + "');")

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
uid://dqsikysw3ch7s

View file

@ -1,39 +1,21 @@
extends Node2D extends Node2D
class_name SpriteObject class_name SpriteObject
var type = "sprite" @onready var sprite = $WobbleOrigin/DragOrigin/Sprite
@onready var grabArea = $WobbleOrigin/DragOrigin/Grab
@onready var dragOrigin = $WobbleOrigin/DragOrigin
@onready var dragger = $WobbleOrigin/Dragger
@onready var originSprite = $WobbleOrigin/DragOrigin/Sprite/Origin
@onready var wob = $WobbleOrigin
@onready var outlineScene = preload("res://ui_scenes/selectedSprite/outline.tscn")
#Passed Variables var sprite_data: SpriteData
var imageData = null
var tex = null
@export var path = ""
var loadedImageData = null
var id = 0
var parentId = null
var parentSprite = null var parentSprite = null
var imageSize = Vector2.ZERO var imageSize = Vector2.ZERO
#Node Reference
@onready var sprite = $WobbleOrigin/DragOrigin/Sprite
@onready var grabArea = $WobbleOrigin/DragOrigin/Grab
@onready var dragOrigin = $WobbleOrigin/DragOrigin
@onready var dragger = $WobbleOrigin/Dragger
@onready var originSprite = $WobbleOrigin/DragOrigin/Sprite/Origin
@onready var wob = $WobbleOrigin
@onready var outlineScene = preload("res://ui_scenes/selectedSprite/outline.tscn")
#Visuals #Visuals
var mouseOffset = Vector2.ZERO var size = Vector2(1, 1)
var grabDelay = 0
var size = Vector2(1,1)
var showOnTalk = 0 var showOnTalk = 0
var showOnBlink = 0 var showOnBlink = 0
@ -44,40 +26,11 @@ var z = 0
var heldTicks = 0 var heldTicks = 0
var dragSpeed = 0 var dragSpeed = 0
#Origin #Origin
var origTick = 0 var origTick = 0
var offset = Vector2.ZERO
#Wobble
var xFrq = 0.0
var xAmp = 0.0
var yFrq = 0.0
var yAmp = 0.0
#Rotational Drag
var rdragStr = 0
var rLimitMax = 180
var rLimitMin = -180
#Layer
var costumeLayers = [1,1,1,1,1,1,1,1,1,1]
#Stretch
var stretchAmount = 0.0
#Ignore Bounce
var ignoreBounce = false
#Animation
var frames = 1
var animSpeed = 0
var remadePolygon = false var remadePolygon = false
var clipped = false
var tick = 0 var tick = 0
#Vis toggle #Vis toggle
@ -86,39 +39,14 @@ var toggle: Key = KEY_NONE
func _ready(): func _ready():
InputHandler.key_pressed.connect(visToggle) InputHandler.key_pressed.connect(visToggle)
var img = Image.new() imageSize = sprite_data.image.get_size()
var err = img.load(path)
if err != OK:
#Runs if image import fails. Needs error dialog box at some point
if loadedImageData == null:
Global.epicFail(err)
print_debug("Failed to load image.")
queue_free()
return
else:
var data = Marshalls.base64_to_raw(loadedImageData)
var errr = img.load_png_from_buffer(data)
if errr != OK:
Global.epicFail(err)
print_debug("Failed to load image.")
queue_free()
return
var texture = ImageTexture.new() sprite.texture = sprite_data.image
texture = ImageTexture.create_from_image(img)
tex = texture
imageData = img
imageSize = img.get_size()
sprite.texture = tex
var bitmap = BitMap.new() var bitmap = BitMap.new()
bitmap.create_from_image_alpha(imageData) bitmap.create_from_image_alpha(sprite_data.image.get_image())
var polygons = bitmap.opaque_to_polygons(Rect2(Vector2(0, 0), bitmap.get_size()),4.0) #bitmap.get_size() var polygons = bitmap.opaque_to_polygons(Rect2(Vector2(), bitmap.get_size()), 4.0)
var b = false var b = false
for polygon in polygons: for polygon in polygons:
@ -133,11 +61,10 @@ func _ready():
grabArea.add_child(outline) grabArea.add_child(outline)
size = imageData.get_size() size = imageData.get_size()
grabArea.position = size*-0.5
sprite.offset = offset sprite.offset = offset
grabArea.position = (size*-0.5) + offset grabArea.position = (size * -0.5) + offset
changeFrames() changeFrames()
setZIndex() setZIndex()
@ -207,7 +134,7 @@ func replaceSprite(pathNew):
sprite.offset = offset sprite.offset = offset
grabArea.position = (size*-0.5) + offset grabArea.position = (size * -0.5) + offset
if !b: if !b:
remakePolygon() remakePolygon()
@ -215,7 +142,6 @@ func replaceSprite(pathNew):
func _process(delta): func _process(delta):
tick += 1 tick += 1
if Global.heldSprite == self: if Global.heldSprite == self:
grabArea.visible = true grabArea.visible = true
originSprite.visible = true originSprite.visible = true
@ -232,21 +158,17 @@ func _process(delta):
var length = (glob.y - dragger.global_position.y) var length = (glob.y - dragger.global_position.y)
rotationalDrag(length,delta) rotationalDrag(length, delta)
stretch(length,delta) stretch(length, delta)
if grabDelay > 0:
grabDelay -= 1
talkBlink() talkBlink()
animation() animation()
func animation(): func animation():
var speed = max(float(animSpeed), Engine.max_fps * 6.0)
var speed = max(float(animSpeed),Engine.max_fps*6.0)
if animSpeed > 0 and frames > 1: if animSpeed > 0 and frames > 1:
if Global.animationTick % int((speed)/float(animSpeed)) == 0: if Global.animationTick % int((speed) / float(animSpeed)) == 0:
if sprite.frame == frames - 1: if sprite.frame == frames - 1:
sprite.frame = 0 sprite.frame = 0
else: else:
@ -259,9 +181,9 @@ func setZIndex():
func talkBlink(): func talkBlink():
var faded = 0.2 * int(Global.main.editMode) var faded = 0.2 * int(Global.main.editMode)
var value = (showOnTalk + (showOnBlink*3)) + (int(Global.speaking)*10) + (int(Global.blink)*20) var value = (showOnTalk + (showOnBlink * 3)) + (int(Global.speaking) * 10) + (int(Global.blink) * 20)
var yes = [0,10,20,30,1,21,12,32,3,13,4,15,26,36,27,38].has(int(value)) var yes = [0, 10, 20, 30, 1, 21, 12, 32, 3, 13, 4, 15, 26, 36, 27, 38].has(int(value))
sprite.self_modulate.a = max(int(yes),faded) sprite.self_modulate.a = max(int(yes), faded)
func delete(): func delete():
queue_free() queue_free()
@ -295,7 +217,7 @@ func moveSprite(dir):
multiplier = 1 multiplier = 1
position -= dir * multiplier position -= dir * multiplier
position = Vector2(int(position.x),int(position.y)) position = Vector2(int(position.x), int(position.y))
func moveOrigin(dir): func moveOrigin(dir):
if dir != Vector2.ZERO: if dir != Vector2.ZERO:
@ -311,36 +233,36 @@ func moveOrigin(dir):
offset += dir * multiplier offset += dir * multiplier
position -= dir * multiplier position -= dir * multiplier
offset = Vector2(int(offset.x),int(offset.y)) offset = Vector2(int(offset.x), int(offset.y))
sprite.offset = offset sprite.offset = offset
grabArea.position = (size*-0.5) + offset grabArea.position = (size * -0.5) + offset
func drag(delta): func drag(delta):
if dragSpeed == 0: if dragSpeed == 0:
dragger.global_position = wob.global_position dragger.global_position = wob.global_position
else: else:
dragger.global_position = lerp(dragger.global_position,wob.global_position,1/dragSpeed) dragger.global_position = lerp(dragger.global_position, wob.global_position, 1 / dragSpeed)
dragOrigin.global_position = dragger.global_position dragOrigin.global_position = dragger.global_position
func wobble(): func wobble():
wob.position.x = sin(tick*xFrq)*xAmp wob.position.x = sin(tick * xFrq) * xAmp
wob.position.y = sin(tick*yFrq)*yAmp wob.position.y = sin(tick * yFrq) * yAmp
func rotationalDrag(length,delta): func rotationalDrag(length, delta):
var yvel = (length * rdragStr) var yvel = (length * rdragStr)
#Calculate Max angle #Calculate Max angle
yvel = clamp(yvel,rLimitMin,rLimitMax) yvel = clamp(yvel, rLimitMin, rLimitMax)
sprite.rotation = lerp_angle(sprite.rotation,deg_to_rad(yvel),0.25) sprite.rotation = lerp_angle(sprite.rotation, deg_to_rad(yvel), 0.25)
func stretch(length,delta): func stretch(length, delta):
var yvel = (length * stretchAmount * 0.01) var yvel = (length * stretchAmount * 0.01)
var target = Vector2(1.0-yvel,1.0+yvel) var target = Vector2(1.0 - yvel, 1.0 + yvel)
sprite.scale = lerp(sprite.scale,target,0.5) sprite.scale = lerp(sprite.scale, target, 0.5)
func changeCollision(enable): func changeCollision(enable):
grabArea.monitorable = enable grabArea.monitorable = enable
@ -357,18 +279,18 @@ func remakePolygon():
c.queue_free() c.queue_free()
var collider = CollisionShape2D.new() var collider = CollisionShape2D.new()
var shape = RectangleShape2D.new() var shape = RectangleShape2D.new()
shape.size = Vector2(imageSize.y,imageSize.y) shape.size = Vector2(imageSize.y, imageSize.y)
collider.shape = shape collider.shape = shape
collider.position = Vector2(imageSize.x,imageSize.y) * Vector2(0.5,0.5) collider.position = Vector2(imageSize.x, imageSize.y) * Vector2(0.5, 0.5)
grabArea.add_child(collider) grabArea.add_child(collider)
var p = imageSize.y * 0.5 var p = imageSize.y * 0.5
var outline = outlineScene.instantiate() var outline = outlineScene.instantiate()
outline.add_point(Vector2(-p,-p)) outline.add_point(Vector2(-p, -p))
outline.add_point(Vector2(p,-p)) outline.add_point(Vector2(p, -p))
outline.add_point(Vector2(p,p)) outline.add_point(Vector2(p, p))
outline.add_point(Vector2(-p,p)) outline.add_point(Vector2(-p, p))
outline.add_point(Vector2(-p,-p)) outline.add_point(Vector2(-p, -p))
outline.position = collider.position outline.position = collider.position
grabArea.add_child(outline) grabArea.add_child(outline)