Iridescent Bubble Shield, Flyer Prototype Art
BIN
assets/enemy/flyer-sheet.png
Normal file
|
After Width: | Height: | Size: 836 B |
35
assets/enemy/flyer-sheet.png.import
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/flyer-sheet.png-543050397164a3f085ca5e0b208e6144.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/enemy/flyer-sheet.png"
|
||||||
|
dest_files=[ "res://.import/flyer-sheet.png-543050397164a3f085ca5e0b208e6144.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=false
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=false
|
||||||
|
svg/scale=1.0
|
||||||
BIN
assets/enemy/flyer.png
Normal file
|
After Width: | Height: | Size: 721 B |
35
assets/enemy/flyer.png.import
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/flyer.png-2e4ed4bda6763939f03a619863c6a2a4.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/enemy/flyer.png"
|
||||||
|
dest_files=[ "res://.import/flyer.png-2e4ed4bda6763939f03a619863c6a2a4.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=false
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=false
|
||||||
|
svg/scale=1.0
|
||||||
BIN
assets/enemy/flyer1.png
Normal file
|
After Width: | Height: | Size: 720 B |
35
assets/enemy/flyer1.png.import
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/flyer1.png-eb593d700dc57909bdc60de141938bd1.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/enemy/flyer1.png"
|
||||||
|
dest_files=[ "res://.import/flyer1.png-eb593d700dc57909bdc60de141938bd1.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=false
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=false
|
||||||
|
svg/scale=1.0
|
||||||
BIN
assets/enemy/flyer2.png
Normal file
|
After Width: | Height: | Size: 712 B |
35
assets/enemy/flyer2.png.import
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/flyer2.png-9b4714dc632c2046dfa1b24ec4f57963.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/enemy/flyer2.png"
|
||||||
|
dest_files=[ "res://.import/flyer2.png-9b4714dc632c2046dfa1b24ec4f57963.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=false
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=false
|
||||||
|
svg/scale=1.0
|
||||||
@ -274,7 +274,7 @@ func calculate_jump_velocity(
|
|||||||
linear_velocity.y += _gravity * delta
|
linear_velocity.y += _gravity * delta
|
||||||
|
|
||||||
# TODO This poop too
|
# TODO This poop too
|
||||||
if -4 < velocity.x and velocity.x < 4:
|
if -20 < velocity.x and velocity.x < 20:
|
||||||
linear_velocity.x += inair_velocity * direction.x
|
linear_velocity.x += inair_velocity * direction.x
|
||||||
|
|
||||||
if is_correct_airstrafe_input():
|
if is_correct_airstrafe_input():
|
||||||
@ -293,7 +293,7 @@ func calculate_fall_velocity(
|
|||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
linear_velocity.y = max_velocity["fall"]
|
linear_velocity.y = max_velocity["fall"]
|
||||||
if -4 < velocity.x and velocity.x < 4:
|
if -10 < velocity.x and velocity.x < 10:
|
||||||
# TODO This is poop
|
# TODO This is poop
|
||||||
linear_velocity.x += inair_velocity * direction.x
|
linear_velocity.x += inair_velocity * direction.x
|
||||||
if Input.is_action_just_pressed("jump"):
|
if Input.is_action_just_pressed("jump"):
|
||||||
|
|||||||
@ -1,9 +1,11 @@
|
|||||||
[gd_scene load_steps=115 format=2]
|
[gd_scene load_steps=117 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://assets/blobby/blobby-effects-spritesheet.png" type="Texture" id=1]
|
[ext_resource path="res://assets/blobby/blobby-effects-spritesheet.png" type="Texture" id=1]
|
||||||
|
[ext_resource path="res://src/Environment/LightingShaderMaterial.tres" type="Material" id=2]
|
||||||
[ext_resource path="res://src/Actors/Blobby/BlobbyStateMachine.gd" type="Script" id=3]
|
[ext_resource path="res://src/Actors/Blobby/BlobbyStateMachine.gd" type="Script" id=3]
|
||||||
[ext_resource path="res://src/Actors/Blobby/Blobby.gd" type="Script" id=4]
|
[ext_resource path="res://src/Actors/Blobby/Blobby.gd" type="Script" id=4]
|
||||||
[ext_resource path="res://assets/meta/new_dynamicfont.tres" type="DynamicFont" id=5]
|
[ext_resource path="res://assets/meta/new_dynamicfont.tres" type="DynamicFont" id=5]
|
||||||
|
[ext_resource path="res://src/ThirdParty/Demo/IridescenceBall.tscn" type="PackedScene" id=6]
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id=2]
|
[sub_resource type="RectangleShape2D" id=2]
|
||||||
extents = Vector2( 14.9127, 5.98593 )
|
extents = Vector2( 14.9127, 5.98593 )
|
||||||
@ -4475,6 +4477,7 @@ tracks/2/keys = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
[node name="Blobby" type="KinematicBody2D" groups=["player"]]
|
[node name="Blobby" type="KinematicBody2D" groups=["player"]]
|
||||||
|
material = ExtResource( 2 )
|
||||||
collision_mask = 248
|
collision_mask = 248
|
||||||
collision/safe_margin = 0.001
|
collision/safe_margin = 0.001
|
||||||
script = ExtResource( 4 )
|
script = ExtResource( 4 )
|
||||||
@ -4505,6 +4508,13 @@ position = Vector2( 0.0286326, -10.0053 )
|
|||||||
scale = Vector2( 1.03, 1.04 )
|
scale = Vector2( 1.03, 1.04 )
|
||||||
shape = SubResource( 2 )
|
shape = SubResource( 2 )
|
||||||
|
|
||||||
|
[node name="BubbleShieldViewport" type="Viewport" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
size = Vector2( 128, 128 )
|
||||||
|
transparent_bg = true
|
||||||
|
|
||||||
|
[node name="IridescenceBall" parent="BubbleShieldViewport" instance=ExtResource( 6 )]
|
||||||
|
|
||||||
[node name="BlobbySprite" type="Sprite" parent="."]
|
[node name="BlobbySprite" type="Sprite" parent="."]
|
||||||
position = Vector2( 0, -16 )
|
position = Vector2( 0, -16 )
|
||||||
scale = Vector2( -1, 1 )
|
scale = Vector2( -1, 1 )
|
||||||
@ -4588,22 +4598,18 @@ offset = Vector2( 4, 0 )
|
|||||||
hframes = 10
|
hframes = 10
|
||||||
frame = 8
|
frame = 8
|
||||||
|
|
||||||
|
[node name="Blobby3DEffects" type="Sprite" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
position = Vector2( 0, -9 )
|
||||||
|
scale = Vector2( 0.48, 0.48 )
|
||||||
|
z_index = 1
|
||||||
|
|
||||||
[node name="BlobbyBody" type="CollisionShape2D" parent="." groups=["player"]]
|
[node name="BlobbyBody" type="CollisionShape2D" parent="." groups=["player"]]
|
||||||
position = Vector2( 0.0392303, -10.002 )
|
position = Vector2( 0.0392303, -10.002 )
|
||||||
shape = SubResource( 1 )
|
shape = SubResource( 1 )
|
||||||
|
|
||||||
[node name="BlobbyStateMachine" type="Node" parent="."]
|
|
||||||
script = ExtResource( 3 )
|
|
||||||
|
|
||||||
[node name="JumpBufferTimer" type="Timer" parent="BlobbyStateMachine"]
|
|
||||||
wait_time = 0.067
|
|
||||||
one_shot = true
|
|
||||||
|
|
||||||
[node name="CoyoteTimer" type="Timer" parent="BlobbyStateMachine"]
|
|
||||||
wait_time = 0.067
|
|
||||||
one_shot = true
|
|
||||||
|
|
||||||
[node name="WallRaycasts" type="Node2D" parent="."]
|
[node name="WallRaycasts" type="Node2D" parent="."]
|
||||||
|
visible = false
|
||||||
position = Vector2( 0, -1 )
|
position = Vector2( 0, -1 )
|
||||||
|
|
||||||
[node name="LeftWallRaycast" type="Node2D" parent="WallRaycasts"]
|
[node name="LeftWallRaycast" type="Node2D" parent="WallRaycasts"]
|
||||||
@ -4657,6 +4663,17 @@ enabled = true
|
|||||||
cast_to = Vector2( 0, 24 )
|
cast_to = Vector2( 0, 24 )
|
||||||
collision_mask = 8
|
collision_mask = 8
|
||||||
|
|
||||||
|
[node name="BlobbyStateMachine" type="Node" parent="."]
|
||||||
|
script = ExtResource( 3 )
|
||||||
|
|
||||||
|
[node name="JumpBufferTimer" type="Timer" parent="BlobbyStateMachine"]
|
||||||
|
wait_time = 0.067
|
||||||
|
one_shot = true
|
||||||
|
|
||||||
|
[node name="CoyoteTimer" type="Timer" parent="BlobbyStateMachine"]
|
||||||
|
wait_time = 0.067
|
||||||
|
one_shot = true
|
||||||
|
|
||||||
[connection signal="area_entered" from="BlobbySkin" to="." method="_on_BlobbySkin_area_entered"]
|
[connection signal="area_entered" from="BlobbySkin" to="." method="_on_BlobbySkin_area_entered"]
|
||||||
[connection signal="body_entered" from="BlobbySkin" to="." method="_on_BlobbySkin_body_entered"]
|
[connection signal="body_entered" from="BlobbySkin" to="." method="_on_BlobbySkin_body_entered"]
|
||||||
[connection signal="got_grounded" from="BlobbyStateMachine" to="." method="_on_Blobby_got_grounded"]
|
[connection signal="got_grounded" from="BlobbyStateMachine" to="." method="_on_Blobby_got_grounded"]
|
||||||
|
|||||||
@ -60,7 +60,8 @@ func _state_logic(delta):
|
|||||||
handle_input_ref = funcref(self, "handle_wallslide_input")
|
handle_input_ref = funcref(self, "handle_wallslide_input")
|
||||||
_:
|
_:
|
||||||
print("don't panik")
|
print("don't panik")
|
||||||
|
var texture = $"%BubbleShieldViewport".get_texture()
|
||||||
|
$"%Blobby3DEffects".texture = texture
|
||||||
var direction = get_horizontal_direction()
|
var direction = get_horizontal_direction()
|
||||||
didTurn = false
|
didTurn = false
|
||||||
|
|
||||||
|
|||||||
@ -633,10 +633,10 @@ texture = ExtResource( 8 )
|
|||||||
[node name="AnimatedSprite" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"]
|
[node name="AnimatedSprite" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"]
|
||||||
visible = false
|
visible = false
|
||||||
frames = SubResource( 7 )
|
frames = SubResource( 7 )
|
||||||
frame = 12
|
frame = 2
|
||||||
playing = true
|
playing = true
|
||||||
|
|
||||||
[node name="AnimatedSprite2" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"]
|
[node name="AnimatedSprite2" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"]
|
||||||
frames = SubResource( 8 )
|
frames = SubResource( 8 )
|
||||||
frame = 3
|
frame = 7
|
||||||
playing = true
|
playing = true
|
||||||
|
|||||||
@ -157,3 +157,6 @@ func update_navigation() -> void:
|
|||||||
func die() -> void:
|
func die() -> void:
|
||||||
GlobalState.score += score
|
GlobalState.score += score
|
||||||
queue_free()
|
queue_free()
|
||||||
|
|
||||||
|
func get_facing_direction() -> float:
|
||||||
|
return orientation.cast_to.x
|
||||||
|
|||||||
@ -1,9 +1,187 @@
|
|||||||
[gd_scene load_steps=8 format=2]
|
[gd_scene load_steps=23 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://src/Actors/Enemies/Beings/Flyer.gd" type="Script" id=1]
|
[ext_resource path="res://src/Actors/Enemies/Beings/Flyer.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://src/Actors/Enemies/Beings/FlyerStateMachine.gd" type="Script" id=2]
|
[ext_resource path="res://src/Actors/Enemies/Beings/FlyerStateMachine.gd" type="Script" id=2]
|
||||||
[ext_resource path="res://assets/meta/new_dynamicfont.tres" type="DynamicFont" id=3]
|
[ext_resource path="res://assets/meta/new_dynamicfont.tres" type="DynamicFont" id=3]
|
||||||
[ext_resource path="res://assets/for testing/Adventurer Sprite Sheet v1.1.png" type="Texture" id=4]
|
[ext_resource path="res://assets/enemy/flyer-sheet.png" type="Texture" id=4]
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id=33]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/path = NodePath(".:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PoolRealArray( 0 ),
|
||||||
|
"transitions": PoolRealArray( 1 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ 0 ]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id=36]
|
||||||
|
resource_name = "hunting"
|
||||||
|
length = 1.62
|
||||||
|
loop = true
|
||||||
|
step = 0.01
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/path = NodePath(".:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PoolRealArray( 0 ),
|
||||||
|
"transitions": PoolRealArray( 1 ),
|
||||||
|
"update": 1,
|
||||||
|
"values": [ 0 ]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/path = NodePath(".:scale")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PoolRealArray( 0 ),
|
||||||
|
"transitions": PoolRealArray( 1 ),
|
||||||
|
"update": 1,
|
||||||
|
"values": [ Vector2( -1, 1 ) ]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id=38]
|
||||||
|
resource_name = "huntingLeft"
|
||||||
|
length = 0.042
|
||||||
|
loop = true
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/path = NodePath(".:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PoolRealArray( 0 ),
|
||||||
|
"transitions": PoolRealArray( 1 ),
|
||||||
|
"update": 1,
|
||||||
|
"values": [ 0 ]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/path = NodePath(".:scale")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PoolRealArray( 0 ),
|
||||||
|
"transitions": PoolRealArray( 1 ),
|
||||||
|
"update": 1,
|
||||||
|
"values": [ Vector2( 1, 1 ) ]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id=35]
|
||||||
|
resource_name = "searching"
|
||||||
|
length = 1.62
|
||||||
|
loop = true
|
||||||
|
step = 0.01
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/path = NodePath(".:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PoolRealArray( 0.02 ),
|
||||||
|
"transitions": PoolRealArray( 1 ),
|
||||||
|
"update": 1,
|
||||||
|
"values": [ 1 ]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/path = NodePath(".:scale")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PoolRealArray( 0 ),
|
||||||
|
"transitions": PoolRealArray( 1 ),
|
||||||
|
"update": 1,
|
||||||
|
"values": [ Vector2( -1, 1 ) ]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id=34]
|
||||||
|
resource_name = "searchingLeft"
|
||||||
|
length = 1.62
|
||||||
|
loop = true
|
||||||
|
step = 0.01
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/path = NodePath(".:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PoolRealArray( 0 ),
|
||||||
|
"transitions": PoolRealArray( 1 ),
|
||||||
|
"update": 1,
|
||||||
|
"values": [ 1 ]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/path = NodePath(".:scale")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PoolRealArray( 0 ),
|
||||||
|
"transitions": PoolRealArray( 1 ),
|
||||||
|
"update": 1,
|
||||||
|
"values": [ Vector2( 1, 1 ) ]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeAnimation" id=46]
|
||||||
|
animation = "huntingLeft"
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeAnimation" id=47]
|
||||||
|
animation = "hunting"
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeBlendSpace1D" id=23]
|
||||||
|
blend_point_0/node = SubResource( 46 )
|
||||||
|
blend_point_0/pos = -1.0
|
||||||
|
blend_point_1/node = SubResource( 47 )
|
||||||
|
blend_point_1/pos = 1.0
|
||||||
|
min_space = -1.18
|
||||||
|
max_space = 1.15
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeAnimation" id=42]
|
||||||
|
animation = "searchingLeft"
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeAnimation" id=43]
|
||||||
|
animation = "searching"
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeBlendSpace1D" id=9]
|
||||||
|
blend_point_0/node = SubResource( 42 )
|
||||||
|
blend_point_0/pos = -1.0
|
||||||
|
blend_point_1/node = SubResource( 43 )
|
||||||
|
blend_point_1/pos = 1.0
|
||||||
|
min_space = -2.0
|
||||||
|
max_space = 2.0
|
||||||
|
snap = 1.0
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeStateMachineTransition" id=27]
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeStateMachineTransition" id=32]
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeStateMachine" id=50]
|
||||||
|
states/hunting/node = SubResource( 23 )
|
||||||
|
states/hunting/position = Vector2( 184.952, -12 )
|
||||||
|
states/searching/node = SubResource( 9 )
|
||||||
|
states/searching/position = Vector2( -52.0952, 102.762 )
|
||||||
|
transitions = [ "searching", "hunting", SubResource( 27 ), "hunting", "searching", SubResource( 32 ) ]
|
||||||
|
start_node = "searching"
|
||||||
|
graph_offset = Vector2( -340, -193 )
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeStateMachinePlayback" id=51]
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id=1]
|
[sub_resource type="RectangleShape2D" id=1]
|
||||||
extents = Vector2( 11, 9 )
|
extents = Vector2( 11, 9 )
|
||||||
@ -40,12 +218,25 @@ align = 1
|
|||||||
valign = 1
|
valign = 1
|
||||||
|
|
||||||
[node name="FlyerSprite" type="Sprite" parent="."]
|
[node name="FlyerSprite" type="Sprite" parent="."]
|
||||||
position = Vector2( 2, -8 )
|
unique_name_in_owner = true
|
||||||
scale = Vector2( 1, 1.34375 )
|
|
||||||
texture = ExtResource( 4 )
|
texture = ExtResource( 4 )
|
||||||
hframes = 13
|
hframes = 2
|
||||||
vframes = 16
|
|
||||||
frame = 81
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="FlyerSprite"]
|
||||||
|
anims/RESET = SubResource( 33 )
|
||||||
|
anims/hunting = SubResource( 36 )
|
||||||
|
anims/huntingLeft = SubResource( 38 )
|
||||||
|
anims/searching = SubResource( 35 )
|
||||||
|
anims/searchingLeft = SubResource( 34 )
|
||||||
|
|
||||||
|
[node name="AnimationTree" type="AnimationTree" parent="FlyerSprite"]
|
||||||
|
tree_root = SubResource( 50 )
|
||||||
|
anim_player = NodePath("../AnimationPlayer")
|
||||||
|
active = true
|
||||||
|
root_motion_track = NodePath(".")
|
||||||
|
parameters/playback = SubResource( 51 )
|
||||||
|
parameters/hunting/blend_position = -1.04288
|
||||||
|
parameters/searching/blend_position = 1.2903
|
||||||
|
|
||||||
[node name="VisibilityEnabler2D" type="VisibilityEnabler2D" parent="."]
|
[node name="VisibilityEnabler2D" type="VisibilityEnabler2D" parent="."]
|
||||||
position = Vector2( 954, 0 )
|
position = Vector2( 954, 0 )
|
||||||
|
|||||||
@ -1,5 +1,7 @@
|
|||||||
extends StateMachine
|
extends StateMachine
|
||||||
|
|
||||||
|
onready var anim_tree = $"../FlyerSprite/AnimationTree"
|
||||||
|
onready var anim_state_playback = $"../FlyerSprite/AnimationTree".get("parameters/playback")
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
add_state("searching")
|
add_state("searching")
|
||||||
@ -26,6 +28,7 @@ func _state_logic(delta):
|
|||||||
|
|
||||||
func _get_transition(_delta):
|
func _get_transition(_delta):
|
||||||
parent.get_node("StateLabel").text = self.state
|
parent.get_node("StateLabel").text = self.state
|
||||||
|
_animation_logic()
|
||||||
var new_state
|
var new_state
|
||||||
if parent.target == null:
|
if parent.target == null:
|
||||||
new_state = states.searching
|
new_state = states.searching
|
||||||
@ -44,3 +47,17 @@ func _enter_state(_new_state, _previous_state):
|
|||||||
|
|
||||||
func _exit_state(_previous_state, _new_state):
|
func _exit_state(_previous_state, _new_state):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
func _animation_logic():
|
||||||
|
_set_blendspaces_direction()
|
||||||
|
if self.state == "searching":
|
||||||
|
anim_state_playback.travel("searching")
|
||||||
|
else:
|
||||||
|
anim_state_playback.travel("hunting")
|
||||||
|
|
||||||
|
|
||||||
|
func _set_blendspaces_direction():
|
||||||
|
var value = parent.get_facing_direction()
|
||||||
|
anim_tree.set("parameters/searching/blend_position", value)
|
||||||
|
anim_tree.set("parameters/hunting/blend_position", value)
|
||||||
|
|||||||
@ -252,58 +252,60 @@ tracks/1/keys = {
|
|||||||
"values": [ Vector2( -1, 1 ) ]
|
"values": [ Vector2( -1, 1 ) ]
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="AnimationNodeAnimation" id=7]
|
[sub_resource type="AnimationNodeAnimation" id=42]
|
||||||
animation = "idleHappyLeft"
|
animation = "searchingLeft"
|
||||||
|
|
||||||
[sub_resource type="AnimationNodeAnimation" id=8]
|
[sub_resource type="AnimationNodeAnimation" id=43]
|
||||||
animation = "idleHappy"
|
animation = "searching"
|
||||||
|
|
||||||
[sub_resource type="AnimationNodeBlendSpace1D" id=9]
|
[sub_resource type="AnimationNodeBlendSpace1D" id=9]
|
||||||
blend_point_0/node = SubResource( 7 )
|
blend_point_0/node = SubResource( 42 )
|
||||||
blend_point_0/pos = -1.0
|
blend_point_0/pos = -1.0
|
||||||
blend_point_1/node = SubResource( 8 )
|
blend_point_1/node = SubResource( 43 )
|
||||||
blend_point_1/pos = 1.0
|
blend_point_1/pos = 1.0
|
||||||
min_space = -2.0
|
min_space = -2.0
|
||||||
max_space = 2.0
|
max_space = 2.0
|
||||||
snap = 1.0
|
snap = 1.0
|
||||||
|
|
||||||
[sub_resource type="AnimationNodeAnimation" id=18]
|
[sub_resource type="AnimationNodeAnimation" id=44]
|
||||||
animation = "idleMeanLeft"
|
animation = "idleMeanLeft"
|
||||||
|
|
||||||
[sub_resource type="AnimationNodeAnimation" id=19]
|
[sub_resource type="AnimationNodeAnimation" id=45]
|
||||||
animation = "idleMean"
|
animation = "idleMean"
|
||||||
|
|
||||||
[sub_resource type="AnimationNodeBlendSpace1D" id=20]
|
[sub_resource type="AnimationNodeBlendSpace1D" id=20]
|
||||||
blend_point_0/node = SubResource( 18 )
|
blend_point_0/node = SubResource( 44 )
|
||||||
blend_point_0/pos = -1.0
|
blend_point_0/pos = -1.0
|
||||||
blend_point_1/node = SubResource( 19 )
|
blend_point_1/node = SubResource( 45 )
|
||||||
blend_point_1/pos = 1.0
|
blend_point_1/pos = 1.0
|
||||||
min_space = -2.0
|
min_space = -2.0
|
||||||
max_space = 2.0
|
max_space = 2.0
|
||||||
snap = 1.0
|
snap = 1.0
|
||||||
|
|
||||||
[sub_resource type="AnimationNodeAnimation" id=21]
|
[sub_resource type="AnimationNodeAnimation" id=46]
|
||||||
animation = "liftOffLeft"
|
animation = "huntingLeft"
|
||||||
|
|
||||||
[sub_resource type="AnimationNodeAnimation" id=22]
|
[sub_resource type="AnimationNodeAnimation" id=47]
|
||||||
animation = "liftOff"
|
animation = "hunting"
|
||||||
|
|
||||||
[sub_resource type="AnimationNodeBlendSpace1D" id=23]
|
[sub_resource type="AnimationNodeBlendSpace1D" id=23]
|
||||||
blend_point_0/node = SubResource( 21 )
|
blend_point_0/node = SubResource( 46 )
|
||||||
blend_point_0/pos = -1.0
|
blend_point_0/pos = -1.0
|
||||||
blend_point_1/node = SubResource( 22 )
|
blend_point_1/node = SubResource( 47 )
|
||||||
blend_point_1/pos = 1.0
|
blend_point_1/pos = 1.0
|
||||||
|
min_space = -1.18
|
||||||
|
max_space = 1.15
|
||||||
|
|
||||||
[sub_resource type="AnimationNodeAnimation" id=24]
|
[sub_resource type="AnimationNodeAnimation" id=48]
|
||||||
animation = "midJumpingLeft"
|
animation = "midJumpingLeft"
|
||||||
|
|
||||||
[sub_resource type="AnimationNodeAnimation" id=25]
|
[sub_resource type="AnimationNodeAnimation" id=49]
|
||||||
animation = "midJumping"
|
animation = "midJumping"
|
||||||
|
|
||||||
[sub_resource type="AnimationNodeBlendSpace1D" id=26]
|
[sub_resource type="AnimationNodeBlendSpace1D" id=26]
|
||||||
blend_point_0/node = SubResource( 24 )
|
blend_point_0/node = SubResource( 48 )
|
||||||
blend_point_0/pos = -1.0
|
blend_point_0/pos = -1.0
|
||||||
blend_point_1/node = SubResource( 25 )
|
blend_point_1/node = SubResource( 49 )
|
||||||
blend_point_1/pos = 1.0
|
blend_point_1/pos = 1.0
|
||||||
|
|
||||||
[sub_resource type="AnimationNodeStateMachineTransition" id=27]
|
[sub_resource type="AnimationNodeStateMachineTransition" id=27]
|
||||||
@ -321,8 +323,6 @@ switch_mode = 2
|
|||||||
auto_advance = true
|
auto_advance = true
|
||||||
|
|
||||||
[sub_resource type="AnimationNodeStateMachineTransition" id=32]
|
[sub_resource type="AnimationNodeStateMachineTransition" id=32]
|
||||||
switch_mode = 2
|
|
||||||
auto_advance = true
|
|
||||||
|
|
||||||
[sub_resource type="AnimationNodeStateMachine" id=10]
|
[sub_resource type="AnimationNodeStateMachine" id=10]
|
||||||
states/idleHappy/node = SubResource( 9 )
|
states/idleHappy/node = SubResource( 9 )
|
||||||
@ -377,6 +377,7 @@ position = Vector2( 0, -7 )
|
|||||||
texture = ExtResource( 1 )
|
texture = ExtResource( 1 )
|
||||||
hframes = 2
|
hframes = 2
|
||||||
vframes = 4
|
vframes = 4
|
||||||
|
frame = 1
|
||||||
|
|
||||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="FrogSprite"]
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="FrogSprite"]
|
||||||
anims/RESET = SubResource( 5 )
|
anims/RESET = SubResource( 5 )
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
[gd_scene load_steps=3 format=2]
|
[gd_scene load_steps=3 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://assets/environment/blocks/random-innentile.png" type="Texture" id=1]
|
[ext_resource path="res://assets/enemy/laserpoint.png" type="Texture" id=1]
|
||||||
|
|
||||||
[sub_resource type="CircleShape2D" id=5]
|
[sub_resource type="CircleShape2D" id=5]
|
||||||
radius = 2.0
|
radius = 2.0
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=16 format=2]
|
[gd_scene load_steps=17 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://src/Environment/AlienShipTileSet.tres" type="TileSet" id=1]
|
[ext_resource path="res://src/Environment/AlienShipTileSet.tres" type="TileSet" id=1]
|
||||||
[ext_resource path="res://src/Utilities/GameplaySignalManager.gd" type="Script" id=2]
|
[ext_resource path="res://src/Utilities/GameplaySignalManager.gd" type="Script" id=2]
|
||||||
@ -8,6 +8,7 @@
|
|||||||
[ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=6]
|
[ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=6]
|
||||||
[ext_resource path="res://src/Levels/Enemy Test Level.tscn" type="PackedScene" id=7]
|
[ext_resource path="res://src/Levels/Enemy Test Level.tscn" type="PackedScene" id=7]
|
||||||
[ext_resource path="res://src/Contraptions/Platform/FlyingLaserCutter.tscn" type="PackedScene" id=8]
|
[ext_resource path="res://src/Contraptions/Platform/FlyingLaserCutter.tscn" type="PackedScene" id=8]
|
||||||
|
[ext_resource path="res://src/Actors/Enemies/Beings/BoundFrog.tscn" type="PackedScene" id=9]
|
||||||
[ext_resource path="res://src/Contraptions/Triggers/ThreeWhyButtons.tscn" type="PackedScene" id=10]
|
[ext_resource path="res://src/Contraptions/Triggers/ThreeWhyButtons.tscn" type="PackedScene" id=10]
|
||||||
[ext_resource path="res://src/ObstacleObjects/Spikes.tscn" type="PackedScene" id=11]
|
[ext_resource path="res://src/ObstacleObjects/Spikes.tscn" type="PackedScene" id=11]
|
||||||
[ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=12]
|
[ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=12]
|
||||||
@ -154,6 +155,10 @@ rotation = -6.28318
|
|||||||
position = Vector2( 828, 324 )
|
position = Vector2( 828, 324 )
|
||||||
rotation = -4.71238
|
rotation = -4.71238
|
||||||
|
|
||||||
|
[node name="BoundFrog" parent="." instance=ExtResource( 9 )]
|
||||||
|
position = Vector2( 338, 254 )
|
||||||
|
|
||||||
|
[connection signal="ready" from="." to="BoundFrog" method="_on_LevelTemplate_ready"]
|
||||||
[connection signal="timeout" from="UserInterface/HUD/HUDOverlay/GetBackTimer/Timer" to="GameplaySignalManager" method="_on_Timer_timeout"]
|
[connection signal="timeout" from="UserInterface/HUD/HUDOverlay/GetBackTimer/Timer" to="GameplaySignalManager" method="_on_Timer_timeout"]
|
||||||
[connection signal="getback_timer_up" from="GameplaySignalManager" to="Blobby" method="_on_GameplaySignalManager_getback_timer_up"]
|
[connection signal="getback_timer_up" from="GameplaySignalManager" to="Blobby" method="_on_GameplaySignalManager_getback_timer_up"]
|
||||||
[connection signal="terminal_activated" from="GameplaySignalManager" to="UserInterface/HUD" method="_on_SignalManager_terminal_activated"]
|
[connection signal="terminal_activated" from="GameplaySignalManager" to="UserInterface/HUD" method="_on_SignalManager_terminal_activated"]
|
||||||
|
|||||||
18
src/ThirdParty/Demo/IridescenceBall.tscn
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[gd_scene load_steps=4 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://src/ThirdParty/Demo/meshinstance.gd" type="Script" id=1]
|
||||||
|
[ext_resource path="res://src/ThirdParty/Demo/meshinstance.material" type="Material" id=2]
|
||||||
|
|
||||||
|
[sub_resource type="SphereMesh" id=1]
|
||||||
|
|
||||||
|
[node name="IridescenceBall" type="Spatial"]
|
||||||
|
|
||||||
|
[node name="Camera" type="Camera" parent="."]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 3 )
|
||||||
|
far = 150.0
|
||||||
|
|
||||||
|
[node name="MeshInstance" type="MeshInstance" parent="."]
|
||||||
|
transform = Transform( 0.99997, -0.00767937, 0, 0.00767937, 0.99997, 0, 0, 0, 1, 0, 0, 0 )
|
||||||
|
mesh = SubResource( 1 )
|
||||||
|
material/0 = ExtResource( 2 )
|
||||||
|
script = ExtResource( 1 )
|
||||||
5
src/ThirdParty/Demo/meshinstance.gd
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
extends MeshInstance
|
||||||
|
|
||||||
|
|
||||||
|
func _process(delta):
|
||||||
|
rotate_y(PI / 4.0 * delta)
|
||||||
BIN
src/ThirdParty/Demo/meshinstance.material
vendored
Normal file
2
src/ThirdParty/Godot-Iridescence-Shader-master/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
.import*
|
||||||
|
**/*.import
|
||||||
36
src/ThirdParty/Godot-Iridescence-Shader-master/Demo/Demo.tscn
vendored
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
[gd_scene load_steps=6 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://Demo/meshinstance.gd" type="Script" id=1]
|
||||||
|
[ext_resource path="res://Demo/meshinstance.material" type="Material" id=2]
|
||||||
|
|
||||||
|
[sub_resource type="SphereMesh" id=1]
|
||||||
|
|
||||||
|
[sub_resource type="ProceduralSky" id=2]
|
||||||
|
ground_bottom_color = Color( 0.647059, 0.839216, 0.945098, 1 )
|
||||||
|
ground_horizon_color = Color( 0.839216, 0.917647, 0.980392, 1 )
|
||||||
|
|
||||||
|
[sub_resource type="Environment" id=3]
|
||||||
|
background_mode = 2
|
||||||
|
background_sky = SubResource( 2 )
|
||||||
|
background_color = Color( 0.0666667, 0.65098, 0.905882, 1 )
|
||||||
|
ambient_light_sky_contribution = 0.0
|
||||||
|
tonemap_mode = 2
|
||||||
|
auto_exposure_scale = 0.6
|
||||||
|
auto_exposure_min_luma = 6.91
|
||||||
|
auto_exposure_max_luma = 16.0
|
||||||
|
auto_exposure_speed = 50.43
|
||||||
|
|
||||||
|
[node name="Demo" type="Spatial"]
|
||||||
|
|
||||||
|
[node name="Camera" type="Camera" parent="."]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 3 )
|
||||||
|
far = 150.0
|
||||||
|
|
||||||
|
[node name="MeshInstance" type="MeshInstance" parent="."]
|
||||||
|
transform = Transform( 0.99997, -0.00767937, 0, 0.00767937, 0.99997, 0, 0, 0, 1, 0, 0, 0 )
|
||||||
|
mesh = SubResource( 1 )
|
||||||
|
material/0 = ExtResource( 2 )
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||||
|
environment = SubResource( 3 )
|
||||||
5
src/ThirdParty/Godot-Iridescence-Shader-master/Demo/meshinstance.gd
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
extends MeshInstance
|
||||||
|
|
||||||
|
|
||||||
|
func _process(delta):
|
||||||
|
rotate_y(PI / 4.0 * delta)
|
||||||
BIN
src/ThirdParty/Godot-Iridescence-Shader-master/Demo/meshinstance.material
vendored
Normal file
8
src/ThirdParty/Godot-Iridescence-Shader-master/Gradiants/iridescence_gradiant.tres
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[gd_resource type="GradientTexture" load_steps=2 format=2]
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id=1]
|
||||||
|
offsets = PoolRealArray( 0, 0.0816327, 0.156463, 0.238095, 0.319728, 0.414966, 0.489796, 0.591837, 0.70068, 0.809524, 0.911565, 1 )
|
||||||
|
colors = PoolColorArray( 0, 0, 0, 0, 1, 0, 0, 1, 1, 0.585938, 0, 1, 1, 0.960938, 0, 1, 0.631893, 1, 0.403573, 1, 0, 1, 0.554688, 1, 0, 0.953125, 1, 1, 0, 0.390625, 1, 1, 0.382812, 0, 1, 1, 1, 0, 0.820312, 1, 1, 0, 0, 1, 1, 0.611765, 0.611765, 0 )
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
gradient = SubResource( 1 )
|
||||||
BIN
src/ThirdParty/Godot-Iridescence-Shader-master/Images/irs.png
vendored
Normal file
|
After Width: | Height: | Size: 294 KiB |
21
src/ThirdParty/Godot-Iridescence-Shader-master/LICENSE.txt
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2020 David E Lipps
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
25
src/ThirdParty/Godot-Iridescence-Shader-master/README.md
vendored
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
## EXP Iridescence Shader v.1.0.0
|
||||||
|
#### By David Lipps aka Dave the Dev at EXPWorlds for Godot 3.2 Stable
|
||||||
|
---
|
||||||
|

|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
A gradiant based iridescense shader.
|
||||||
|
|
||||||
|
[](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=22E6SNKTLTHRL¤cy_code=USD&source=url) If this project helped you out, consider sending some coffee my way so I can stay locked in "the zone" and bring the Godot community more cool free stuff.
|
||||||
|
|
||||||
|
---
|
||||||
|
**Parameter Discriptions:**
|
||||||
|
- Wavelength: Higher numbers increase the wave count.
|
||||||
|
- Wavespeed: How fast the waves animate.
|
||||||
|
- Alpha: The translucence of the object.
|
||||||
|
- Displacement: The amont the noise displacment texture can translate the vertices from their original position.
|
||||||
|
- Displacement Speed: How fast the noise displacement texture animates the object.
|
||||||
|
- Noise Texture: The perlin noise texture that offsets the waves.
|
||||||
|
- Noise Displacement Texture: The perlin noise texture that displaces vertices.
|
||||||
|
- Gradiant: The gradiant texture which defines the visible spectrum of the waves.
|
||||||
|
|
||||||
|
---
|
||||||
|
I can be reached at: davidlipps.dev@gmail.com
|
||||||
|
I'd love to hear your thoughts. Especially about how I can improve. I'll do my best to get back to you.
|
||||||
29
src/ThirdParty/Godot-Iridescence-Shader-master/Shader/iridescence.shader
vendored
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
shader_type spatial;
|
||||||
|
render_mode unshaded;
|
||||||
|
|
||||||
|
uniform float wavelength = 10.0;
|
||||||
|
uniform float wavespeed = 1.0;
|
||||||
|
uniform float alpha = 0.25;
|
||||||
|
uniform float displacement = 0.0;
|
||||||
|
uniform float displacement_speed = 1.0;
|
||||||
|
|
||||||
|
uniform sampler2D noise_texture;
|
||||||
|
uniform sampler2D noise_displacement_texture;
|
||||||
|
uniform sampler2D gradiant;
|
||||||
|
|
||||||
|
void vertex()
|
||||||
|
{
|
||||||
|
vec3 perlin = texture(noise_displacement_texture, UV + (TIME * displacement_speed)).rgb;
|
||||||
|
VERTEX = VERTEX + (perlin * NORMAL * displacement);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void fragment()
|
||||||
|
{
|
||||||
|
vec3 perlin = texture(noise_texture, UV).rgb;
|
||||||
|
float ndotp = dot(VIEW, perlin) * wavelength;
|
||||||
|
float waves = (1.0 + sin(ndotp + TIME * wavespeed)) / 2.0;
|
||||||
|
vec4 color = texture(gradiant, vec2(waves, 0.5));
|
||||||
|
ALBEDO = color.rgb;
|
||||||
|
ALPHA = min(color.a, alpha);
|
||||||
|
}
|
||||||
29
src/ThirdParty/Godot-Iridescence-Shader-master/Shader/iridescence_cullfront.shader
vendored
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
shader_type spatial;
|
||||||
|
render_mode unshaded, cull_front;
|
||||||
|
|
||||||
|
uniform float wavelength = 10.0;
|
||||||
|
uniform float wavespeed = 1.0;
|
||||||
|
uniform float alpha = 0.25;
|
||||||
|
uniform float displacement = 0.0;
|
||||||
|
uniform float displacement_speed = 1.0;
|
||||||
|
|
||||||
|
uniform sampler2D noise_texture;
|
||||||
|
uniform sampler2D noise_displacement_texture;
|
||||||
|
uniform sampler2D gradiant;
|
||||||
|
|
||||||
|
void vertex()
|
||||||
|
{
|
||||||
|
vec3 perlin = texture(noise_displacement_texture, UV + (TIME * displacement_speed)).rgb;
|
||||||
|
VERTEX = VERTEX + (perlin * NORMAL * displacement);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void fragment()
|
||||||
|
{
|
||||||
|
vec3 perlin = texture(noise_texture, UV).rgb;
|
||||||
|
float ndotp = dot(VIEW, perlin) * wavelength;
|
||||||
|
float waves = (1.0 + sin(ndotp + TIME * wavespeed)) / 2.0;
|
||||||
|
vec4 color = texture(gradiant, vec2(waves, 0.5));
|
||||||
|
ALBEDO = color.rgb;
|
||||||
|
ALPHA = min(color.a, alpha);
|
||||||
|
}
|
||||||
BIN
src/ThirdParty/Godot-Iridescence-Shader-master/icon.png
vendored
Normal file
|
After Width: | Height: | Size: 7.0 KiB |
18
src/ThirdParty/Godot-Iridescence-Shader-master/project.godot
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
; Engine configuration file.
|
||||||
|
; It's best edited using the editor UI and not directly,
|
||||||
|
; since the parameters that go here are not all obvious.
|
||||||
|
;
|
||||||
|
; Format:
|
||||||
|
; [section] ; section goes between []
|
||||||
|
; param=value ; assign values to parameters
|
||||||
|
|
||||||
|
config_version=4
|
||||||
|
|
||||||
|
_global_script_classes=[ ]
|
||||||
|
_global_script_class_icons={
|
||||||
|
}
|
||||||
|
|
||||||
|
[application]
|
||||||
|
|
||||||
|
config/name="EXP-Shader-Iridescence"
|
||||||
|
config/icon="res://icon.png"
|
||||||
8
src/ThirdParty/Gradiants/iridescence_gradiant.tres
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[gd_resource type="GradientTexture" load_steps=2 format=2]
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id=1]
|
||||||
|
offsets = PoolRealArray( 0, 0.0816327, 0.156463, 0.238095, 0.319728, 0.414966, 0.489796, 0.591837, 0.70068, 0.809524, 0.911565, 1 )
|
||||||
|
colors = PoolColorArray( 0, 0, 0, 0, 1, 0, 0, 1, 1, 0.585938, 0, 1, 1, 0.960938, 0, 1, 0.631893, 1, 0.403573, 1, 0, 1, 0.554688, 1, 0, 0.953125, 1, 1, 0, 0.390625, 1, 1, 0.382812, 0, 1, 1, 1, 0, 0.820312, 1, 1, 0, 0, 1, 1, 0.611765, 0.611765, 0 )
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
gradient = SubResource( 1 )
|
||||||
BIN
src/ThirdParty/Images/irs.png
vendored
Normal file
|
After Width: | Height: | Size: 294 KiB |
35
src/ThirdParty/Images/irs.png.import
vendored
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/irs.png-dbed701ff1f1618c8da9c69410d8a49a.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://src/ThirdParty/Images/irs.png"
|
||||||
|
dest_files=[ "res://.import/irs.png-dbed701ff1f1618c8da9c69410d8a49a.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=false
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=false
|
||||||
|
svg/scale=1.0
|
||||||
29
src/ThirdParty/Shader/iridescence.shader
vendored
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
shader_type spatial;
|
||||||
|
render_mode unshaded;
|
||||||
|
|
||||||
|
uniform float wavelength = 10.0;
|
||||||
|
uniform float wavespeed = 1.0;
|
||||||
|
uniform float alpha = 0.25;
|
||||||
|
uniform float displacement = 0.0;
|
||||||
|
uniform float displacement_speed = 1.0;
|
||||||
|
|
||||||
|
uniform sampler2D noise_texture;
|
||||||
|
uniform sampler2D noise_displacement_texture;
|
||||||
|
uniform sampler2D gradiant;
|
||||||
|
|
||||||
|
void vertex()
|
||||||
|
{
|
||||||
|
vec3 perlin = texture(noise_displacement_texture, UV + (TIME * displacement_speed)).rgb;
|
||||||
|
VERTEX = VERTEX + (perlin * NORMAL * displacement);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void fragment()
|
||||||
|
{
|
||||||
|
vec3 perlin = texture(noise_texture, UV).rgb;
|
||||||
|
float ndotp = dot(VIEW, perlin) * wavelength;
|
||||||
|
float waves = (1.0 + sin(ndotp + TIME * wavespeed)) / 2.0;
|
||||||
|
vec4 color = texture(gradiant, vec2(waves, 0.5));
|
||||||
|
ALBEDO = color.rgb;
|
||||||
|
ALPHA = min(color.a, alpha);
|
||||||
|
}
|
||||||
29
src/ThirdParty/Shader/iridescence_cullfront.shader
vendored
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
shader_type spatial;
|
||||||
|
render_mode unshaded, cull_front;
|
||||||
|
|
||||||
|
uniform float wavelength = 10.0;
|
||||||
|
uniform float wavespeed = 1.0;
|
||||||
|
uniform float alpha = 0.25;
|
||||||
|
uniform float displacement = 0.0;
|
||||||
|
uniform float displacement_speed = 1.0;
|
||||||
|
|
||||||
|
uniform sampler2D noise_texture;
|
||||||
|
uniform sampler2D noise_displacement_texture;
|
||||||
|
uniform sampler2D gradiant;
|
||||||
|
|
||||||
|
void vertex()
|
||||||
|
{
|
||||||
|
vec3 perlin = texture(noise_displacement_texture, UV + (TIME * displacement_speed)).rgb;
|
||||||
|
VERTEX = VERTEX + (perlin * NORMAL * displacement);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void fragment()
|
||||||
|
{
|
||||||
|
vec3 perlin = texture(noise_texture, UV).rgb;
|
||||||
|
float ndotp = dot(VIEW, perlin) * wavelength;
|
||||||
|
float waves = (1.0 + sin(ndotp + TIME * wavespeed)) / 2.0;
|
||||||
|
vec4 color = texture(gradiant, vec2(waves, 0.5));
|
||||||
|
ALBEDO = color.rgb;
|
||||||
|
ALPHA = min(color.a, alpha);
|
||||||
|
}
|
||||||