mirror of
https://github.com/JHDev2006/Super-Mario-Bros.-Remastered-Public.git
synced 2025-10-22 07:28:14 +00:00
added the game
This commit is contained in:
44
Scripts/Parts/EntityGenerator.gd
Normal file
44
Scripts/Parts/EntityGenerator.gd
Normal file
@@ -0,0 +1,44 @@
|
||||
class_name EntityGenerator
|
||||
extends Node2D
|
||||
|
||||
var spawn_meter := 0.0
|
||||
@export var threshold := 2.0
|
||||
var active := false
|
||||
@export_enum("Target Player", "Random Height") var y_pos := 0
|
||||
@export_enum("Right", "Bottom") var direction := 0
|
||||
@export var entity_scene: PackedScene = null
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
if active:
|
||||
spawn_meter += delta
|
||||
if spawn_meter >= threshold:
|
||||
spawn_entity()
|
||||
spawn_meter = randf_range(-2, 0)
|
||||
|
||||
func activate() -> void:
|
||||
if not active:
|
||||
active = true
|
||||
spawn_meter = 0
|
||||
spawn_entity()
|
||||
|
||||
func deactivate_all_generators() -> void:
|
||||
for i in get_tree().get_nodes_in_group("EntityGenerators"):
|
||||
i.active = false
|
||||
i.deactivate()
|
||||
|
||||
func deactivate() -> void:
|
||||
pass
|
||||
|
||||
func spawn_entity() -> void:
|
||||
if entity_scene == null: return
|
||||
var node = entity_scene.instantiate()
|
||||
if direction == 1:
|
||||
node.global_position.x = get_viewport().get_camera_2d().get_screen_center_position().x + [ -32 ,-64, -96, -128].pick_random()
|
||||
node.global_position.y = 48
|
||||
else:
|
||||
if y_pos == 0:
|
||||
node.global_position.y = get_tree().get_first_node_in_group("Players").global_position.y + randi_range(-4, 4)
|
||||
else:
|
||||
node.global_position.y = randf_range(-56, -120)
|
||||
node.global_position.x = get_viewport().get_camera_2d().get_screen_center_position().x + ((get_viewport().get_visible_rect().size.x / 2) + 4)
|
||||
add_sibling(node)
|
Reference in New Issue
Block a user