tidy unneeded nodes

This commit is contained in:
James 2023-12-06 13:12:33 +00:00
parent 262173bee8
commit faa0723145
6 changed files with 51 additions and 66 deletions

View File

@ -1,20 +0,0 @@
extends RigidBody2D
func _integrate_forces(state: PhysicsDirectBodyState2D):
var contact_count = state.get_contact_count()
for i in range(contact_count):
#print("bb")
var collider_object = state.get_contact_collider_object(i)
if collider_object and collider_object.get_parent() is Player:
handle_player_collision(collider_object.get_parent())
if collider_object and collider_object.get_parent() is Pool:
handle_pool_collision(collider_object.get_parent())
func handle_player_collision(player: Player):
if $"..".is_carrying() and player.is_carrying():
$"..".doubledrop(player)
$"..".drop()
player.drop()
func handle_pool_collision(pool: Pool):
$"..".exchange_with(pool)

10
Map.gd
View File

@ -29,20 +29,20 @@ func spawm_pool(pos,red,green,blue):
new_pool.mana_r=red new_pool.mana_r=red
new_pool.mana_g=green new_pool.mana_g=green
new_pool.mana_b=blue new_pool.mana_b=blue
new_pool.get_node("StaticBody2D/CollisionShape2D2").disabled=true; new_pool.get_node("CollisionShape2D2").disabled=true;
#new_pool.get_node("StaticBody2D/CollisionShape2D2").set_deferred("disabled", true) #new_pool.get_node("StaticBody2D/CollisionShape2D2").set_deferred("disabled", true)
get_tree().root.get_node("Sim/Map").call_deferred("add_child",new_pool) get_tree().root.get_node("Sim/Map").call_deferred("add_child",new_pool)
func spawn_player(pos,vol): func spawn_player(pos,vol):
var new_player = load("res://player.tscn").instantiate() var new_player = load("res://player.tscn").instantiate()
new_player.get_node("Body2D").position = pos new_player.position = pos
new_player.get_node("Body2D").apply_impulse(vol) new_player.apply_impulse(vol)
# Prepare the shape query parameters # Prepare the shape query parameters
var query_parameters = PhysicsShapeQueryParameters2D.new() var query_parameters = PhysicsShapeQueryParameters2D.new()
var collision_shape = new_player.get_node("Body2D/CollisionShape2D").shape var collision_shape = new_player.get_node("CollisionShape2D").shape
query_parameters.set_shape(collision_shape) query_parameters.set_shape(collision_shape)
query_parameters.set_transform(Transform2D(0, pos)) query_parameters.set_transform(Transform2D(0, pos))
query_parameters.set_collision_mask(1) query_parameters.set_collision_mask(1)
@ -63,7 +63,7 @@ func spawn_player(pos,vol):
collision.collider.get_parent()._on_decay_timer_timeout() collision.collider.get_parent()._on_decay_timer_timeout()
return return
var marker = Sprite2D.new() var marker = Sprite2D.new()
marker.position = new_player.get_node("Body2D").position marker.position = new_player.position
marker.scale=Vector2(0.1,0.1) marker.scale=Vector2(0.1,0.1)
marker.texture = load("res://images/crosshair.png") marker.texture = load("res://images/crosshair.png")
add_child(marker) add_child(marker)

View File

@ -1,15 +1,33 @@
class_name Player class_name Player
extends Node2D extends RigidBody2D
func _integrate_forces(state: PhysicsDirectBodyState2D):
var contact_count = state.get_contact_count()
for i in range(contact_count):
var collider_object = state.get_contact_collider_object(i)
if collider_object and collider_object is Player:
handle_player_collision(collider_object)
if collider_object and collider_object is Pool:
handle_pool_collision(collider_object)
func handle_player_collision(player: Player):
if is_carrying() and player.is_carrying():
doubledrop(player)
drop()
player.drop()
func handle_pool_collision(pool: Pool):
exchange_with(pool)
var carrying_r=0 var carrying_r=0
var carrying_g=0 var carrying_g=0
var carrying_b=0 var carrying_b=0
func _process(_delta): func _process(_delta):
if $Body2D/CollisionShape2D.disabled: if $CollisionShape2D.disabled:
# Prepare the shape query parameters # Prepare the shape query parameters
var query_parameters = PhysicsShapeQueryParameters2D.new() var query_parameters = PhysicsShapeQueryParameters2D.new()
var collision_shape = $Body2D/CollisionShape2D.shape var collision_shape = $CollisionShape2D.shape
query_parameters.set_shape(collision_shape) query_parameters.set_shape(collision_shape)
query_parameters.set_transform(Transform2D(0, position)) query_parameters.set_transform(Transform2D(0, position))
query_parameters.set_collision_mask(2) #2=pools query_parameters.set_collision_mask(2) #2=pools
@ -20,7 +38,7 @@ func _process(_delta):
# Check for collision # Check for collision
var collision_results = space_state.intersect_shape(query_parameters) var collision_results = space_state.intersect_shape(query_parameters)
if collision_results.size() == 0: if collision_results.size() == 0:
$Body2D/CollisionShape2D.disabled=false $CollisionShape2D.disabled=false
#func _physics_process(delta): #func _physics_process(delta):
# if Input.is_action_pressed('move_up'): # if Input.is_action_pressed('move_up'):
@ -33,25 +51,21 @@ func _process(_delta):
# velocity.x += 1 # velocity.x += 1
# if Input.is_action_just_pressed('take'): # if Input.is_action_just_pressed('take'):
# drop() # drop()
#
# var collision_info = move_and_collide(velocity * delta)
# if collision_info:
# velocity = velocity.bounce(collision_info.get_normal())
# var collider=collision_info.get_collider();
# if collider.get_parent() is Pool:
# exchange_with(collider.get_parent())
# collider.get_parent().update()
# if collider.get_parent() is Player:
# drop()
# update()
func drop(): func drop():
if not is_carrying(): if not is_carrying():
return return
#if Pool.spawn($Body2D.position,carrying_r,carrying_g,carrying_b): var new_pool: Pool = load("res://pool.tscn").instantiate()
#carrying_r=0 new_pool.position = position
#carrying_g=0 new_pool.mana_r=carrying_r
#carrying_b=0 new_pool.mana_g=carrying_g
new_pool.mana_b=carrying_b
new_pool.get_node("CollisionShape2D2").disabled=true;
carrying_r=0
carrying_g=0
carrying_b=0
get_tree().root.get_node("Sim/Map").call_deferred("add_child",new_pool)
update()
func doubledrop(player: Player): func doubledrop(player: Player):
if not is_carrying() or not player.is_carrying(): if not is_carrying() or not player.is_carrying():

View File

@ -1,6 +1,6 @@
@tool @tool
class_name Pool class_name Pool
extends Node2D extends StaticBody2D
@export var mana_r: int = 10 @export var mana_r: int = 10
@export var mana_g: int = 10 @export var mana_g: int = 10
@ -12,10 +12,10 @@ func _ready():
# Called every frame. 'delta' is the elapsed time since the previous frame. # Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(_delta): func _process(_delta):
if $StaticBody2D/CollisionShape2D2.disabled: if $CollisionShape2D2.disabled:
# Prepare the shape query parameters # Prepare the shape query parameters
var query_parameters = PhysicsShapeQueryParameters2D.new() var query_parameters = PhysicsShapeQueryParameters2D.new()
var collision_shape = $StaticBody2D/CollisionShape2D2.shape var collision_shape = $CollisionShape2D2.shape
query_parameters.set_shape(collision_shape) query_parameters.set_shape(collision_shape)
query_parameters.set_transform(Transform2D(0, position)) query_parameters.set_transform(Transform2D(0, position))
query_parameters.set_collision_mask(1) #1=players query_parameters.set_collision_mask(1) #1=players
@ -26,7 +26,7 @@ func _process(_delta):
# Check for collision # Check for collision
var collision_results = space_state.intersect_shape(query_parameters) var collision_results = space_state.intersect_shape(query_parameters)
if collision_results.size() == 0: if collision_results.size() == 0:
$StaticBody2D/CollisionShape2D2.disabled=false $CollisionShape2D2.disabled=false
update() update()
pass pass

View File

@ -1,26 +1,22 @@
[gd_scene load_steps=6 format=3 uid="uid://bu6pswk806qv6"] [gd_scene load_steps=5 format=3 uid="uid://bu6pswk806qv6"]
[ext_resource type="Script" path="res://Player.gd" id="1_kr26t"] [ext_resource type="Script" path="res://Player.gd" id="1_kr26t"]
[ext_resource type="PhysicsMaterial" uid="uid://6vo1o6je0duv" path="res://physics/no_friction.tres" id="2_5k2ia"] [ext_resource type="PhysicsMaterial" uid="uid://6vo1o6je0duv" path="res://physics/no_friction.tres" id="2_5k2ia"]
[ext_resource type="Texture2D" uid="uid://clyn507dro67" path="res://images/player.png" id="2_cxs7h"] [ext_resource type="Texture2D" uid="uid://clyn507dro67" path="res://images/player.png" id="2_cxs7h"]
[ext_resource type="Script" path="res://Body2D.gd" id="3_rse87"]
[sub_resource type="CircleShape2D" id="CircleShape2D_yt706"] [sub_resource type="CircleShape2D" id="CircleShape2D_yt706"]
[node name="Player" type="Node2D"] [node name="Player" type="RigidBody2D" groups=["Persist"]]
script = ExtResource("1_kr26t")
[node name="Body2D" type="RigidBody2D" parent="."]
collision_mask = 7 collision_mask = 7
physics_material_override = ExtResource("2_5k2ia") physics_material_override = ExtResource("2_5k2ia")
max_contacts_reported = 10 max_contacts_reported = 10
contact_monitor = true contact_monitor = true
script = ExtResource("3_rse87") script = ExtResource("1_kr26t")
[node name="Mono-polygon" type="Sprite2D" parent="Body2D"] [node name="Mono-polygon" type="Sprite2D" parent="."]
scale = Vector2(0.1, 0.1) scale = Vector2(0.1, 0.1)
texture = ExtResource("2_cxs7h") texture = ExtResource("2_cxs7h")
[node name="CollisionShape2D" type="CollisionShape2D" parent="Body2D"] [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
scale = Vector2(0.8, 0.8) scale = Vector2(0.8, 0.8)
shape = SubResource("CircleShape2D_yt706") shape = SubResource("CircleShape2D_yt706")

View File

@ -5,19 +5,14 @@
[sub_resource type="CircleShape2D" id="CircleShape2D_fmfn8"] [sub_resource type="CircleShape2D" id="CircleShape2D_fmfn8"]
[node name="Pool" type="Node2D"] [node name="StaticBody2D" type="StaticBody2D"]
modulate = Color(0.3, 1, 1, 1)
scale = Vector2(0.151658, 0.151658)
script = ExtResource("1_tvic3")
mana_r = 3
[node name="StaticBody2D" type="StaticBody2D" parent="."]
collision_layer = 2 collision_layer = 2
collision_mask = 3 collision_mask = 3
script = ExtResource("1_tvic3")
[node name="CollisionShape2D2" type="CollisionShape2D" parent="StaticBody2D"] [node name="CollisionShape2D2" type="CollisionShape2D" parent="."]
scale = Vector2(8.5, 8.5) scale = Vector2(8.5, 8.5)
shape = SubResource("CircleShape2D_fmfn8") shape = SubResource("CircleShape2D_fmfn8")
[node name="Icon" type="Sprite2D" parent="StaticBody2D"] [node name="Icon" type="Sprite2D" parent="."]
texture = ExtResource("2_45evg") texture = ExtResource("2_45evg")