scene-based levels edited in godot
This commit is contained in:
parent
f2a427916c
commit
20a708651f
16 changed files with 424 additions and 117 deletions
40
board.gd
40
board.gd
|
|
@ -1,20 +1,19 @@
|
||||||
class_name Board
|
class_name Board
|
||||||
extends Node3D
|
extends Node3D
|
||||||
|
|
||||||
@export var dims: Vector2i
|
var dims: Vector2i
|
||||||
|
|
||||||
# idea: board has very little logic, delegates to something else
|
func _ready():
|
||||||
# l8r tho
|
for piece in pieces():
|
||||||
|
dims.x = max(dims.x, piece.lpos.x)
|
||||||
# literally just linearly search to find pieces at a position
|
dims.y = max(dims.y, piece.lpos.y)
|
||||||
# children
|
|
||||||
|
|
||||||
# for zooming out to see the whole puzzle
|
# for zooming out to see the whole puzzle
|
||||||
func top_left_aabb() -> AABB:
|
func top_left_aabb() -> AABB:
|
||||||
return AABB(position-Vector3(1,0,1), Vector3.ONE*0.1)
|
return AABB(position-Vector3(1,0,1), Vector3.ONE*0.1)
|
||||||
|
|
||||||
func bottom_right_aabb() -> AABB:
|
func bottom_right_aabb() -> AABB:
|
||||||
return AABB(position + Vector3(dims.x, 0, dims.y), Vector3.ONE*0.1)
|
return AABB(position + Vector3(dims.x, 0, dims.y) + Vector3(1,0,2), Vector3.ONE*0.1)
|
||||||
|
|
||||||
# todo: Array[Piece]
|
# todo: Array[Piece]
|
||||||
func pieces() -> Array:
|
func pieces() -> Array:
|
||||||
|
|
@ -57,33 +56,6 @@ func add_pieces(piece: Array[Piece]):
|
||||||
for p in piece:
|
for p in piece:
|
||||||
add_piece(p)
|
add_piece(p)
|
||||||
|
|
||||||
static func from_string(src: String) -> Board:
|
|
||||||
var lines := src.lstrip("\n").rstrip("\n").split("\n")
|
|
||||||
|
|
||||||
var width := 0
|
|
||||||
for line in lines:
|
|
||||||
width = max(width, line.length())
|
|
||||||
|
|
||||||
var dims := Vector2i(width, lines.size())
|
|
||||||
|
|
||||||
var board := Board.new()
|
|
||||||
board.dims = dims
|
|
||||||
|
|
||||||
for y in range(lines.size()):
|
|
||||||
var line := lines[y]
|
|
||||||
for x in range(line.length()):
|
|
||||||
var c := line[x]
|
|
||||||
var pos := Vector2i(x, y)
|
|
||||||
match c:
|
|
||||||
".": board.add_piece(Piece.goal(pos))
|
|
||||||
"+": board.add_pieces([Piece.goal(pos), Piece.player(pos)])
|
|
||||||
"o": board.add_piece(Piece.ball(pos))
|
|
||||||
"O": assert(false)
|
|
||||||
"@": board.add_piece(Piece.player(pos))
|
|
||||||
"#": board.add_piece(Piece.wall(pos))
|
|
||||||
"_": board.add_piece(Piece.floor_ice(pos))
|
|
||||||
return board
|
|
||||||
|
|
||||||
func do_step():
|
func do_step():
|
||||||
for piece in pieces():
|
for piece in pieces():
|
||||||
piece.do_step(self)
|
piece.do_step(self)
|
||||||
|
|
|
||||||
97
level/level_00.tscn
Normal file
97
level/level_00.tscn
Normal file
|
|
@ -0,0 +1,97 @@
|
||||||
|
[gd_scene load_steps=6 format=3 uid="uid://de1snxsqng03d"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://c8ywa33v3jq7t" path="res://board.gd" id="1_4ytxd"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bkaa4sl1n2f5w" path="res://piece/wall.tscn" id="2_hctjl"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bghr6ew34loyb" path="res://piece/ball.tscn" id="3_cvw8f"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cnjmu3qesbndk" path="res://piece/player.tscn" id="4_b7tgh"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://uf8vnylfqal1" path="res://piece/goal.tscn" id="5_p5icy"]
|
||||||
|
|
||||||
|
[node name="Level1" type="Node3D"]
|
||||||
|
script = ExtResource("1_4ytxd")
|
||||||
|
metadata/_custom_type_script = "uid://c8ywa33v3jq7t"
|
||||||
|
|
||||||
|
[node name="Wall" parent="." instance=ExtResource("2_hctjl")]
|
||||||
|
|
||||||
|
[node name="Wall2" parent="." instance=ExtResource("2_hctjl")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0.6, 0.5)
|
||||||
|
|
||||||
|
[node name="Wall3" parent="." instance=ExtResource("2_hctjl")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0.6, 0.5)
|
||||||
|
|
||||||
|
[node name="Wall4" parent="." instance=ExtResource("2_hctjl")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.5, 0.6, 0.5)
|
||||||
|
|
||||||
|
[node name="Wall5" parent="." instance=ExtResource("2_hctjl")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.6, 0.5)
|
||||||
|
|
||||||
|
[node name="Wall6" parent="." instance=ExtResource("2_hctjl")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.5, 0.6, 0.5)
|
||||||
|
|
||||||
|
[node name="Wall7" parent="." instance=ExtResource("2_hctjl")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.5, 0.6, 0.5)
|
||||||
|
|
||||||
|
[node name="Wall8" parent="." instance=ExtResource("2_hctjl")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.5, 0.6, 1.5)
|
||||||
|
|
||||||
|
[node name="Wall9" parent="." instance=ExtResource("2_hctjl")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.5, 0.6, 2.5)
|
||||||
|
|
||||||
|
[node name="Wall10" parent="." instance=ExtResource("2_hctjl")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.5, 0.6, 3.5)
|
||||||
|
|
||||||
|
[node name="Wall11" parent="." instance=ExtResource("2_hctjl")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.5, 0.6, 3.5)
|
||||||
|
|
||||||
|
[node name="Wall12" parent="." instance=ExtResource("2_hctjl")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.6, 3.5)
|
||||||
|
|
||||||
|
[node name="Wall13" parent="." instance=ExtResource("2_hctjl")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.6, 4.5)
|
||||||
|
|
||||||
|
[node name="Wall14" parent="." instance=ExtResource("2_hctjl")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.6, 5.5)
|
||||||
|
|
||||||
|
[node name="Wall15" parent="." instance=ExtResource("2_hctjl")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.6, 6.5)
|
||||||
|
|
||||||
|
[node name="Wall16" parent="." instance=ExtResource("2_hctjl")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.5, 0.6, 6.5)
|
||||||
|
|
||||||
|
[node name="Wall17" parent="." instance=ExtResource("2_hctjl")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0.6, 6.5)
|
||||||
|
|
||||||
|
[node name="Wall18" parent="." instance=ExtResource("2_hctjl")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0.6, 6.5)
|
||||||
|
|
||||||
|
[node name="Wall19" parent="." instance=ExtResource("2_hctjl")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.6, 6.5)
|
||||||
|
|
||||||
|
[node name="Wall20" parent="." instance=ExtResource("2_hctjl")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.6, 5.5)
|
||||||
|
|
||||||
|
[node name="Wall21" parent="." instance=ExtResource("2_hctjl")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.6, 4.5)
|
||||||
|
|
||||||
|
[node name="Wall22" parent="." instance=ExtResource("2_hctjl")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.6, 3.5)
|
||||||
|
|
||||||
|
[node name="Wall23" parent="." instance=ExtResource("2_hctjl")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.6, 2.5)
|
||||||
|
|
||||||
|
[node name="Wall24" parent="." instance=ExtResource("2_hctjl")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.6, 1.5)
|
||||||
|
|
||||||
|
[node name="Ball" parent="." instance=ExtResource("3_cvw8f")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.3, 2.5)
|
||||||
|
|
||||||
|
[node name="Ball2" parent="." instance=ExtResource("3_cvw8f")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0.3, 3.5)
|
||||||
|
|
||||||
|
[node name="Player" parent="." instance=ExtResource("4_b7tgh")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 1, 2.5)
|
||||||
|
|
||||||
|
[node name="Goal" parent="." instance=ExtResource("5_p5icy")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0, 5.5)
|
||||||
|
|
||||||
|
[node name="Goal2" parent="." instance=ExtResource("5_p5icy")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.5, 0, 2.5)
|
||||||
101
level/level_01.tscn
Normal file
101
level/level_01.tscn
Normal file
|
|
@ -0,0 +1,101 @@
|
||||||
|
[gd_scene load_steps=7 format=3 uid="uid://crka6v44sy30g"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://c8ywa33v3jq7t" path="res://board.gd" id="1_ij31a"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bkaa4sl1n2f5w" path="res://piece/wall.tscn" id="2_v6ry1"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bghr6ew34loyb" path="res://piece/ball.tscn" id="3_y6g1l"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cnjmu3qesbndk" path="res://piece/player.tscn" id="4_dqkq3"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://uf8vnylfqal1" path="res://piece/goal.tscn" id="5_rvgtg"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cyi67vbw8e0iy" path="res://piece/floor_ice.tscn" id="6_v6ry1"]
|
||||||
|
|
||||||
|
[node name="Level1" type="Node3D"]
|
||||||
|
script = ExtResource("1_ij31a")
|
||||||
|
metadata/_custom_type_script = "uid://c8ywa33v3jq7t"
|
||||||
|
|
||||||
|
[node name="Wall" parent="." instance=ExtResource("2_v6ry1")]
|
||||||
|
|
||||||
|
[node name="Wall2" parent="." instance=ExtResource("2_v6ry1")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0.6, 0.5)
|
||||||
|
|
||||||
|
[node name="Wall3" parent="." instance=ExtResource("2_v6ry1")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0.6, 0.5)
|
||||||
|
|
||||||
|
[node name="Wall4" parent="." instance=ExtResource("2_v6ry1")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.5, 0.6, 0.5)
|
||||||
|
|
||||||
|
[node name="Wall5" parent="." instance=ExtResource("2_v6ry1")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.6, 0.5)
|
||||||
|
|
||||||
|
[node name="Wall6" parent="." instance=ExtResource("2_v6ry1")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.5, 0.6, 0.5)
|
||||||
|
|
||||||
|
[node name="Wall7" parent="." instance=ExtResource("2_v6ry1")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.5, 0.6, 0.5)
|
||||||
|
|
||||||
|
[node name="Wall8" parent="." instance=ExtResource("2_v6ry1")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.5, 0.6, 1.5)
|
||||||
|
|
||||||
|
[node name="Wall9" parent="." instance=ExtResource("2_v6ry1")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.5, 0.6, 2.5)
|
||||||
|
|
||||||
|
[node name="Wall10" parent="." instance=ExtResource("2_v6ry1")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.5, 0.6, 3.5)
|
||||||
|
|
||||||
|
[node name="Wall11" parent="." instance=ExtResource("2_v6ry1")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.5, 0.6, 3.5)
|
||||||
|
|
||||||
|
[node name="Wall12" parent="." instance=ExtResource("2_v6ry1")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.6, 3.5)
|
||||||
|
|
||||||
|
[node name="Wall13" parent="." instance=ExtResource("2_v6ry1")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.6, 4.5)
|
||||||
|
|
||||||
|
[node name="Wall14" parent="." instance=ExtResource("2_v6ry1")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.6, 5.5)
|
||||||
|
|
||||||
|
[node name="Wall15" parent="." instance=ExtResource("2_v6ry1")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.6, 6.5)
|
||||||
|
|
||||||
|
[node name="Wall16" parent="." instance=ExtResource("2_v6ry1")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.5, 0.6, 6.5)
|
||||||
|
|
||||||
|
[node name="Wall17" parent="." instance=ExtResource("2_v6ry1")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0.6, 6.5)
|
||||||
|
|
||||||
|
[node name="Wall18" parent="." instance=ExtResource("2_v6ry1")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0.6, 6.5)
|
||||||
|
|
||||||
|
[node name="Wall19" parent="." instance=ExtResource("2_v6ry1")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.6, 6.5)
|
||||||
|
|
||||||
|
[node name="Wall20" parent="." instance=ExtResource("2_v6ry1")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.6, 5.5)
|
||||||
|
|
||||||
|
[node name="Wall21" parent="." instance=ExtResource("2_v6ry1")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.6, 4.5)
|
||||||
|
|
||||||
|
[node name="Wall22" parent="." instance=ExtResource("2_v6ry1")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.6, 3.5)
|
||||||
|
|
||||||
|
[node name="Wall23" parent="." instance=ExtResource("2_v6ry1")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.6, 2.5)
|
||||||
|
|
||||||
|
[node name="Wall24" parent="." instance=ExtResource("2_v6ry1")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.6, 1.5)
|
||||||
|
|
||||||
|
[node name="Ball" parent="." instance=ExtResource("3_y6g1l")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.3, 2.5)
|
||||||
|
|
||||||
|
[node name="Ball2" parent="." instance=ExtResource("3_y6g1l")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0.254827, 3.5)
|
||||||
|
|
||||||
|
[node name="Player" parent="." instance=ExtResource("4_dqkq3")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 1, 2.5)
|
||||||
|
|
||||||
|
[node name="Goal" parent="." instance=ExtResource("5_rvgtg")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0, 5.5)
|
||||||
|
|
||||||
|
[node name="Goal2" parent="." instance=ExtResource("5_rvgtg")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.5, 0, 2.5)
|
||||||
|
|
||||||
|
[node name="FloorIce" parent="." instance=ExtResource("6_v6ry1")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0, 4.5)
|
||||||
85
level/level_02.tscn
Normal file
85
level/level_02.tscn
Normal file
|
|
@ -0,0 +1,85 @@
|
||||||
|
[gd_scene load_steps=6 format=3 uid="uid://qwsvaao1ro8v"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://c8ywa33v3jq7t" path="res://board.gd" id="1_ijmwx"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bkaa4sl1n2f5w" path="res://piece/wall.tscn" id="2_0wnyk"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bghr6ew34loyb" path="res://piece/ball.tscn" id="3_eh72w"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cnjmu3qesbndk" path="res://piece/player.tscn" id="4_80pda"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://uf8vnylfqal1" path="res://piece/goal.tscn" id="5_pj7np"]
|
||||||
|
|
||||||
|
[node name="Level1" type="Node3D"]
|
||||||
|
script = ExtResource("1_ijmwx")
|
||||||
|
metadata/_custom_type_script = "uid://c8ywa33v3jq7t"
|
||||||
|
|
||||||
|
[node name="Wall" parent="." instance=ExtResource("2_0wnyk")]
|
||||||
|
|
||||||
|
[node name="Wall2" parent="." instance=ExtResource("2_0wnyk")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0.600054, 0.5)
|
||||||
|
|
||||||
|
[node name="Wall3" parent="." instance=ExtResource("2_0wnyk")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0.600054, 0.5)
|
||||||
|
|
||||||
|
[node name="Wall4" parent="." instance=ExtResource("2_0wnyk")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.5, 0.600054, 0.5)
|
||||||
|
|
||||||
|
[node name="Wall5" parent="." instance=ExtResource("2_0wnyk")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.600054, 0.5)
|
||||||
|
|
||||||
|
[node name="Wall13" parent="." instance=ExtResource("2_0wnyk")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.600054, 1.5)
|
||||||
|
|
||||||
|
[node name="Wall14" parent="." instance=ExtResource("2_0wnyk")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.600054, 2.5)
|
||||||
|
|
||||||
|
[node name="Wall16" parent="." instance=ExtResource("2_0wnyk")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.5, 0.600054, 2.5)
|
||||||
|
|
||||||
|
[node name="Wall17" parent="." instance=ExtResource("2_0wnyk")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.5, 0.600054, 3.5)
|
||||||
|
|
||||||
|
[node name="Wall18" parent="." instance=ExtResource("2_0wnyk")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.5, 0.600054, 4.5)
|
||||||
|
|
||||||
|
[node name="Wall19" parent="." instance=ExtResource("2_0wnyk")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.5, 0.600054, 5.5)
|
||||||
|
|
||||||
|
[node name="Wall20" parent="." instance=ExtResource("2_0wnyk")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.600054, 5.5)
|
||||||
|
|
||||||
|
[node name="Wall21" parent="." instance=ExtResource("2_0wnyk")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.5, 0.600054, 5.5)
|
||||||
|
|
||||||
|
[node name="Wall6" parent="." instance=ExtResource("2_0wnyk")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.600054, 4.5)
|
||||||
|
|
||||||
|
[node name="Wall9" parent="." instance=ExtResource("2_0wnyk")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.600054, 3.5)
|
||||||
|
|
||||||
|
[node name="Wall11" parent="." instance=ExtResource("2_0wnyk")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.600054, 2.5)
|
||||||
|
|
||||||
|
[node name="Wall12" parent="." instance=ExtResource("2_0wnyk")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.600054, 1.5)
|
||||||
|
|
||||||
|
[node name="Wall7" parent="." instance=ExtResource("2_0wnyk")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0.600054, 4.5)
|
||||||
|
|
||||||
|
[node name="Wall8" parent="." instance=ExtResource("2_0wnyk")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0.600054, 4.5)
|
||||||
|
|
||||||
|
[node name="Wall10" parent="." instance=ExtResource("2_0wnyk")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0.600054, 5.5)
|
||||||
|
|
||||||
|
[node name="Ball" parent="." instance=ExtResource("3_eh72w")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.5, 0.3, 4.5)
|
||||||
|
|
||||||
|
[node name="Ball2" parent="." instance=ExtResource("3_eh72w")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.3, 3.5)
|
||||||
|
|
||||||
|
[node name="Goal" parent="." instance=ExtResource("5_pj7np")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.057544, 4.5)
|
||||||
|
|
||||||
|
[node name="Ball3" parent="." instance=ExtResource("3_eh72w")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0.3, 2.5)
|
||||||
|
|
||||||
|
[node name="Player" parent="." instance=ExtResource("4_80pda")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 1, 1.5)
|
||||||
107
level/level_03.tscn
Normal file
107
level/level_03.tscn
Normal file
|
|
@ -0,0 +1,107 @@
|
||||||
|
[gd_scene load_steps=7 format=3 uid="uid://cx46h6v1oxnxr"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://c8ywa33v3jq7t" path="res://board.gd" id="1_6umy4"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bkaa4sl1n2f5w" path="res://piece/wall.tscn" id="2_4ebh2"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bghr6ew34loyb" path="res://piece/ball.tscn" id="3_yrd6d"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://uf8vnylfqal1" path="res://piece/goal.tscn" id="4_2agqu"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cnjmu3qesbndk" path="res://piece/player.tscn" id="5_ykc5s"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cyi67vbw8e0iy" path="res://piece/floor_ice.tscn" id="6_4ebh2"]
|
||||||
|
|
||||||
|
[node name="Level1" type="Node3D"]
|
||||||
|
script = ExtResource("1_6umy4")
|
||||||
|
metadata/_custom_type_script = "uid://c8ywa33v3jq7t"
|
||||||
|
|
||||||
|
[node name="Wall" parent="." instance=ExtResource("2_4ebh2")]
|
||||||
|
|
||||||
|
[node name="Wall21" parent="." instance=ExtResource("2_4ebh2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.600054, 1.5)
|
||||||
|
|
||||||
|
[node name="Wall2" parent="." instance=ExtResource("2_4ebh2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0.600054, 0.5)
|
||||||
|
|
||||||
|
[node name="Wall3" parent="." instance=ExtResource("2_4ebh2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0.600054, 0.5)
|
||||||
|
|
||||||
|
[node name="Wall4" parent="." instance=ExtResource("2_4ebh2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.5, 0.600054, 0.5)
|
||||||
|
|
||||||
|
[node name="Wall5" parent="." instance=ExtResource("2_4ebh2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.600054, 0.5)
|
||||||
|
|
||||||
|
[node name="Wall6" parent="." instance=ExtResource("2_4ebh2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.5, 0.600054, 0.5)
|
||||||
|
|
||||||
|
[node name="Wall7" parent="." instance=ExtResource("2_4ebh2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.5, 0.600054, 0.5)
|
||||||
|
|
||||||
|
[node name="Wall8" parent="." instance=ExtResource("2_4ebh2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, 0.600054, 0.5)
|
||||||
|
|
||||||
|
[node name="Wall9" parent="." instance=ExtResource("2_4ebh2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8.5, 0.600054, 0.5)
|
||||||
|
|
||||||
|
[node name="Wall10" parent="." instance=ExtResource("2_4ebh2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.5, 0.600054, 0.5)
|
||||||
|
|
||||||
|
[node name="Wall11" parent="." instance=ExtResource("2_4ebh2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.600054, 2.5)
|
||||||
|
|
||||||
|
[node name="Wall22" parent="." instance=ExtResource("2_4ebh2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.5, 0.600054, 0.5)
|
||||||
|
|
||||||
|
[node name="Wall23" parent="." instance=ExtResource("2_4ebh2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.5, 0.600054, 1.5)
|
||||||
|
|
||||||
|
[node name="Wall24" parent="." instance=ExtResource("2_4ebh2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.5, 0.600054, 2.5)
|
||||||
|
|
||||||
|
[node name="Wall12" parent="." instance=ExtResource("2_4ebh2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0.600054, 2.5)
|
||||||
|
|
||||||
|
[node name="Wall13" parent="." instance=ExtResource("2_4ebh2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0.600054, 2.5)
|
||||||
|
|
||||||
|
[node name="Wall14" parent="." instance=ExtResource("2_4ebh2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.5, 0.600054, 2.5)
|
||||||
|
|
||||||
|
[node name="Wall15" parent="." instance=ExtResource("2_4ebh2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.600054, 2.5)
|
||||||
|
|
||||||
|
[node name="Wall16" parent="." instance=ExtResource("2_4ebh2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.5, 0.600054, 2.5)
|
||||||
|
|
||||||
|
[node name="Wall17" parent="." instance=ExtResource("2_4ebh2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.5, 0.600054, 2.5)
|
||||||
|
|
||||||
|
[node name="Wall25" parent="." instance=ExtResource("2_4ebh2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.5, 0.600054, 0.5)
|
||||||
|
|
||||||
|
[node name="Wall26" parent="." instance=ExtResource("2_4ebh2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.5, 0.600054, 2.5)
|
||||||
|
|
||||||
|
[node name="Wall18" parent="." instance=ExtResource("2_4ebh2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, 0.600054, 2.5)
|
||||||
|
|
||||||
|
[node name="Wall19" parent="." instance=ExtResource("2_4ebh2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8.5, 0.600054, 2.5)
|
||||||
|
|
||||||
|
[node name="Wall20" parent="." instance=ExtResource("2_4ebh2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.5, 0.600054, 2.5)
|
||||||
|
|
||||||
|
[node name="Player" parent="." instance=ExtResource("5_ykc5s")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 1, 1.5)
|
||||||
|
|
||||||
|
[node name="Ball" parent="." instance=ExtResource("3_yrd6d")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0.3, 1.5)
|
||||||
|
|
||||||
|
[node name="Goal" parent="." instance=ExtResource("4_2agqu")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.5, 0.057544, 1.5)
|
||||||
|
|
||||||
|
[node name="Ball2" parent="." instance=ExtResource("3_yrd6d")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, 0.3, 1.5)
|
||||||
|
|
||||||
|
[node name="FloorIce" parent="." instance=ExtResource("6_4ebh2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8.5, 0, 1.5)
|
||||||
|
|
||||||
|
[node name="Goal2" parent="." instance=ExtResource("4_2agqu")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.5, 0.057544, 1.5)
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://de1snxsqng03d"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://c8ywa33v3jq7t" path="res://board.gd" id="1_lx8gb"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://bkaa4sl1n2f5w" path="res://piece/wall.tscn" id="2_lx8gb"]
|
|
||||||
|
|
||||||
[node name="Level1" type="Node3D"]
|
|
||||||
script = ExtResource("1_lx8gb")
|
|
||||||
metadata/_custom_type_script = "uid://c8ywa33v3jq7t"
|
|
||||||
|
|
||||||
[node name="Wall" parent="." instance=ExtResource("2_lx8gb")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0, 0.5)
|
|
||||||
50
levels.txt
50
levels.txt
|
|
@ -1,50 +0,0 @@
|
||||||
; legend:
|
|
||||||
; # - wall
|
|
||||||
; @ - player
|
|
||||||
; o - ball
|
|
||||||
; O - big ball (more momentum! l8r)
|
|
||||||
; . - goal
|
|
||||||
; space - default, rough floor (-1 dlvel)
|
|
||||||
; _ - ice (0 dlvel)
|
|
||||||
|
|
||||||
; cool idea for first two levels:
|
|
||||||
; first level just plays like slightly weird sokoban
|
|
||||||
; second level is the same layout but the *floor* is different
|
|
||||||
; TODO: multiple levels (could just be stacked on top)
|
|
||||||
; TODO: notation for ball on ice
|
|
||||||
; TODO: levels.gd
|
|
||||||
|
|
||||||
; 1
|
|
||||||
|
|
||||||
#######
|
|
||||||
# #
|
|
||||||
#@ o.#
|
|
||||||
# o ###
|
|
||||||
# #
|
|
||||||
# . #
|
|
||||||
#####
|
|
||||||
|
|
||||||
; 2
|
|
||||||
|
|
||||||
#######
|
|
||||||
# #
|
|
||||||
#@ o.#
|
|
||||||
# o ###
|
|
||||||
# _ #
|
|
||||||
# . #
|
|
||||||
#####
|
|
||||||
|
|
||||||
; 3 (diagonal movement should definitely be a sick twist for l8r)
|
|
||||||
|
|
||||||
#####
|
|
||||||
#@ #
|
|
||||||
# o ##
|
|
||||||
# o#
|
|
||||||
###o.#
|
|
||||||
####
|
|
||||||
|
|
||||||
; 4 pool
|
|
||||||
|
|
||||||
#############
|
|
||||||
# @ o. o_ . #
|
|
||||||
#############
|
|
||||||
26
main.gd
26
main.gd
|
|
@ -8,10 +8,15 @@ extends Node3D
|
||||||
@onready var camera: Camera3D = $Camera
|
@onready var camera: Camera3D = $Camera
|
||||||
|
|
||||||
var hist := UndoRedo.new()
|
var hist := UndoRedo.new()
|
||||||
@onready var board: Board = $Board
|
var board: Board
|
||||||
var player: Piece
|
var player: Piece
|
||||||
var level_num := 0
|
var level_num := -1
|
||||||
var levels_src: PackedStringArray
|
var levels: Array[PackedScene] = [
|
||||||
|
preload("res://level/level_00.tscn"),
|
||||||
|
preload("res://level/level_01.tscn"),
|
||||||
|
preload("res://level/level_02.tscn"),
|
||||||
|
preload("res://level/level_03.tscn"),
|
||||||
|
]
|
||||||
var time := 0
|
var time := 0
|
||||||
var advancing := false
|
var advancing := false
|
||||||
|
|
||||||
|
|
@ -21,8 +26,6 @@ var advancing := false
|
||||||
@onready var sounds_redo := audio_stream_randomizer_from_dir("res://sfx/redo")
|
@onready var sounds_redo := audio_stream_randomizer_from_dir("res://sfx/redo")
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
var file := FileAccess.open("res://levels.txt", FileAccess.READ)
|
|
||||||
levels_src = file.get_as_text().split("\n\n")
|
|
||||||
advance_level()
|
advance_level()
|
||||||
|
|
||||||
func _process(delta: float) -> void:
|
func _process(delta: float) -> void:
|
||||||
|
|
@ -132,24 +135,21 @@ func won() -> bool:
|
||||||
func advance_level():
|
func advance_level():
|
||||||
hist.clear_history()
|
hist.clear_history()
|
||||||
advancing = true
|
advancing = true
|
||||||
if level_num != 0:
|
if level_num >= 0:
|
||||||
print("level won")
|
print("level won")
|
||||||
await get_tree().create_timer(0.5).timeout
|
await get_tree().create_timer(0.5).timeout
|
||||||
advancing = false
|
advancing = false
|
||||||
time = 0
|
time = 0
|
||||||
level_num += 1
|
level_num += 1
|
||||||
if level_num >= levels_src.size():
|
if level_num >= levels.size():
|
||||||
print("you win")
|
print("you win")
|
||||||
return
|
return
|
||||||
while levels_src[level_num].contains(";") or ("@" not in levels_src[level_num] and "+" not in levels_src[level_num]):
|
if board: board.queue_free()
|
||||||
level_num += 1
|
board = levels[level_num].instantiate()
|
||||||
print(levels_src[level_num])
|
add_child(board)
|
||||||
board.queue_free()
|
|
||||||
board = Board.from_string(levels_src[level_num])
|
|
||||||
for piece in board.pieces():
|
for piece in board.pieces():
|
||||||
if piece.type == Piece.Type.Player:
|
if piece.type == Piece.Type.Player:
|
||||||
player = piece
|
player = piece
|
||||||
add_child(board)
|
|
||||||
$TopLeft.aabb = board.top_left_aabb()
|
$TopLeft.aabb = board.top_left_aabb()
|
||||||
$BottomRight.aabb = board.bottom_right_aabb()
|
$BottomRight.aabb = board.bottom_right_aabb()
|
||||||
var center := (board.top_left_aabb().position + board.bottom_right_aabb().position)/2
|
var center := (board.top_left_aabb().position + board.bottom_right_aabb().position)/2
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
[gd_scene load_steps=9 format=3 uid="uid://lrk2whqxl0w0"]
|
[gd_scene load_steps=8 format=3 uid="uid://lrk2whqxl0w0"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://c707s0tgd88pg" path="res://main.gd" id="1_ig7tw"]
|
[ext_resource type="Script" uid="uid://c707s0tgd88pg" path="res://main.gd" id="1_ig7tw"]
|
||||||
[ext_resource type="PackedScene" uid="uid://de1snxsqng03d" path="res://level/level_1.tscn" id="2_lquwl"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://crahyipmcudoy" path="res://ui/undo.png" id="3_lquwl"]
|
[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://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="Texture2D" uid="uid://cbb1q0usxd6ex" path="res://ui/restart.png" id="5_272bh"]
|
||||||
|
|
@ -20,8 +19,6 @@ ambient_light_color = Color(1, 1, 1, 1)
|
||||||
[node name="Main" type="Node3D"]
|
[node name="Main" type="Node3D"]
|
||||||
script = ExtResource("1_ig7tw")
|
script = ExtResource("1_ig7tw")
|
||||||
|
|
||||||
[node name="Board" parent="." instance=ExtResource("2_lquwl")]
|
|
||||||
|
|
||||||
[node name="Camera" type="Camera3D" parent="."]
|
[node name="Camera" type="Camera3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 1.5, 0)
|
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 1.5, 0)
|
||||||
fov = 30.0
|
fov = 30.0
|
||||||
|
|
|
||||||
11
piece.gd
11
piece.gd
|
|
@ -19,6 +19,8 @@ enum Type {
|
||||||
@export_range(0.1, 50) var anim_speed := 10.0
|
@export_range(0.1, 50) var anim_speed := 10.0
|
||||||
@export_range(0.1, 50) var anim_speed_slow := 2.0
|
@export_range(0.1, 50) var anim_speed_slow := 2.0
|
||||||
|
|
||||||
|
#TODO: {un,}do_bump animation method (good visual clarity)
|
||||||
|
|
||||||
## logical position
|
## logical position
|
||||||
var lpos: Vector2i:
|
var lpos: Vector2i:
|
||||||
get:
|
get:
|
||||||
|
|
@ -26,7 +28,8 @@ var lpos: Vector2i:
|
||||||
set(val):
|
set(val):
|
||||||
position = target_pos
|
position = target_pos
|
||||||
start_pos = position
|
start_pos = position
|
||||||
target_pos = Vector3(val.x, position.y, val.y)
|
# we offset by 0.5 to be in the middle of the square (for easier editing)
|
||||||
|
target_pos = Vector3(val.x + 0.5, position.y, val.y + 0.5)
|
||||||
anim_progress = 0
|
anim_progress = 0
|
||||||
|
|
||||||
## logical velocity
|
## logical velocity
|
||||||
|
|
@ -46,9 +49,9 @@ func do_step(board: Board):
|
||||||
var move := lvel.clampi(-1, 1)
|
var move := lvel.clampi(-1, 1)
|
||||||
var new_pos := lpos + move
|
var new_pos := lpos + move
|
||||||
if board.solid_at(new_pos):
|
if board.solid_at(new_pos):
|
||||||
var ball := board.type_at(new_pos, Piece.Type.Ball)
|
var ball_here := board.type_at(new_pos, Piece.Type.Ball)
|
||||||
if ball:
|
if ball_here:
|
||||||
ball.do_push(lvel-move).call()
|
ball_here.do_push(lvel-move).call()
|
||||||
lvel = -move
|
lvel = -move
|
||||||
else:
|
else:
|
||||||
lpos = lpos
|
lpos = lpos
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
[ext_resource type="Script" uid="uid://bq3a5hhccxndn" path="res://piece.gd" id="2_c3ygy"]
|
[ext_resource type="Script" uid="uid://bq3a5hhccxndn" path="res://piece.gd" id="2_c3ygy"]
|
||||||
|
|
||||||
[node name="Ball" type="MeshInstance3D"]
|
[node name="Ball" type="MeshInstance3D"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.3, 0.5)
|
||||||
mesh = ExtResource("1_qixli")
|
mesh = ExtResource("1_qixli")
|
||||||
script = ExtResource("2_c3ygy")
|
script = ExtResource("2_c3ygy")
|
||||||
type = 2
|
type = 2
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
[ext_resource type="Script" uid="uid://bq3a5hhccxndn" path="res://piece.gd" id="2_lpfou"]
|
[ext_resource type="Script" uid="uid://bq3a5hhccxndn" path="res://piece.gd" id="2_lpfou"]
|
||||||
|
|
||||||
[node name="FloorIce" type="MeshInstance3D"]
|
[node name="FloorIce" type="MeshInstance3D"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0, 0.5)
|
||||||
mesh = ExtResource("1_2idvc")
|
mesh = ExtResource("1_2idvc")
|
||||||
script = ExtResource("2_lpfou")
|
script = ExtResource("2_lpfou")
|
||||||
type = 4
|
type = 4
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
[ext_resource type="Script" uid="uid://bq3a5hhccxndn" path="res://piece.gd" id="2_nqrds"]
|
[ext_resource type="Script" uid="uid://bq3a5hhccxndn" path="res://piece.gd" id="2_nqrds"]
|
||||||
|
|
||||||
[node name="Goal" type="MeshInstance3D"]
|
[node name="Goal" type="MeshInstance3D"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.057544, 0.5)
|
||||||
mesh = ExtResource("1_ek53k")
|
mesh = ExtResource("1_ek53k")
|
||||||
script = ExtResource("2_nqrds")
|
script = ExtResource("2_nqrds")
|
||||||
type = 1
|
type = 1
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
[ext_resource type="Script" uid="uid://bq3a5hhccxndn" path="res://piece.gd" id="2_5o3x0"]
|
[ext_resource type="Script" uid="uid://bq3a5hhccxndn" path="res://piece.gd" id="2_5o3x0"]
|
||||||
|
|
||||||
[node name="Player" type="MeshInstance3D"]
|
[node name="Player" type="MeshInstance3D"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 1, 0.5)
|
||||||
mesh = ExtResource("1_3owwe")
|
mesh = ExtResource("1_3owwe")
|
||||||
script = ExtResource("2_5o3x0")
|
script = ExtResource("2_5o3x0")
|
||||||
type = 3
|
type = 3
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
[ext_resource type="Script" uid="uid://bq3a5hhccxndn" path="res://piece.gd" id="2_j8o2k"]
|
[ext_resource type="Script" uid="uid://bq3a5hhccxndn" path="res://piece.gd" id="2_j8o2k"]
|
||||||
|
|
||||||
[node name="Wall" type="MeshInstance3D"]
|
[node name="Wall" type="MeshInstance3D"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.600054, 0.5)
|
||||||
mesh = ExtResource("1_ostjl")
|
mesh = ExtResource("1_ostjl")
|
||||||
script = ExtResource("2_j8o2k")
|
script = ExtResource("2_j8o2k")
|
||||||
metadata/_custom_type_script = "uid://bq3a5hhccxndn"
|
metadata/_custom_type_script = "uid://bq3a5hhccxndn"
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,8 @@ config_version=5
|
||||||
|
|
||||||
[application]
|
[application]
|
||||||
|
|
||||||
config/name="sokoban poc"
|
config/name="rolltime"
|
||||||
|
config/description="it's rolltime"
|
||||||
run/main_scene="uid://lrk2whqxl0w0"
|
run/main_scene="uid://lrk2whqxl0w0"
|
||||||
config/features=PackedStringArray("4.4", "GL Compatibility")
|
config/features=PackedStringArray("4.4", "GL Compatibility")
|
||||||
config/icon="res://icon.svg"
|
config/icon="res://icon.svg"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue