End of lesson 30
This commit is contained in:
@@ -15,3 +15,5 @@ signal DISPLAY_CLEAR
|
||||
|
||||
signal LOAD_MAP(currentMap, newMapPath, spawnpoint, facing)
|
||||
signal LOAD_COMPLETE
|
||||
|
||||
signal TOGGLE_TILEMAP_LAYER(layerName)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
12
scripts/game/maps/entities/ToggleRoofTrigger.gd
Normal file
12
scripts/game/maps/entities/ToggleRoofTrigger.gd
Normal 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())
|
||||
1
scripts/game/maps/entities/ToggleRoofTrigger.gd.uid
Normal file
1
scripts/game/maps/entities/ToggleRoofTrigger.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://c50fmagffbdas
|
||||
@@ -3,7 +3,7 @@ extends Area2D
|
||||
class_name MapEntity
|
||||
|
||||
func execute(target):
|
||||
print(target.name)
|
||||
print("MapEntity.execute(%s)" % target.name)
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user