Add starter files from GDQuest tutorial

This commit is contained in:
James Skemp 2023-12-31 20:11:54 -06:00
commit 67142a18b5
57 changed files with 2001 additions and 0 deletions

View File

@ -0,0 +1,39 @@
# GDQuest ColorPicker Presets
Reads a color presets `gpl` (GIMP Palette) file in the addon local directory, called `presets.gpl`. It adds the colors to the editor ColorPicker for quick access.
This repository includes a `presets.gpl` file as an example. It's the official GDQuest color palette.
## ✗ WARNING
> Compatible: Godot `>= v4.0`
The addon:
1. Doesn't check the length of the color palette/file.
1. Overwrites the _ColorPicker_ presets whenever you reopen the project or re-enable the addon.
## ✓ Install
### Using [Godot Package Manager](https://github.com/godot-package-manager)
1. `gpm init`.
1. Follow instructions with [NPMjs package](https://www.npmjs.com/package/gdquest.colorpicker_presets).
1. Enable the addon from `Project > Project Settings... > Plugins`.
1. Profit.
### Manual
1. Make a new folder at `res://addons/colorpicker_presets/`.
1. Copy the contents of this repository into `res://addons/colorpicker_presets/`.
1. Replace `res://addons/colorpicker_presets/presets.gpl` with your preferred version.
1. Enable the addon from `Project > Project Settings... > Plugins`.
1. Profit.
![install project settings](readme/install_project_settings.png)
## Where do I find the presets?
They'll be available in the editor _ColorPicker_.
![ColorPicker presets](readme/colorpicker_presets.png)

View File

@ -0,0 +1,26 @@
@tool
extends EditorPlugin
const PRESETS_FILENAME := 'presets.gpl'
func _enter_tree() -> void:
var presets_path: String = get_script().resource_path.get_base_dir().path_join(PRESETS_FILENAME)
var presets_file := FileAccess.open(presets_path, FileAccess.READ)
if FileAccess.get_open_error() == OK:
var presets_raw := presets_file.get_as_text(true).strip_edges().split("\n")
presets_file.close()
presets_raw = presets_raw.slice(presets_raw.find("#") + 1)
var presets := Array(presets_raw).map(
func(s: String):
var rgb := (Array(s.strip_edges().split(" ").slice(0, -1))
.filter(func(s: String): return not s.is_empty())
.map(func(s: String): return s.to_int())
)
return Color8(rgb[0], rgb[1], rgb[2])
)
get_editor_interface().get_editor_settings().set_project_metadata(
"color_picker", "presets", presets
)

View File

@ -0,0 +1,9 @@
[plugin]
name="GDQuest ColorPicker Presets"
description="Sets the editor color picker presets from
`presets.hex`, if it exists. The file is local to the
addon folder."
author="razcore-rad"
version="0.0.2-beta"
script="colorpicker_presets.gd"

View File

@ -0,0 +1,31 @@
GIMP Palette
Name: gdquest.gpl
#
0 122 195 Blue
16 178 239 BlueAlt
6 29 84 BlueDark
207 221 255 BlueLight
108 44 218 Purple
141 25 215 PurpleAlt
40 20 78 PurpleDark
235 224 255 PurpleLight
196 29 61 Red
255 65 125 RedAlt/Pink
115 39 92 RedDark
255 219 244 RedLight
255 183 48 Yellow
255 213 0 YellowAlt
222 80 43 YellowDark/Orange
255 236 201 YellowLight
99 204 95 Green
159 221 81 GreenAlt/Lime
21 89 63 GreenDark
221 255 242 GreenLight/Mint
109 61 44 Brown
176 87 55 BrownAlt
106 25 0 BrownDark
255 227 227 BrownLight
202 202 202 Gray
255 255 255 White
39 43 48 Deep
243 248 254 Light

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 752 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b7rhtttevhxtj"
path="res://.godot/imported/ground_shadow.png-b9267d10ca04362d5b540659e4ab0dbd.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://characters/ground_shadow.png"
dest_files=["res://.godot/imported/ground_shadow.png-b9267d10ca04362d5b540659e4ab0dbd.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@ -0,0 +1,9 @@
extends Node2D
func play_idle_animation():
%AnimationPlayer.play("idle")
func play_walk_animation():
%AnimationPlayer.play("walk")

View File

@ -0,0 +1,651 @@
[gd_scene load_steps=12 format=3 uid="uid://pbmyh1qru7p"]
[ext_resource type="Script" path="res://characters/happy_boo/happy_boo.gd" id="1_kg7lb"]
[ext_resource type="Texture2D" uid="uid://b7rhtttevhxtj" path="res://characters/ground_shadow.png" id="2_62bos"]
[ext_resource type="Texture2D" uid="uid://ng8e5ot0dtpd" path="res://characters/happy_boo/square_foot.png" id="3_186qq"]
[ext_resource type="Texture2D" uid="uid://dhapxq8y8ow57" path="res://characters/happy_boo/square_lower_leg.png" id="4_plnsd"]
[ext_resource type="Texture2D" uid="uid://qmqpm6asge1i" path="res://characters/happy_boo/square_upper_leg.png" id="5_q2t1e"]
[ext_resource type="Texture2D" uid="uid://cksiu5gst6fmp" path="res://characters/happy_boo/square_body.png" id="6_w3ck4"]
[ext_resource type="Texture2D" uid="uid://cvs0lh814pk7h" path="res://characters/happy_boo/square_face.png" id="7_h5h8s"]
[sub_resource type="Animation" id="Animation_hed62"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Colorizer/SquareUpperLegL:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(-10.6303, -27.3998)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Colorizer/SquareUpperLegL:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.4009]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Colorizer/SquareUpperLegL/SquareLowerLegL:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, 14)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Colorizer/SquareUpperLegL/SquareLowerLegL:rotation")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [-2.98023e-08]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Colorizer/SquareUpperLegL/SquareLowerLegL/SquareFootL:position")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, 12)]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("Colorizer/SquareUpperLegL/SquareLowerLegL/SquareFootL:rotation")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [-3.40666]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("Colorizer/SquareUpperLegR:position")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(9.20459, -29.9444)]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("Colorizer/SquareUpperLegR:rotation")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [-0.213676]
}
tracks/8/type = "value"
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/path = NodePath("Colorizer/SquareUpperLegR/SquareLowerLegR:position")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(-4.76837e-07, 14)]
}
tracks/9/type = "value"
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/path = NodePath("Colorizer/SquareUpperLegR/SquareLowerLegR:rotation")
tracks/9/interp = 1
tracks/9/loop_wrap = true
tracks/9/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/10/type = "value"
tracks/10/imported = false
tracks/10/enabled = true
tracks/10/path = NodePath("Colorizer/SquareUpperLegR/SquareLowerLegR/SquareFootR:position")
tracks/10/interp = 1
tracks/10/loop_wrap = true
tracks/10/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, 12)]
}
tracks/11/type = "value"
tracks/11/imported = false
tracks/11/enabled = true
tracks/11/path = NodePath("Colorizer/SquareUpperLegR/SquareLowerLegR/SquareFootR:rotation")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [-2.92296]
}
tracks/12/type = "value"
tracks/12/imported = false
tracks/12/enabled = true
tracks/12/path = NodePath("Colorizer/SquareBody:position")
tracks/12/interp = 1
tracks/12/loop_wrap = true
tracks/12/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(-1.73067, -36.6061)]
}
tracks/13/type = "value"
tracks/13/imported = false
tracks/13/enabled = true
tracks/13/path = NodePath("Colorizer/SquareBody:rotation")
tracks/13/interp = 1
tracks/13/loop_wrap = true
tracks/13/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [-0.0250386]
}
tracks/14/type = "value"
tracks/14/imported = false
tracks/14/enabled = true
tracks/14/path = NodePath("Colorizer/SquareBody/SquareFace:position")
tracks/14/interp = 1
tracks/14/loop_wrap = true
tracks/14/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, -17)]
}
tracks/15/type = "value"
tracks/15/imported = false
tracks/15/enabled = true
tracks/15/path = NodePath("Colorizer/SquareBody/SquareFace:rotation")
tracks/15/interp = 1
tracks/15/loop_wrap = true
tracks/15/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
[sub_resource type="Animation" id="Animation_sablf"]
resource_name = "idle"
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Colorizer/SquareUpperLegL:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(-10.6303, -27.3998)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Colorizer/SquareUpperLegL:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.4009]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Colorizer/SquareUpperLegL/SquareLowerLegL:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, 14)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Colorizer/SquareUpperLegL/SquareLowerLegL:rotation")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [-2.98023e-08]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Colorizer/SquareUpperLegL/SquareLowerLegL/SquareFootL:position")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, 12)]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("Colorizer/SquareUpperLegL/SquareLowerLegL/SquareFootL:rotation")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [-3.40666]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("Colorizer/SquareUpperLegR:position")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(9.20459, -29.9444)]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("Colorizer/SquareUpperLegR:rotation")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [-0.213676]
}
tracks/8/type = "value"
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/path = NodePath("Colorizer/SquareUpperLegR/SquareLowerLegR:position")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(-4.76837e-07, 14)]
}
tracks/9/type = "value"
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/path = NodePath("Colorizer/SquareUpperLegR/SquareLowerLegR:rotation")
tracks/9/interp = 1
tracks/9/loop_wrap = true
tracks/9/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/10/type = "value"
tracks/10/imported = false
tracks/10/enabled = true
tracks/10/path = NodePath("Colorizer/SquareUpperLegR/SquareLowerLegR/SquareFootR:position")
tracks/10/interp = 1
tracks/10/loop_wrap = true
tracks/10/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, 12)]
}
tracks/11/type = "value"
tracks/11/imported = false
tracks/11/enabled = true
tracks/11/path = NodePath("Colorizer/SquareUpperLegR/SquareLowerLegR/SquareFootR:rotation")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [-2.92296]
}
tracks/12/type = "value"
tracks/12/imported = false
tracks/12/enabled = true
tracks/12/path = NodePath("Colorizer/SquareBody:position")
tracks/12/interp = 1
tracks/12/loop_wrap = true
tracks/12/keys = {
"times": PackedFloat32Array(0, 0.4, 0.8),
"transitions": PackedFloat32Array(0.466516, 0.189465, 1),
"update": 0,
"values": [Vector2(-1.73067, -36.6061), Vector2(-1.731, -32), Vector2(-1.731, -38)]
}
tracks/13/type = "value"
tracks/13/imported = false
tracks/13/enabled = true
tracks/13/path = NodePath("Colorizer/SquareBody:rotation")
tracks/13/interp = 1
tracks/13/loop_wrap = true
tracks/13/keys = {
"times": PackedFloat32Array(0, 0.4),
"transitions": PackedFloat32Array(2.46229, 0.535887),
"update": 0,
"values": [-0.0250386, 0.0698132]
}
tracks/14/type = "value"
tracks/14/imported = false
tracks/14/enabled = true
tracks/14/path = NodePath("Colorizer/SquareBody/SquareFace:position")
tracks/14/interp = 1
tracks/14/loop_wrap = true
tracks/14/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, -17)]
}
tracks/15/type = "value"
tracks/15/imported = false
tracks/15/enabled = true
tracks/15/path = NodePath("Colorizer/SquareBody/SquareFace:rotation")
tracks/15/interp = 1
tracks/15/loop_wrap = true
tracks/15/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
[sub_resource type="Animation" id="Animation_74kqe"]
resource_name = "walk"
length = 0.6
loop_mode = 1
step = 0.0333333
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Colorizer/SquareUpperLegL:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.3, 0.466666),
"transitions": PackedFloat32Array(1, 0.5, 2),
"update": 0,
"values": [Vector2(-10.6303, -27.3998), Vector2(-10.6303, -27.3998), Vector2(-16, -40)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Colorizer/SquareUpperLegL:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.3, 0.466666),
"transitions": PackedFloat32Array(1, 0.5, 2),
"update": 0,
"values": [0.4009, 0.4009, -0.197871]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Colorizer/SquareUpperLegL/SquareLowerLegL:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.3),
"transitions": PackedFloat32Array(1, 0.5),
"update": 0,
"values": [Vector2(0, 14), Vector2(0, 14)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Colorizer/SquareUpperLegL/SquareLowerLegL:rotation")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.3, 0.466667),
"transitions": PackedFloat32Array(1, 0.5, 2),
"update": 0,
"values": [-2.98023e-08, -2.98023e-08, 1.12966]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Colorizer/SquareUpperLegL/SquareLowerLegL/SquareFootL:position")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 0.3),
"transitions": PackedFloat32Array(1, 0.5),
"update": 0,
"values": [Vector2(0, 12), Vector2(0, 12)]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("Colorizer/SquareUpperLegL/SquareLowerLegL/SquareFootL:rotation")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0, 0.3, 0.466667),
"transitions": PackedFloat32Array(1, 0.5, 2),
"update": 0,
"values": [-3.40666, -3.40666, -3.92035]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("Colorizer/SquareUpperLegR:position")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0, 0.166667, 0.3),
"transitions": PackedFloat32Array(0.5, 2, 1),
"update": 0,
"values": [Vector2(9, -27), Vector2(11, -44), Vector2(9, -27)]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("Colorizer/SquareUpperLegR:rotation")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0, 0.166667, 0.3),
"transitions": PackedFloat32Array(0.5, 2, 1),
"update": 0,
"values": [-0.213676, -0.458455, -0.213676]
}
tracks/8/type = "value"
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/path = NodePath("Colorizer/SquareUpperLegR/SquareLowerLegR:position")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/keys = {
"times": PackedFloat32Array(0, 0.3),
"transitions": PackedFloat32Array(0.5, 1),
"update": 0,
"values": [Vector2(-4.76837e-07, 14), Vector2(-4.76837e-07, 14)]
}
tracks/9/type = "value"
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/path = NodePath("Colorizer/SquareUpperLegR/SquareLowerLegR:rotation")
tracks/9/interp = 1
tracks/9/loop_wrap = true
tracks/9/keys = {
"times": PackedFloat32Array(0, 0.166667, 0.3),
"transitions": PackedFloat32Array(0.5, 2, 1),
"update": 0,
"values": [0.0, 0.888296, 0.0]
}
tracks/10/type = "value"
tracks/10/imported = false
tracks/10/enabled = true
tracks/10/path = NodePath("Colorizer/SquareUpperLegR/SquareLowerLegR/SquareFootR:position")
tracks/10/interp = 1
tracks/10/loop_wrap = true
tracks/10/keys = {
"times": PackedFloat32Array(0, 0.3),
"transitions": PackedFloat32Array(0.5, 1),
"update": 0,
"values": [Vector2(0, 12), Vector2(0, 12)]
}
tracks/11/type = "value"
tracks/11/imported = false
tracks/11/enabled = true
tracks/11/path = NodePath("Colorizer/SquareUpperLegR/SquareLowerLegR/SquareFootR:rotation")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/keys = {
"times": PackedFloat32Array(0, 0.166667, 0.3),
"transitions": PackedFloat32Array(0.5, 2, 1),
"update": 0,
"values": [-2.92296, -3.45549, -2.92296]
}
tracks/12/type = "value"
tracks/12/imported = false
tracks/12/enabled = true
tracks/12/path = NodePath("Colorizer/SquareBody:position")
tracks/12/interp = 1
tracks/12/loop_wrap = true
tracks/12/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(-1.73067, -36.6061)]
}
tracks/13/type = "value"
tracks/13/imported = false
tracks/13/enabled = true
tracks/13/path = NodePath("Colorizer/SquareBody:rotation")
tracks/13/interp = 1
tracks/13/loop_wrap = true
tracks/13/keys = {
"times": PackedFloat32Array(0, 0.166667, 0.3, 0.466667),
"transitions": PackedFloat32Array(0.392292, 1.31951, 0.267943, 1.8025),
"update": 0,
"values": [-0.0250386, -0.209487, 0.0372028, 0.23927]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_wrcpu"]
_data = {
"RESET": SubResource("Animation_hed62"),
"idle": SubResource("Animation_sablf"),
"walk": SubResource("Animation_74kqe")
}
[node name="HappyBoo" type="Node2D"]
script = ExtResource("1_kg7lb")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
unique_name_in_owner = true
playback_default_blend_time = 0.2
libraries = {
"": SubResource("AnimationLibrary_wrcpu")
}
[node name="GroundShadow" type="Sprite2D" parent="."]
modulate = Color(0.898039, 0.878431, 0.831373, 1)
z_index = -1
z_as_relative = false
scale = Vector2(0.8, 0.8)
texture = ExtResource("2_62bos")
metadata/_edit_lock_ = true
[node name="Colorizer" type="Node2D" parent="."]
modulate = Color(1, 0.572549, 0.176471, 1)
[node name="SquareUpperLegL" type="Sprite2D" parent="Colorizer"]
position = Vector2(-10.6303, -27.3998)
rotation = 0.4009
scale = Vector2(0.997829, 0.999794)
texture = ExtResource("5_q2t1e")
offset = Vector2(0, 6)
[node name="SquareLowerLegL" type="Sprite2D" parent="Colorizer/SquareUpperLegL"]
position = Vector2(0, 14)
texture = ExtResource("4_plnsd")
offset = Vector2(0, 6)
[node name="SquareFootL" type="Sprite2D" parent="Colorizer/SquareUpperLegL/SquareLowerLegL"]
position = Vector2(0, 12)
rotation = -3.40666
scale = Vector2(1.01116, 1)
texture = ExtResource("3_186qq")
offset = Vector2(-4, 0)
[node name="SquareUpperLegR" type="Sprite2D" parent="Colorizer"]
position = Vector2(9.20459, -29.9444)
rotation = -0.213676
scale = Vector2(0.999794, 0.999794)
texture = ExtResource("5_q2t1e")
offset = Vector2(0, 6)
[node name="SquareLowerLegR" type="Sprite2D" parent="Colorizer/SquareUpperLegR"]
position = Vector2(-4.76837e-07, 14)
texture = ExtResource("4_plnsd")
offset = Vector2(0, 6)
[node name="SquareFootR" type="Sprite2D" parent="Colorizer/SquareUpperLegR/SquareLowerLegR"]
position = Vector2(0, 12)
rotation = -2.92296
texture = ExtResource("3_186qq")
offset = Vector2(-4, 0)
[node name="SquareBody" type="Sprite2D" parent="Colorizer"]
position = Vector2(-1.73067, -36.6061)
rotation = -0.0250386
scale = Vector2(0.9842, 0.990263)
texture = ExtResource("6_w3ck4")
offset = Vector2(0, -23)
[node name="SquareFace" type="Sprite2D" parent="Colorizer/SquareBody"]
position = Vector2(0, -17)
texture = ExtResource("7_h5h8s")
metadata/_edit_lock_ = true

Binary file not shown.

After

Width:  |  Height:  |  Size: 750 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cksiu5gst6fmp"
path="res://.godot/imported/square_body.png-ef1c56c8912cd968d7fd09a95e6ea8f4.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://characters/happy_boo/square_body.png"
dest_files=["res://.godot/imported/square_body.png-ef1c56c8912cd968d7fd09a95e6ea8f4.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 414 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cvs0lh814pk7h"
path="res://.godot/imported/square_face.png-e27720ce35d82859f41580927c22ef18.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://characters/happy_boo/square_face.png"
dest_files=["res://.godot/imported/square_face.png-e27720ce35d82859f41580927c22ef18.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ng8e5ot0dtpd"
path="res://.godot/imported/square_foot.png-62023e9ce7985c4b370739df29445354.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://characters/happy_boo/square_foot.png"
dest_files=["res://.godot/imported/square_foot.png-62023e9ce7985c4b370739df29445354.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 319 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dhapxq8y8ow57"
path="res://.godot/imported/square_lower_leg.png-313909793abe38b44566c8e252c075e0.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://characters/happy_boo/square_lower_leg.png"
dest_files=["res://.godot/imported/square_lower_leg.png-313909793abe38b44566c8e252c075e0.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@ -0,0 +1,23 @@
[gd_resource type="SkeletonModificationStack2D" load_steps=3 format=3 uid="uid://dtf0pmja4mcaa"]
[sub_resource type="SkeletonModification2DTwoBoneIK" id="SkeletonModification2DTwoBoneIK_7lb5u"]
target_nodepath = NodePath("FootLIK")
flip_bend_direction = true
joint_one_bone_idx = 1
joint_one_bone2d_node = NodePath("Center/UpperLegL")
joint_two_bone_idx = 2
joint_two_bone2d_node = NodePath("Center/UpperLegL/LowerLegL")
editor/draw_gizmo = false
[sub_resource type="SkeletonModification2DTwoBoneIK" id="SkeletonModification2DTwoBoneIK_h82yt"]
target_nodepath = NodePath("FootRIK")
joint_one_bone_idx = 4
joint_one_bone2d_node = NodePath("Center/UpperLegR")
joint_two_bone_idx = 5
joint_two_bone2d_node = NodePath("Center/UpperLegR/LowerLegR")
[resource]
enabled = true
modification_count = 2
modifications/0 = SubResource("SkeletonModification2DTwoBoneIK_7lb5u")
modifications/1 = SubResource("SkeletonModification2DTwoBoneIK_h82yt")

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b2ent6mf1y7w7"
path="res://.godot/imported/square_ref.png-ad4b2771e34de0b9a0fbda7055a9fe1c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://characters/happy_boo/square_ref.png"
dest_files=["res://.godot/imported/square_ref.png-ad4b2771e34de0b9a0fbda7055a9fe1c.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://qmqpm6asge1i"
path="res://.godot/imported/square_upper_leg.png-e1f848aab7dd8805f40f881c2160a53d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://characters/happy_boo/square_upper_leg.png"
dest_files=["res://.godot/imported/square_upper_leg.png-e1f848aab7dd8805f40f881c2160a53d.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

10
characters/slime/slime.gd Normal file
View File

@ -0,0 +1,10 @@
extends Node2D
func play_walk():
%AnimationPlayer.play("walk")
func play_hurt():
%AnimationPlayer.play("hurt")
%AnimationPlayer.queue("walk")

245
characters/slime/slime.tscn Normal file
View File

@ -0,0 +1,245 @@
[gd_scene load_steps=12 format=3 uid="uid://ogik4s70pgwl"]
[ext_resource type="Texture2D" uid="uid://dvgfmy6vtvjji" path="res://characters/slime/slime_body.png" id="1_3j35h"]
[ext_resource type="Script" path="res://characters/slime/slime.gd" id="1_87y5x"]
[ext_resource type="Texture2D" uid="uid://b7rhtttevhxtj" path="res://characters/ground_shadow.png" id="1_cq7ej"]
[ext_resource type="Texture2D" uid="uid://c078jrp2yvc4s" path="res://characters/slime/slime_face.png" id="2_ygydt"]
[ext_resource type="Texture2D" uid="uid://btbxea1f3vwot" path="res://characters/slime/slime_body_hurt.png" id="4_0qu0c"]
[ext_resource type="Texture2D" uid="uid://cai2ijnbypqtr" path="res://characters/slime/slime_hurt_eyes.png" id="4_hi70h"]
[sub_resource type="Animation" id="Animation_y4lve"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Anchor/Face:position:y")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [-25.0]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Anchor/SlimeBody:scale")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(1, 1)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Anchor:position:y")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Anchor/Face/SlimeFace:texture")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [ExtResource("2_ygydt")]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Anchor:scale")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(1, 1)]
}
[sub_resource type="Animation" id="Animation_lu163"]
resource_name = "hurt"
length = 0.2
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Anchor/Face/SlimeFace:texture")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.2),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [ExtResource("4_hi70h"), ExtResource("2_ygydt")]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Anchor/Face:position:y")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [-25.0, -35.0]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Anchor:scale")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2),
"transitions": PackedFloat32Array(-2, -2, -2),
"update": 0,
"values": [Vector2(1, 1), Vector2(1.2, 1.2), Vector2(1, 1)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Anchor/SlimeBody/SlimeBodyHurt:modulate:a")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2),
"transitions": PackedFloat32Array(1, -2, 1),
"update": 0,
"values": [0.0, 1.0, 0.0]
}
[sub_resource type="Animation" id="Animation_71vdi"]
resource_name = "idle"
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Anchor/Face:position:y")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5, 1),
"transitions": PackedFloat32Array(-2, -2, -2),
"update": 0,
"values": [-28.0, -24.0, -28.0]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Anchor/SlimeBody:scale")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.5, 1),
"transitions": PackedFloat32Array(-2, -2, -2),
"update": 0,
"values": [Vector2(1, 1), Vector2(1.05, 0.95), Vector2(1, 1)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Anchor:position:y")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
[sub_resource type="Animation" id="Animation_l6fy2"]
resource_name = "walk"
length = 0.4
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Anchor:position:y")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.2, 0.4),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [0.0, -20.0, 0.0]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Anchor/SlimeBody:scale")
tracks/1/interp = 2
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0.1, 0.3, 0.5),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector2(0.9, 1.1), Vector2(1.1, 0.9), Vector2(0.9, 1.1)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Anchor/Face:position:y")
tracks/2/interp = 2
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0.1, 0.3, 0.5),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [-24.0, -28.0, -24.0]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_j6cum"]
_data = {
"RESET": SubResource("Animation_y4lve"),
"hurt": SubResource("Animation_lu163"),
"idle": SubResource("Animation_71vdi"),
"walk": SubResource("Animation_l6fy2")
}
[node name="Slime" type="Node2D"]
script = ExtResource("1_87y5x")
[node name="GroundShadow" type="Sprite2D" parent="."]
modulate = Color(0.898039, 0.878431, 0.831373, 1)
z_index = -1
z_as_relative = false
scale = Vector2(0.8, 0.8)
texture = ExtResource("1_cq7ej")
[node name="Anchor" type="Marker2D" parent="."]
[node name="SlimeBody" type="Sprite2D" parent="Anchor"]
texture = ExtResource("1_3j35h")
offset = Vector2(0, -36)
[node name="SlimeBodyHurt" type="Sprite2D" parent="Anchor/SlimeBody"]
modulate = Color(1, 1, 1, 0)
texture = ExtResource("4_0qu0c")
offset = Vector2(0, -36)
[node name="Face" type="Marker2D" parent="Anchor"]
position = Vector2(0, -25)
[node name="SlimeFace" type="Sprite2D" parent="Anchor/Face"]
texture = ExtResource("2_ygydt")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
unique_name_in_owner = true
libraries = {
"": SubResource("AnimationLibrary_j6cum")
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dvgfmy6vtvjji"
path="res://.godot/imported/slime_body.png-0d515f9e912a0d42a36c28f828394f6a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://characters/slime/slime_body.png"
dest_files=["res://.godot/imported/slime_body.png-0d515f9e912a0d42a36c28f828394f6a.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://btbxea1f3vwot"
path="res://.godot/imported/slime_body_hurt.png-3f38b75e5ebee1f99a984b348a7e7f8b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://characters/slime/slime_body_hurt.png"
dest_files=["res://.godot/imported/slime_body_hurt.png-3f38b75e5ebee1f99a984b348a7e7f8b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 609 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c078jrp2yvc4s"
path="res://.godot/imported/slime_face.png-561a1f87b138570340118953f07aab21.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://characters/slime/slime_face.png"
dest_files=["res://.godot/imported/slime_face.png-561a1f87b138570340118953f07aab21.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cai2ijnbypqtr"
path="res://.godot/imported/slime_hurt_eyes.png-711256b4a2a47dcea723d274f00b4628.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://characters/slime/slime_hurt_eyes.png"
dest_files=["res://.godot/imported/slime_hurt_eyes.png-711256b4a2a47dcea723d274f00b4628.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

3
default_bus_layout.tres Normal file
View File

@ -0,0 +1,3 @@
[gd_resource type="AudioBusLayout" format=3 uid="uid://c0r1synmqj70v"]
[resource]

BIN
icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

34
icon.png.import Normal file
View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://i4cjdwy1kcoj"
path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://icon.png"
dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
pistol/impact/circle.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 806 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dn80eu1qs371v"
path="res://.godot/imported/circle.png-a2fa3270dee1c1c7e1cb0869903e82df.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://pistol/impact/circle.png"
dest_files=["res://.godot/imported/circle.png-a2fa3270dee1c1c7e1cb0869903e82df.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

10
pistol/impact/impact.gd Normal file
View File

@ -0,0 +1,10 @@
extends Node2D
@onready var sprite = %Sprite
func _ready():
var tween = create_tween().set_parallel(true).set_ease(Tween.EASE_OUT)
tween.tween_property(sprite, "scale", Vector2.ONE * 1.35, 0.3).from(Vector2.ONE * 0.6)
tween.tween_property(sprite, "modulate:a", 0.0, 0.15).set_delay(0.15)
tween.chain().tween_callback(queue_free)

13
pistol/impact/impact.tscn Normal file
View File

@ -0,0 +1,13 @@
[gd_scene load_steps=3 format=3 uid="uid://kcl4efkvrany"]
[ext_resource type="Script" path="res://pistol/impact/impact.gd" id="1_4vum2"]
[ext_resource type="Texture2D" uid="uid://dn80eu1qs371v" path="res://pistol/impact/circle.png" id="2_wp1di"]
[node name="Impact" type="Node2D"]
top_level = true
script = ExtResource("1_4vum2")
[node name="Sprite" type="Sprite2D" parent="."]
unique_name_in_owner = true
modulate = Color(1, 0.831373, 0.239216, 1)
texture = ExtResource("2_wp1di")

View File

@ -0,0 +1,11 @@
extends Node2D
@onready var sprite = %Sprite
func _ready():
var tween = create_tween().set_parallel(true).set_ease(Tween.EASE_OUT).set_trans(Tween.TRANS_BACK)
tween.tween_property(sprite, "position:x", 16.0, 0.25)
tween.tween_property(sprite, "scale", Vector2.ONE * 1.25, 0.25)
tween.tween_property(sprite, "modulate:a", 0.0, 0.25).set_delay(0.1)
tween.chain().tween_callback(queue_free)

Binary file not shown.

After

Width:  |  Height:  |  Size: 683 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://brgpjilf7s2ul"
path="res://.godot/imported/muzzle_flash.png-752b19c1a1a60c24eac6f205d487f2ea.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://pistol/muzzle_flash/muzzle_flash.png"
dest_files=["res://.godot/imported/muzzle_flash.png-752b19c1a1a60c24eac6f205d487f2ea.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@ -0,0 +1,12 @@
[gd_scene load_steps=3 format=3 uid="uid://c1b2kbuq1if08"]
[ext_resource type="Script" path="res://pistol/muzzle_flash/muzzle_flash.gd" id="1_wouey"]
[ext_resource type="Texture2D" uid="uid://brgpjilf7s2ul" path="res://pistol/muzzle_flash/muzzle_flash.png" id="2_6pgu4"]
[node name="MuzzleFlash" type="Node2D"]
script = ExtResource("1_wouey")
[node name="Sprite" type="Sprite2D" parent="."]
unique_name_in_owner = true
texture = ExtResource("2_6pgu4")
offset = Vector2(10, 0)

BIN
pistol/pistol.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

34
pistol/pistol.png.import Normal file
View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cswb5do8rrj7q"
path="res://.godot/imported/pistol.png-ccb9a9487ce225cdf094ad33c19c2ede.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://pistol/pistol.png"
dest_files=["res://.godot/imported/pistol.png-ccb9a9487ce225cdf094ad33c19c2ede.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
pistol/projectile.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 799 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dftkbqwsfd68r"
path="res://.godot/imported/projectile.png-e03ae856d530df914009475206433400.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://pistol/projectile.png"
dest_files=["res://.godot/imported/projectile.png-e03ae856d530df914009475206433400.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

124
project.godot Normal file
View File

@ -0,0 +1,124 @@
; 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=5
[Asset_Placer]
Settings/Preview_Perspective=2
Settings/Library_Save_File_Location=1
Shortcuts/Change_Placement_Plane_Position=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":71,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
],"script":null)
Shortcuts/Transform_Asset_Blueprint=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":69,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":82,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
],"script":null)
Shortcuts/Select_Previous_Asset=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
],"script":null)
Shortcuts/Select_Y_Z_Plane=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":90,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
],"script":null)
Shortcuts/Select_X_Z_Plane=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":88,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
],"script":null)
Shortcuts/Select_X_Y_Plane=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":67,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
],"script":null)
Shortcuts/Reset_Transform=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":69,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
],"script":null)
Shortcuts/Rotate_Asset_90_Degrees_Around_X=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":65,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
],"script":null)
Shortcuts/Rotate_Asset_90_Degrees_Around_Y=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":83,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
],"script":null)
Shortcuts/Rotate_Asset_90_Degrees_Around_Z=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":68,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
],"script":null)
Shortcuts/Flip_Asset_On_X_Axis=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":49,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
],"script":null)
Shortcuts/Flip_Asset_On_Y_Axis=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":50,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
],"script":null)
Shortcuts/Flip_Asset_On_Z_Axis=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":51,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
],"script":null)
Settings/Shortcut_Shift_Rotation_Step=45.0
Shortcuts/Rotate_Asset_Secondary_Step_Degrees_Around_X=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":65,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
],"script":null)
Shortcuts/Rotate_Asset_Secondary_Step_Degrees_Around_Y=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":83,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
],"script":null)
Shortcuts/Rotate_Asset_Secondary_Step_Degrees_Around_Z=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":68,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
],"script":null)
Shortcuts/Double_Snap_Step=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":true,"meta_pressed":false,"pressed":true,"keycode":4194320,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
],"script":null)
Shortcuts/Halve_Snap_Step=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":true,"meta_pressed":false,"pressed":true,"keycode":4194322,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
],"script":null)
Settings/Use_Shift_instead_of_Alt=false
Settings/Surface_Placement_Collision_Mask=4294967295
Settings/Show_Tooltips=true
[application]
config/name="Your First 2D Game With Godot 4: START (GDQuest)"
config/features=PackedStringArray("4.2", "Forward Plus")
config/icon="res://icon.png"
[display]
window/size/viewport_width=1920
window/size/viewport_height=1080
window/stretch/mode="viewport"
[dotnet]
project/assembly_name="Getting started with Godot 4"
[editor_plugins]
enabled=PackedStringArray("res://addons/colorpicker_presets/plugin.cfg")
[input]
move_left={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"echo":false,"script":null)
]
}
move_right={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"echo":false,"script":null)
]
}
move_up={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"echo":false,"script":null)
]
}
move_down={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"echo":false,"script":null)
]
}
[layer_names]
3d_physics/layer_2="player"
[rendering]
renderer/rendering_method="gl_compatibility"

Binary file not shown.

After

Width:  |  Height:  |  Size: 417 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cvmbm3sxj85fm"
path="res://.godot/imported/circle_32.png-ff53eadac5c62484a55afe7e47d5145f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://smoke_explosion/circle_32.png"
dest_files=["res://.godot/imported/circle_32.png-ff53eadac5c62484a55afe7e47d5145f.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@ -0,0 +1,8 @@
extends Node2D
func _ready():
%Smoke.material.set_shader_parameter("texture_offset", Vector2(randfn(0.0, 1.0), randfn(0.0, 1.0)))
%AnimationPlayer.play("explosion")
await %AnimationPlayer.animation_finished
queue_free()

View File

@ -0,0 +1,15 @@
shader_type canvas_item;
uniform sampler2D voronoi_sampler : repeat_enable;
uniform sampler2D edge_curve;
uniform float offset = 0.0;
uniform vec2 texture_offset = vec2(0.0);
uniform sampler2D color_gradient : source_color;
void fragment() {
float voronoi = 1.0 - texture(voronoi_sampler, UV * 0.25 + texture_offset).x;
float d = distance(UV, vec2(0.5)) * 2.0;
float n_smooth_d = (voronoi * offset) * texture(edge_curve, vec2(d, 0.0)).x;
COLOR.a *= step(0.5, n_smooth_d);
COLOR.rgb = texture(color_gradient, vec2(n_smooth_d, 0.0)).rgb;
}

View File

@ -0,0 +1,150 @@
[gd_scene load_steps=13 format=3 uid="uid://dhmhmrth6rdce"]
[ext_resource type="Shader" path="res://smoke_explosion/smoke_explosion.gdshader" id="1_bmef6"]
[ext_resource type="Script" path="res://smoke_explosion/smoke_explosion.gd" id="1_kb8ql"]
[sub_resource type="Gradient" id="Gradient_obal6"]
interpolation_mode = 1
offsets = PackedFloat32Array(0.105691, 0.7)
colors = PackedColorArray(0.878431, 0.878431, 0.878431, 1, 0.878431, 0.878431, 0.878431, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_mxd0d"]
gradient = SubResource("Gradient_obal6")
[sub_resource type="Curve" id="Curve_aov55"]
_data = [Vector2(0.752381, 1), 0.0, -4.03846, 0, 1, Vector2(1, 0), -4.03846, 0.0, 1, 0]
point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_p664q"]
texture_mode = 1
curve = SubResource("Curve_aov55")
[sub_resource type="FastNoiseLite" id="FastNoiseLite_ti4n0"]
noise_type = 2
fractal_octaves = 1
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_uji5e"]
seamless = true
noise = SubResource("FastNoiseLite_ti4n0")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_dssfe"]
resource_local_to_scene = true
shader = ExtResource("1_bmef6")
shader_parameter/offset = 2.0
shader_parameter/texture_offset = Vector2(0, 0)
shader_parameter/voronoi_sampler = SubResource("NoiseTexture2D_uji5e")
shader_parameter/edge_curve = SubResource("CurveTexture_p664q")
shader_parameter/color_gradient = SubResource("GradientTexture1D_mxd0d")
[sub_resource type="Animation" id="Animation_6fv2e"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Smoke:material:shader_parameter/offset")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [2.0]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Smoke:scale")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(1, 1)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Smoke:modulate")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(0.396078, 0.396078, 0.396078, 1)]
}
[sub_resource type="Animation" id="Animation_viyco"]
resource_name = "explosion"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Smoke:material:shader_parameter/offset")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.6),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [2.0, 0.0]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Smoke:scale")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.6),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(1, 1), Vector2(3, 3)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Smoke:modulate:a")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0.1, 0.6),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [1.0, 0.0]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_8msef"]
_data = {
"RESET": SubResource("Animation_6fv2e"),
"explosion": SubResource("Animation_viyco")
}
[node name="SmokeExplosion" type="Node2D"]
z_index = 10
script = ExtResource("1_kb8ql")
[node name="Smoke" type="ColorRect" parent="."]
unique_name_in_owner = true
modulate = Color(0.396078, 0.396078, 0.396078, 1)
material = SubResource("ShaderMaterial_dssfe")
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -64.0
offset_top = -64.0
offset_right = 64.0
offset_bottom = 64.0
grow_horizontal = 2
grow_vertical = 2
pivot_offset = Vector2(64, 64)
color = Color(0.568627, 0.568627, 0.568627, 1)
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
unique_name_in_owner = true
autoplay = "RESET"
libraries = {
"": SubResource("AnimationLibrary_8msef")
}

BIN
trees/pine_tree.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://caqfk2xng5v5u"
path="res://.godot/imported/pine_tree.png-d61929395d8fbd7dd9882891dc69101d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://trees/pine_tree.png"
dest_files=["res://.godot/imported/pine_tree.png-d61929395d8fbd7dd9882891dc69101d.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1