1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- extends Node2D
- var Pheromone = preload("res://pheromone.tscn")
- var PheromoneScene = preload("res://pheromone.tscn")
- var pheromoneSet = preload("res://pheromones_tileset.tres")
- onready var PheromoneMap := .get_parent().get_node("Pheromones")
- onready var tilemap := .get_parent().get_node("TileMap")
- var pheromones = {}
- # Called when the node enters the scene tree for the first time.
- func _ready():
- pass # Replace with function body.
- func get_intensity(pos : Vector2):
- var intensity := 0
- if pheromones.has(pos):
- return pheromones[pos].intensity
- func addPheromone(pher):
- var pos = pher.tilePos
- # if food was marked on this tile, don't add "search" or any other marker
- if pheromones.has(pos) and pheromones[pos].type == "food":
- return
-
- if pheromones.has(pos):
- pheromones[pos].intensity += pher.intensity
- if pher.closeToHome > pheromones[pos].closeToHome:
- pheromones[pos].closeToHome = pher.closeToHome
- if pher.type == "food":
- pheromones[pos].type = "food"
- else:
- pheromones[pos] = pher
- add_child(pher)
- PheromoneMap.set_cellv(pos, pheromoneSet.find_tile_by_name(pher.type))
-
-
- func removePheromone(pher):
- var pos = pher.tilePos
- if pheromones.has(pos):
- pheromones.erase(pos)
- PheromoneMap.set_cellv(pos, -1)
|