tutorial level; rolltime indicator
7
board.gd
|
@ -48,7 +48,6 @@ func any_at(pos: Vector2i, filter: Callable) -> bool:
|
|||
func type_at(pos: Vector2i, type: Piece.Type) -> Piece:
|
||||
return find_piece_at(pos, func(p): return p.type == type)
|
||||
|
||||
# TODO: ball collisions
|
||||
func solid_at(pos: Vector2i) -> bool:
|
||||
return any_at(pos, func(p): return p.type == Piece.Type.Wall or p.type == Piece.Type.Ball or p.type == Piece.Type.Player)
|
||||
|
||||
|
@ -65,6 +64,12 @@ func add_pieces(piece: Array[Piece]):
|
|||
for p in piece:
|
||||
add_piece(p)
|
||||
|
||||
func player() -> Piece:
|
||||
for piece in pieces():
|
||||
if piece.type == Piece.Type.Player:
|
||||
return piece
|
||||
return null
|
||||
|
||||
var last_tween: Tween = null
|
||||
|
||||
func finish_tween():
|
||||
|
|
25
level/player_barrier_01.gd
Normal file
|
@ -0,0 +1,25 @@
|
|||
extends Board
|
||||
|
||||
var ball: Piece
|
||||
var goal: Piece
|
||||
func _ready() -> void:
|
||||
for piece in pieces():
|
||||
if piece.type == Piece.Type.Ball:
|
||||
ball = piece
|
||||
if piece.type == Piece.Type.Goal:
|
||||
goal = piece
|
||||
super()
|
||||
|
||||
func won() -> bool:
|
||||
return ball.lpos + ball.lvel == goal.lpos
|
||||
|
||||
func good() -> bool:
|
||||
return (ball.lpos.x == 2 and ball.lvel.x <= 3) or won()
|
||||
|
||||
func _process(_delta: float) -> void:
|
||||
$Move.visible = player().lpos.y != 1 and good() and not won()
|
||||
$Push.visible = player().lpos.y == 1 and good() and not won()
|
||||
$Undo.visible = not good()
|
||||
$Wait.visible = won()
|
||||
|
||||
$ControlsMove.visible = $Move.visible or $Push.visible
|
1
level/player_barrier_01.gd.uid
Normal file
|
@ -0,0 +1 @@
|
|||
uid://b810s7nmn58xc
|
|
@ -1,14 +1,21 @@
|
|||
[gd_scene load_steps=7 format=3 uid="uid://dl5w8rbk60gwm"]
|
||||
[gd_scene load_steps=14 format=3 uid="uid://dl5w8rbk60gwm"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://c8ywa33v3jq7t" path="res://board.gd" id="1_tgj2k"]
|
||||
[ext_resource type="Script" uid="uid://b810s7nmn58xc" path="res://level/player_barrier_01.gd" id="1_s4for"]
|
||||
[ext_resource type="PackedScene" uid="uid://bkaa4sl1n2f5w" path="res://piece/wall.tscn" id="2_s4for"]
|
||||
[ext_resource type="PackedScene" uid="uid://bghr6ew34loyb" path="res://piece/ball.tscn" id="3_pphtv"]
|
||||
[ext_resource type="PackedScene" uid="uid://cnjmu3qesbndk" path="res://piece/player.tscn" id="4_lac8a"]
|
||||
[ext_resource type="PackedScene" uid="uid://uf8vnylfqal1" path="res://piece/goal.tscn" id="5_p20hb"]
|
||||
[ext_resource type="PackedScene" uid="uid://bxgv16ue166pp" path="res://piece/player_barrier.tscn" id="6_s4for"]
|
||||
[ext_resource type="Texture2D" uid="uid://c05eohxftv8ik" path="res://ui/tutorial/controls-move.png" id="7_pphtv"]
|
||||
[ext_resource type="Texture2D" uid="uid://bx2w4iba3aed6" path="res://ui/tutorial/move.png" id="8_lac8a"]
|
||||
[ext_resource type="Texture2D" uid="uid://7aj3ilj87fha" path="res://ui/tutorial/push.png" id="9_p20hb"]
|
||||
[ext_resource type="Texture2D" uid="uid://gysr2704m0u0" path="res://ui/tutorial/undo.png" id="10_er5tk"]
|
||||
[ext_resource type="Texture2D" uid="uid://cfky5x4dk210f" path="res://ui/tutorial/wait.png" id="11_ci1ry"]
|
||||
[ext_resource type="Texture2D" uid="uid://cx3usiaoto6wd" path="res://ui/tutorial/controls-undo.png" id="11_qyynt"]
|
||||
[ext_resource type="Texture2D" uid="uid://bpv5ll4mvchhn" path="res://ui/tutorial/controls-wait.png" id="12_vfclq"]
|
||||
|
||||
[node name="Level1" type="Node3D"]
|
||||
script = ExtResource("1_tgj2k")
|
||||
script = ExtResource("1_s4for")
|
||||
metadata/_custom_type_script = "uid://c8ywa33v3jq7t"
|
||||
|
||||
[node name="Wall" parent="." instance=ExtResource("2_s4for")]
|
||||
|
@ -32,25 +39,25 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.5, 0.6, 0.5)
|
|||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.5, 0.6, 0.5)
|
||||
|
||||
[node name="Wall10" parent="." instance=ExtResource("2_s4for")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.600054, 4.5)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.600054, 5.5)
|
||||
|
||||
[node name="Wall11" parent="." instance=ExtResource("2_s4for")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0.6, 4.5)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0.6, 5.5)
|
||||
|
||||
[node name="Wall12" parent="." instance=ExtResource("2_s4for")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0.6, 4.5)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0.6, 5.5)
|
||||
|
||||
[node name="Wall13" parent="." instance=ExtResource("2_s4for")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.5, 0.6, 4.5)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.5, 0.6, 5.5)
|
||||
|
||||
[node name="Wall14" parent="." instance=ExtResource("2_s4for")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.6, 4.5)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.6, 5.5)
|
||||
|
||||
[node name="Wall15" parent="." instance=ExtResource("2_s4for")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.5, 0.6, 4.5)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.5, 0.6, 5.5)
|
||||
|
||||
[node name="Wall16" parent="." instance=ExtResource("2_s4for")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.5, 0.6, 4.5)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.5, 0.6, 5.5)
|
||||
|
||||
[node name="Wall8" parent="." instance=ExtResource("2_s4for")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.5, 0.6, 1.5)
|
||||
|
@ -59,14 +66,20 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.5, 0.6, 1.5)
|
|||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.5, 0.6, 2.5)
|
||||
|
||||
[node name="Wall17" parent="." instance=ExtResource("2_s4for")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.5, 0.6, 3.5)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.5, 0.6, 4.5)
|
||||
|
||||
[node name="Wall23" parent="." instance=ExtResource("2_s4for")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.6, 2.5)
|
||||
|
||||
[node name="Wall25" parent="." instance=ExtResource("2_s4for")]
|
||||
[node name="Wall18" parent="." instance=ExtResource("2_s4for")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.5, 0.6, 3.5)
|
||||
|
||||
[node name="Wall26" parent="." instance=ExtResource("2_s4for")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.6, 3.5)
|
||||
|
||||
[node name="Wall25" parent="." instance=ExtResource("2_s4for")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.6, 4.5)
|
||||
|
||||
[node name="Wall24" parent="." instance=ExtResource("2_s4for")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.6, 1.5)
|
||||
|
||||
|
@ -74,17 +87,21 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.6, 1.5)
|
|||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0.3, 1.5)
|
||||
|
||||
[node name="Player" parent="." instance=ExtResource("4_lac8a")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 1, 1.5)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 1, 3.5)
|
||||
|
||||
[node name="Goal2" parent="." instance=ExtResource("5_p20hb")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.5, 0, 1.5)
|
||||
|
||||
[node name="PlayerBarrier" parent="." instance=ExtResource("6_s4for")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0.5, 3.5)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0.5, 4.5)
|
||||
|
||||
[node name="PlayerBarrier2" parent="." instance=ExtResource("6_s4for")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0.5, 2.5)
|
||||
|
||||
[node name="PlayerBarrier6" parent="." instance=ExtResource("6_s4for")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0.5, 3.5)
|
||||
type = 0
|
||||
|
||||
[node name="PlayerBarrier3" parent="." instance=ExtResource("6_s4for")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.5, 0.5, 1.5)
|
||||
|
||||
|
@ -92,4 +109,37 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.5, 0.5, 1.5)
|
|||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.5, 0.5, 2.5)
|
||||
|
||||
[node name="PlayerBarrier5" parent="." instance=ExtResource("6_s4for")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0.5, 3.5)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0.5, 4.5)
|
||||
|
||||
[node name="ControlsMove" type="Sprite2D" parent="."]
|
||||
texture_filter = 1
|
||||
position = Vector2(194, 426)
|
||||
texture = ExtResource("7_pphtv")
|
||||
|
||||
[node name="Move" type="Sprite2D" parent="."]
|
||||
texture_filter = 1
|
||||
position = Vector2(187, 228)
|
||||
texture = ExtResource("8_lac8a")
|
||||
|
||||
[node name="Push" type="Sprite2D" parent="."]
|
||||
texture_filter = 1
|
||||
position = Vector2(193, 224)
|
||||
texture = ExtResource("9_p20hb")
|
||||
|
||||
[node name="Undo" type="Sprite2D" parent="."]
|
||||
texture_filter = 1
|
||||
position = Vector2(189, 233)
|
||||
texture = ExtResource("10_er5tk")
|
||||
|
||||
[node name="ControlsUndo" type="Sprite2D" parent="Undo"]
|
||||
position = Vector2(13, 196)
|
||||
texture = ExtResource("11_qyynt")
|
||||
|
||||
[node name="Wait" type="Sprite2D" parent="."]
|
||||
texture_filter = 1
|
||||
position = Vector2(192, 232)
|
||||
texture = ExtResource("11_ci1ry")
|
||||
|
||||
[node name="ControlsWait" type="Sprite2D" parent="Wait"]
|
||||
position = Vector2(8, 201)
|
||||
texture = ExtResource("12_vfclq")
|
||||
|
|
19
main.gd
|
@ -6,6 +6,7 @@ extends Node3D
|
|||
# we lose some sokobanness, but is that a bad thing?
|
||||
|
||||
@onready var camera: Camera3D = $Camera
|
||||
@onready var rolltime_indicator: Sprite2D = $RolltimeIndicator
|
||||
|
||||
# TODO: wall that player cannot go through but balls can
|
||||
# (important)
|
||||
|
@ -16,13 +17,7 @@ var player: Piece
|
|||
var level_num := -1
|
||||
# TODO: instead of dumb numbered levels, GIVE THEM GOOD NAMES AND MANUALLY ORDER THEM!
|
||||
var levels: Array[PackedScene] = [
|
||||
#preload("res://level/test_nightmare_mini.tscn"),
|
||||
#preload("res://level/test_nightmare.tscn"),
|
||||
#preload("res://level/level_00.tscn"),
|
||||
#preload("res://level/level_01.tscn"),
|
||||
#preload("res://level/level_02.tscn"),
|
||||
#preload("res://level/level_03.tscn"),
|
||||
#preload("res://level/level_04.tscn"),
|
||||
preload("res://level/player_barrier_01.tscn"),
|
||||
]
|
||||
|
||||
# TODO: sun movement takes exactly as much time as all piece movement
|
||||
|
@ -45,8 +40,7 @@ func _process(delta: float) -> void:
|
|||
$RedoButton.disabled = not hist.has_redo()
|
||||
$RestartButton.disabled = not hist.has_undo()
|
||||
# TODO: make this toggleable
|
||||
$Clock.text = "T = %d\n%d FPS\n%f hold time\n%f arrf" % \
|
||||
[time, Engine.get_frames_per_second(), move_hold_time, arrf(move_hold_time)]
|
||||
$Clock.text = "T = %d" % time
|
||||
var slowmo := Input.is_action_pressed("slowmo");
|
||||
$SlowmoIndicator.text = "slowmo" if slowmo else ""
|
||||
# TODO: only slowmo during rolltime?
|
||||
|
@ -126,7 +120,10 @@ func board_step():
|
|||
last_sun_tween.custom_step(413)
|
||||
last_sun_tween.kill()
|
||||
var tween := get_tree().create_tween()
|
||||
|
||||
tween.tween_property($Sun, "rotation_degrees:y", -15*time, anim_time)
|
||||
tween.parallel().tween_property(rolltime_indicator, "modulate:a", 0.15, 0.07)
|
||||
tween.tween_property(rolltime_indicator, "modulate:a", 0, 0.1)
|
||||
last_sun_tween = tween
|
||||
)
|
||||
hist.add_undo_property(self, "time", time)
|
||||
|
@ -200,9 +197,7 @@ func advance_level():
|
|||
if board: board.queue_free()
|
||||
board = levels[level_num].instantiate()
|
||||
add_child(board)
|
||||
for piece in board.pieces():
|
||||
if piece.type == Piece.Type.Player:
|
||||
player = piece
|
||||
player = board.player()
|
||||
$TopLeft.aabb = board.top_left_aabb()
|
||||
$BottomRight.aabb = board.bottom_right_aabb()
|
||||
var center := (board.top_left_aabb().position + board.bottom_right_aabb().position)/2
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
[gd_scene load_steps=14 format=3 uid="uid://lrk2whqxl0w0"]
|
||||
[gd_scene load_steps=15 format=3 uid="uid://lrk2whqxl0w0"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://c707s0tgd88pg" path="res://main.gd" id="1_ig7tw"]
|
||||
[ext_resource type="Texture2D" uid="uid://crahyipmcudoy" path="res://ui/undo.png" id="3_lquwl"]
|
||||
[ext_resource type="Texture2D" uid="uid://dyj5el5iro1cb" path="res://ui/redo.png" id="4_7mycd"]
|
||||
[ext_resource type="Texture2D" uid="uid://cbb1q0usxd6ex" path="res://ui/restart.png" id="5_272bh"]
|
||||
[ext_resource type="Shader" uid="uid://c7e17bwc7nrgt" path="res://ground.gdshader" id="5_lquwl"]
|
||||
[ext_resource type="Texture2D" uid="uid://q6x7t05nx1d1" path="res://ui/rolltime-indicator.png" id="6_7mycd"]
|
||||
|
||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_1bvp3"]
|
||||
sky_top_color = Color(0.467272, 0.753409, 0.87431, 1)
|
||||
|
@ -121,6 +122,11 @@ vertical_alignment = 1
|
|||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.01, 0)
|
||||
mesh = SubResource("PlaneMesh_1bvp3")
|
||||
|
||||
[node name="RolltimeIndicator" type="Sprite2D" parent="."]
|
||||
modulate = Color(1, 1, 1, 0)
|
||||
texture = ExtResource("6_7mycd")
|
||||
centered = false
|
||||
|
||||
[connection signal="pressed" from="UndoButton" to="." method="undo"]
|
||||
[connection signal="pressed" from="RedoButton" to="." method="redo"]
|
||||
[connection signal="pressed" from="RestartButton" to="." method="restart"]
|
||||
|
|
|
@ -101,6 +101,7 @@ wait={
|
|||
"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":46,"key_label":0,"unicode":46,"location":0,"echo":false,"script":null)
|
||||
, 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":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":1,"pressure":0.0,"pressed":true,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":10,"pressure":0.0,"pressed":false,"script":null)
|
||||
]
|
||||
}
|
||||
slowmo={
|
||||
|
|
BIN
ui/rolltime-indicator.png
Normal file
After Width: | Height: | Size: 13 KiB |
34
ui/rolltime-indicator.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://q6x7t05nx1d1"
|
||||
path="res://.godot/imported/rolltime-indicator.png-c5c14c2983b8a33e9ca19f04385a0157.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://ui/rolltime-indicator.png"
|
||||
dest_files=["res://.godot/imported/rolltime-indicator.png-c5c14c2983b8a33e9ca19f04385a0157.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
ui/tutorial/controls-move.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
34
ui/tutorial/controls-move.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c05eohxftv8ik"
|
||||
path="res://.godot/imported/controls-move.png-72d64749d55c53a63ce5349e6dd99e86.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://ui/tutorial/controls-move.png"
|
||||
dest_files=["res://.godot/imported/controls-move.png-72d64749d55c53a63ce5349e6dd99e86.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
ui/tutorial/controls-undo.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
34
ui/tutorial/controls-undo.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cx3usiaoto6wd"
|
||||
path="res://.godot/imported/controls-undo.png-f24ce79a7dbea319702caa15080e21d5.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://ui/tutorial/controls-undo.png"
|
||||
dest_files=["res://.godot/imported/controls-undo.png-f24ce79a7dbea319702caa15080e21d5.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
ui/tutorial/controls-wait.png
Normal file
After Width: | Height: | Size: 5.3 KiB |
34
ui/tutorial/controls-wait.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bpv5ll4mvchhn"
|
||||
path="res://.godot/imported/controls-wait.png-ac0f3e63ac7a42cd07d2d631e25da4dc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://ui/tutorial/controls-wait.png"
|
||||
dest_files=["res://.godot/imported/controls-wait.png-ac0f3e63ac7a42cd07d2d631e25da4dc.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
ui/tutorial/move.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
34
ui/tutorial/move.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bx2w4iba3aed6"
|
||||
path="res://.godot/imported/move.png-cb9fa542bbd32443e1b1eec2d0591dfc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://ui/tutorial/move.png"
|
||||
dest_files=["res://.godot/imported/move.png-cb9fa542bbd32443e1b1eec2d0591dfc.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
ui/tutorial/push.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
34
ui/tutorial/push.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://7aj3ilj87fha"
|
||||
path="res://.godot/imported/push.png-89a57858aa45d81381eed76203ffc81e.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://ui/tutorial/push.png"
|
||||
dest_files=["res://.godot/imported/push.png-89a57858aa45d81381eed76203ffc81e.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
ui/tutorial/undo.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
34
ui/tutorial/undo.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://gysr2704m0u0"
|
||||
path="res://.godot/imported/undo.png-297b9e53eb44f784edb79bfed9a1926b.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://ui/tutorial/undo.png"
|
||||
dest_files=["res://.godot/imported/undo.png-297b9e53eb44f784edb79bfed9a1926b.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
ui/tutorial/wait.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
34
ui/tutorial/wait.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cfky5x4dk210f"
|
||||
path="res://.godot/imported/wait.png-53da4992d753d0e522cd3735ef23f95e.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://ui/tutorial/wait.png"
|
||||
dest_files=["res://.godot/imported/wait.png-53da4992d753d0e522cd3735ef23f95e.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
|