#14 ajout de la notion de terrain, de planète et de zone contaminée

This commit is contained in:
2025-08-08 15:27:17 +02:00
parent a0f17df7c6
commit 25d81d57a5
27 changed files with 447 additions and 17 deletions

View File

@@ -0,0 +1,57 @@
extends Node2D
class_name Terrain
const BORDER_WIDTH = 100
@export var import_entities_from_node : Node2D = null
@export var terrainData : TerrainData
@onready var borderLimit : StaticBody2D = create_border_limit()
@onready var entityContainer : Node2D = create_entity_container()
func _init():
if not terrainData:
terrainData = TerrainData.new()
func add_entity(e : Node2D, container : Node2D):
if e.get_parent():
e.get_parent().remove_child(e)
container.add_child(e)
func create_entity_container() -> Node2D:
var container = Node2D.new()
container.y_sort_enabled = true
container.position = terrainData.terrainSize/2
add_child(container)
if import_entities_from_node:
for child in import_entities_from_node.get_children():
add_entity(child, container)
return container
func create_border_limit() -> StaticBody2D:
var staticBody = StaticBody2D.new()
var staticBodyCollision = CollisionPolygon2D.new()
add_child(staticBody)
staticBody.add_child(staticBodyCollision)
var size = terrainData.terrainSize
staticBodyCollision.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 staticBody

View File

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