first
This commit is contained in:
59
script/map_screen.gd
Normal file
59
script/map_screen.gd
Normal file
@@ -0,0 +1,59 @@
|
||||
extends Control
|
||||
class_name MapScreen
|
||||
|
||||
@onready var map: TextureRect = $TextureRect
|
||||
@onready var playerIndicator: ColorRect = $PlayerIndicator
|
||||
@onready var taskListContainer: VBoxContainer = $TaskList
|
||||
@onready var taskLabelSettings: LabelSettings = preload("res://test/TaskListLabelSettingstest.tres")
|
||||
|
||||
var mapImmage: Image
|
||||
var playerCharacter: PlayerCharacter
|
||||
var mapDimensions: Vector2 = Vector2(0,0)
|
||||
var trackPlayer: bool = false
|
||||
|
||||
var taskList: Array[MissionTask]
|
||||
|
||||
|
||||
func _process(_delta: float) -> void:
|
||||
#Update Player Pos on map
|
||||
|
||||
if trackPlayer and playerCharacter:
|
||||
playerIndicator.position = Vector2(playerCharacter.position.x, playerCharacter.position.z) * map.size/mapDimensions + Vector2(map.size.x/2 + map.position.x,map.size.y/2 + map.position.y) - playerIndicator.size/2
|
||||
|
||||
func generateMap(grid: Array[Array]) -> void: #Seccond Array contains gridCells
|
||||
mapImmage = Image.create_empty(grid.size(),grid[0].size(),false,Image.FORMAT_RGB8)
|
||||
|
||||
for x in grid.size():
|
||||
for y in grid[x].size():
|
||||
if grid[x][y].biomeConnection:
|
||||
mapImmage.set_pixel(x,y,Color.DARK_GREEN)
|
||||
elif grid[x][y].spaceTaken:
|
||||
mapImmage.set_pixel(x,y,Color.GREEN)
|
||||
else:
|
||||
mapImmage.set_pixel(x,y,Color.DIM_GRAY)
|
||||
|
||||
map.texture = ImageTexture.create_from_image(mapImmage)
|
||||
|
||||
mapDimensions = Vector2(grid.size(),grid[0].size())
|
||||
|
||||
|
||||
if !playerCharacter:
|
||||
playerCharacter = Multiplayer.thisPlayer
|
||||
|
||||
trackPlayer = true
|
||||
|
||||
func addTask(task: MissionTask) -> void:
|
||||
taskList.push_back(task)
|
||||
|
||||
var label := Label.new()
|
||||
label.name = task.taskName
|
||||
label.text = task.description
|
||||
label.label_settings = taskLabelSettings
|
||||
|
||||
taskListContainer.add_child(label)
|
||||
task.taskLabel = label
|
||||
|
||||
func completeTask(task: MissionTask) -> void:
|
||||
if taskList.has(task):
|
||||
task.taskLabel.queue_free()
|
||||
taskList.erase(task)
|
||||
Reference in New Issue
Block a user