Skip to content

Commit 7a14a6e

Browse files
authored
Update for Sprite3D support (#33)
* Update for Sprite3D support * Name refactoring
1 parent d845f1e commit 7a14a6e

File tree

4 files changed

+21319
-8352
lines changed

4 files changed

+21319
-8352
lines changed

addons/LPCAnimatedSprite/LPCAnimatedSprite2D.gd

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,22 @@
11
@tool
2-
extends Node2D
2+
extends Node
33

44
class_name LPCAnimatedSprite2D
55

66
@export var SpriteSheets:Array[LPCSpriteSheet]
77
@export var DefaultAnimation:LPCEnum.LPCAnimation = LPCEnum.LPCAnimation.IDLE_DOWN
8+
@export var NodeType:LPCEnum.ESpriteNodeType = LPCEnum.ESpriteNodeType.Sprite_2D
9+
10+
@export_group("2D Properties")
11+
@export var Sprite2DTextureFilter:CanvasItem.TextureFilter = CanvasItem.TEXTURE_FILTER_NEAREST
12+
13+
@export_group("3D Properties")
14+
const DEFAULT_3D_PIXEL_SIZE:float = 0.01
15+
@export var Sprite3DScale:float = 1
16+
@export var Sprite3DBillboard:BaseMaterial3D.BillboardMode = BaseMaterial3D.BILLBOARD_DISABLED
17+
@export var Sprite3DTextureFilter:BaseMaterial3D.TextureFilter = BaseMaterial3D.TEXTURE_FILTER_NEAREST
18+
19+
var lastOffset:float = 1.0
820

921
var AnimationNames:Array
1022
func _ready():
@@ -39,9 +51,9 @@ func LoadAnimations():
3951
if spriteSheet == null:
4052
push_warning("There are LPCSpriteSheets that are <empty> in the LPCAnimatedSprite2D panel")
4153
continue
42-
var animatedSprite = AnimatedSprite2D.new()
43-
animatedSprite.texture_filter = CanvasItem.TEXTURE_FILTER_NEAREST
44-
var spriteFrames = CreateSprites(spriteSheet)
54+
55+
var animatedSprite = CreateAnimatedSprite()
56+
var spriteFrames = CreateSpritesFrames(spriteSheet)
4557
animatedSprite.frames = spriteFrames
4658
add_child(animatedSprite)
4759
if spriteSheet.Name == null || spriteSheet.Name == "":
@@ -50,8 +62,23 @@ func LoadAnimations():
5062
animatedSprite.name = spriteSheet.Name
5163
animatedSprite.owner = get_tree().edited_scene_root
5264
play(DefaultAnimation)
53-
54-
func CreateSprites(spriteSheet:LPCSpriteSheet):
65+
66+
func CreateAnimatedSprite():
67+
match NodeType:
68+
LPCEnum.ESpriteNodeType.Sprite_3D:
69+
var animatedSprite = AnimatedSprite3D.new()
70+
animatedSprite.pixel_size = Sprite3DScale * DEFAULT_3D_PIXEL_SIZE
71+
animatedSprite.texture_filter = Sprite3DTextureFilter
72+
animatedSprite.billboard = Sprite3DBillboard
73+
animatedSprite.sorting_offset = lastOffset
74+
lastOffset += 1.0
75+
return animatedSprite
76+
LPCEnum.ESpriteNodeType.Sprite_2D:
77+
var animatedSprite = AnimatedSprite2D.new()
78+
animatedSprite.texture_filter = Sprite2DTextureFilter
79+
return animatedSprite
80+
81+
func CreateSpritesFrames(spriteSheet:LPCSpriteSheet):
5582
var spriteFrames = SpriteFrames.new()
5683
spriteFrames.remove_animation("default")
5784

addons/LPCAnimatedSprite/LCPEnum.gd renamed to addons/LPCAnimatedSprite/LPCEnum.gd

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,8 @@ enum SpritesheetType
4747
SizeNormal,
4848
Size_6_6_8
4949
}
50+
51+
enum ESpriteNodeType {
52+
Sprite_2D,
53+
Sprite_3D
54+
}

addons/LPCAnimatedSprite/plugin.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
name="LPCAnimatedSprite"
44
description=""
55
author="Alexandro Trevisan"
6-
version="4.2.2.1"
6+
version="4.2.2.2"
77
script="LPCAnimatedSprite.gd"

0 commit comments

Comments
 (0)