End of lesson 30

This commit is contained in:
Penelope 2025-04-18 17:46:43 -03:00
parent 2d87794af9
commit f4e4de59f5
9 changed files with 69 additions and 11 deletions

View File

@ -0,0 +1,16 @@
[gd_scene load_steps=3 format=3 uid="uid://864h4oam7qfk"]
[ext_resource type="Script" uid="uid://c50fmagffbdas" path="res://scripts/game/maps/entities/ToggleRoofTrigger.gd" id="1_58sfy"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_58sfy"]
size = Vector2(48, 16)
[node name="ToggleRoofTrigger" type="Area2D"]
script = ExtResource("1_58sfy")
metadata/_custom_type_script = "uid://c50fmagffbdas"
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(8, 8)
shape = SubResource("RectangleShape2D_58sfy")
[connection signal="area_entered" from="." to="." method="_on_area_entered"]

File diff suppressed because one or more lines are too long

View File

@ -15,3 +15,5 @@ signal DISPLAY_CLEAR
signal LOAD_MAP(currentMap, newMapPath, spawnpoint, facing)
signal LOAD_COMPLETE
signal TOGGLE_TILEMAP_LAYER(layerName)

View File

@ -11,15 +11,17 @@ var player
func _ready():
CommandDispatcher.PLAYER_MOVE.connect(onPlayerMove)
CommandDispatcher.TOGGLE_TILEMAP_LAYER.connect(onToggleRequest)
func spawnPlayerAtPosition(position, facing):
@warning_ignore("unused_parameter")
func spawnPlayerAtPosition(newPosition, facing):
var spawnposition:Vector2i
if (position == null):
if (newPosition == null):
spawnposition = defaultPlayerStartPosition
else:
spawnposition = position
spawnposition = newPosition
player.position = Vector2(spawnposition.x * 16, spawnposition.y * 16)
@ -43,5 +45,15 @@ func onPlayerMove(direction):
player.updateAnimation(direction)
func playerCanMoveTo(position) -> bool:
@warning_ignore("unused_parameter")
func playerCanMoveTo(newPosition) -> bool:
return false
func onToggleRequest(layerName):
for layer in range(get_layers_count()):
if(get_layer_name(layer) == layerName):
if(is_layer_enabled(layer)):
set_layer_enabled(layer, false)
else:
set_layer_enabled(layer, true)

View File

@ -4,6 +4,7 @@ class_name Map2d
enum TerrainDataTypes { TerrainType }
func getTerrainDataForTile(layer, data, x, y):
var tile:TileData = get_cell_tile_data(layer, Vector2i(x, y))
@ -13,15 +14,15 @@ func getTerrainDataForTile(layer, data, x, y):
return null
func spawnPlayerAtPosition(position, facing):
func spawnPlayerAtPosition(newPosition, facing):
player = load("res://scenes/game/maps/entities/player.tscn").instantiate()
super.spawnPlayerAtPosition(position, facing)
super.spawnPlayerAtPosition(newPosition, facing)
player.updateFacing(facing)
get_node("Entities").add_child(player)
func playerCanMoveTo(position:Vector2) -> bool:
return !player.wouldCollideAt(position)
func playerCanMoveTo(newPosition:Vector2) -> bool:
return !player.wouldCollideAt(newPosition)

View File

@ -6,5 +6,6 @@ class_name ChangeMapTrigger
@export var spawnpoint: Vector2i
@export var facing:Map.Direction
@warning_ignore("unused_parameter")
func execute(target):
CommandDispatcher.LOAD_MAP.emit(map, spawnpoint, facing)

View File

@ -0,0 +1,12 @@
extends MapEntity
class_name ToggleRoofTrigger
@export var layerName:String
func execute(target):
CommandDispatcher.TOGGLE_TILEMAP_LAYER.emit(layerName)
func _on_area_entered(area: Area2D) -> void:
execute(area.get_parent())

View File

@ -0,0 +1 @@
uid://c50fmagffbdas

View File

@ -3,7 +3,7 @@ extends Area2D
class_name MapEntity
func execute(target):
print(target.name)
print("MapEntity.execute(%s)" % target.name)