default maps and fixes
This commit is contained in:
parent
13c1bf8350
commit
d83bd7ce17
@ -20,8 +20,8 @@ func _on_about_to_popup():
|
||||
|
||||
func _on_confirmed():
|
||||
# Get the Map node
|
||||
var sim = get_node("../../../Sim")
|
||||
var old_map = get_node("../../Map")
|
||||
var sim = get_tree().root.get_node("Sim")
|
||||
var old_map = get_tree().root.get_node("Sim/Map")
|
||||
|
||||
# Load and instance the selected item
|
||||
for item in $ItemList.get_selected_items():
|
||||
|
27
Map.gd
27
Map.gd
@ -1,27 +1,30 @@
|
||||
extends Node2D
|
||||
|
||||
var spawn_position=Vector2(100,100);
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
pass
|
||||
var mouse_down_position = Vector2()
|
||||
|
||||
func _unhandled_input(event):
|
||||
if event is InputEventMouseButton and event.pressed and event.button_index == MOUSE_BUTTON_LEFT:
|
||||
spawn_position=get_global_mouse_position()
|
||||
spawn()
|
||||
if event is InputEventMouseButton:
|
||||
if event.button_index == MOUSE_BUTTON_LEFT:
|
||||
if event.pressed:
|
||||
# Record the position where the mouse was pressed down
|
||||
mouse_down_position = get_global_mouse_position()
|
||||
else:
|
||||
# Handle mouse button release
|
||||
var pos = get_global_mouse_position()
|
||||
var vol = pos - mouse_down_position
|
||||
spawn(pos,vol)
|
||||
|
||||
func spawn():
|
||||
func spawn(pos,vol):
|
||||
var new_player = load("res://player.tscn").instantiate()
|
||||
new_player.get_node("Body2D").position = spawn_position
|
||||
new_player.get_node("Body2D").position = pos
|
||||
|
||||
new_player.get_node("Body2D").apply_impulse(Vector2.from_angle(randf_range(0, 2 * PI)) * 100)
|
||||
new_player.get_node("Body2D").apply_impulse(vol)
|
||||
|
||||
# Prepare the shape query parameters
|
||||
var query_parameters = PhysicsShapeQueryParameters2D.new()
|
||||
var collision_shape = new_player.get_node("Body2D/CollisionShape2D").shape
|
||||
query_parameters.set_shape(collision_shape)
|
||||
query_parameters.set_transform(Transform2D(0, spawn_position))
|
||||
query_parameters.set_transform(Transform2D(0, pos))
|
||||
query_parameters.set_collision_mask(1)
|
||||
|
||||
# Get the Physics2DDirectSpaceState for collision checking
|
||||
|
2
Pool.gd
2
Pool.gd
@ -46,7 +46,7 @@ func update():
|
||||
self.queue_redraw() # Request to redraw the node
|
||||
|
||||
|
||||
func _on_decay_timer_timeout():
|
||||
func decay():
|
||||
var new_player = load("res://player.tscn").instantiate()
|
||||
|
||||
new_player.get_node("CharacterBody2D").velocity = Vector2.from_angle(randf_range(0, 2 * PI)) * 100
|
||||
|
@ -5,6 +5,19 @@ var base_path = "user://saves/"
|
||||
func _ready():
|
||||
if not DirAccess.dir_exists_absolute(base_path):
|
||||
DirAccess.make_dir_recursive_absolute(base_path)
|
||||
var dir = DirAccess.open("res://saves/")
|
||||
if dir:
|
||||
dir.list_dir_begin()
|
||||
var file_name = dir.get_next()
|
||||
while file_name != "":
|
||||
if dir.current_is_dir():
|
||||
print("skip directory: " + file_name)
|
||||
else:
|
||||
print("copy file: " + file_name)
|
||||
DirAccess.copy_absolute("res://saves/"+file_name,"user://saves/"+file_name)
|
||||
file_name = dir.get_next()
|
||||
else:
|
||||
print("An error occurred when trying to access the path.")
|
||||
|
||||
func _on_about_to_popup():
|
||||
pass # Replace with function body.
|
||||
@ -13,9 +26,16 @@ func _on_confirmed():
|
||||
var filename=base_path+$LineEdit.text+".tscn"
|
||||
print("Save: "+filename)
|
||||
var packed_scene = PackedScene.new()
|
||||
set_owner_recursive($"../../Map",$"../../Map")
|
||||
if packed_scene.pack($"../../Map") == OK:
|
||||
var result = ResourceSaver.save(packed_scene,filename)
|
||||
if result != OK:
|
||||
print("Failed to save scene. Error #",result)
|
||||
else:
|
||||
print("Failed to pack scene.")
|
||||
|
||||
func set_owner_recursive(node: Node, new_owner: Node):
|
||||
if node != new_owner:
|
||||
node.owner = new_owner
|
||||
for child in node.get_children():
|
||||
set_owner_recursive(child, new_owner)
|
||||
|
@ -58,7 +58,7 @@ func drop():
|
||||
carrying_r=0
|
||||
carrying_g=0
|
||||
carrying_b=0
|
||||
get_tree().root.get_node("Sim").call_deferred("add_child",new_pool)
|
||||
get_tree().root.get_node("Sim/Map").call_deferred("add_child",new_pool)
|
||||
update()
|
||||
|
||||
func doubledrop(player: Player):
|
||||
@ -76,7 +76,7 @@ func doubledrop(player: Player):
|
||||
player.carrying_r=0
|
||||
player.carrying_g=0
|
||||
player.carrying_b=0
|
||||
get_tree().root.get_node("Sim").call_deferred("add_child",new_pool)
|
||||
get_tree().root.get_node("Sim/Map").call_deferred("add_child",new_pool)
|
||||
update()
|
||||
|
||||
func exchange_with(pool: Pool):
|
||||
|
@ -21,7 +21,3 @@ shape = SubResource("CircleShape2D_fmfn8")
|
||||
|
||||
[node name="Icon" type="Sprite2D" parent="StaticBody2D"]
|
||||
texture = ExtResource("2_45evg")
|
||||
|
||||
[node name="DecayTimer" type="Timer" parent="StaticBody2D"]
|
||||
|
||||
[connection signal="timeout" from="StaticBody2D/DecayTimer" to="." method="_on_decay_timer_timeout"]
|
||||
|
5759
saves/default.tscn
Normal file
5759
saves/default.tscn
Normal file
File diff suppressed because it is too large
Load Diff
16
sim.tscn
16
sim.tscn
@ -9,12 +9,12 @@
|
||||
|
||||
[node name="Sim" type="Node2D"]
|
||||
|
||||
[node name="Camera2D" type="Camera2D" parent="."]
|
||||
script = ExtResource("4_g4kw0")
|
||||
|
||||
[node name="Map" type="Node2D" parent="."]
|
||||
script = ExtResource("2_rolej")
|
||||
|
||||
[node name="Camera2D" type="Camera2D" parent="Map"]
|
||||
script = ExtResource("4_g4kw0")
|
||||
|
||||
[node name="ScreenOverlay" type="CanvasLayer" parent="."]
|
||||
|
||||
[node name="HUD" type="PanelContainer" parent="ScreenOverlay"]
|
||||
@ -30,14 +30,14 @@ layout_mode = 2
|
||||
layout_mode = 2
|
||||
text = "debug"
|
||||
|
||||
[node name="Save" type="Button" parent="ScreenOverlay/HUD/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "Save..."
|
||||
|
||||
[node name="Load" type="Button" parent="ScreenOverlay/HUD/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "Load..."
|
||||
|
||||
[node name="Save" type="Button" parent="ScreenOverlay/HUD/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "Save..."
|
||||
|
||||
[node name="LoadDialog" type="ConfirmationDialog" parent="ScreenOverlay"]
|
||||
title = "Load"
|
||||
position = Vector2i(0, 36)
|
||||
@ -69,8 +69,8 @@ wait_time = 60.0
|
||||
autostart = true
|
||||
script = ExtResource("3_7b3mn")
|
||||
|
||||
[connection signal="pressed" from="ScreenOverlay/HUD/HBoxContainer/Save" to="ScreenOverlay/HUD" method="_on_save_pressed"]
|
||||
[connection signal="pressed" from="ScreenOverlay/HUD/HBoxContainer/Load" to="ScreenOverlay/HUD" method="_on_load_pressed"]
|
||||
[connection signal="pressed" from="ScreenOverlay/HUD/HBoxContainer/Save" to="ScreenOverlay/HUD" method="_on_save_pressed"]
|
||||
[connection signal="about_to_popup" from="ScreenOverlay/LoadDialog" to="ScreenOverlay/LoadDialog" method="_on_about_to_popup"]
|
||||
[connection signal="confirmed" from="ScreenOverlay/LoadDialog" to="ScreenOverlay/LoadDialog" method="_on_confirmed"]
|
||||
[connection signal="about_to_popup" from="ScreenOverlay/SaveDialog" to="ScreenOverlay/SaveDialog" method="_on_about_to_popup"]
|
||||
|
Loading…
Reference in New Issue
Block a user