ajout du camion #87

* changements des objectifs, donnent juste des graines, sprite moins gros et objectifs plus nombreux
* changement de la probabilité de mutation
* refactor du code terrain et planet
This commit is contained in:
2025-10-12 19:59:53 +02:00
parent ef392595de
commit d90d4c5df6
52 changed files with 627 additions and 346 deletions

View File

@@ -3,24 +3,28 @@ class_name Terrain
const BORDER_WIDTH = 100
var player : Player
@export var import_entities_from_node : Node2D = null
var terrain_size = Vector2.ONE * 1000 :
set(v):
terrain_size = v
if border_limit:
border_limit.queue_free()
border_limit = create_border_limit()
@onready var border_limit : StaticBody2D = create_border_limit()
@onready var entity_container : Node2D = create_entity_container()
func add_entity(e : Node2D, container : Node2D = entity_container):
if e.get_parent():
e.get_parent().remove_child(e)
if "terrain" in e:
e.terrain = self
if e is Player:
player = e
container.add_child(e)
func remove_entity(e : Node2D, container : Node2D = entity_container):
if e.get_parent() == entity_container:
container.remove_child(e)
func create_entity_container() -> Node2D:
var container = Node2D.new()
container.y_sort_enabled = true
@@ -51,25 +55,3 @@ func drop_item(item: Item, item_position : Vector2, random_displacement_factor =
return item_object
func create_border_limit() -> StaticBody2D:
var static_body = StaticBody2D.new()
var static_body_collision = CollisionPolygon2D.new()
add_child(static_body)
static_body.add_child(static_body_collision)
var size = terrain_size
static_body_collision.polygon = PackedVector2Array([
Vector2(0,0),
Vector2(0, size.y),
Vector2(size.x, size.y),
Vector2(size.x, 0),
Vector2(0,0),
Vector2(-BORDER_WIDTH, -BORDER_WIDTH),
Vector2(size.x + BORDER_WIDTH, -BORDER_WIDTH),
Vector2(size.x + BORDER_WIDTH, size.y + BORDER_WIDTH),
Vector2(- BORDER_WIDTH, size.y + BORDER_WIDTH),
Vector2(-BORDER_WIDTH, -BORDER_WIDTH)
])
return static_body