Files
JumpRopeOldTech/level_editor/blocks/block_simple.gd
T
Debugman 231629d91e
ci/woodpecker/push/woodpecker Pipeline was successful
Began block restructure
2026-11-07 15:16:33 -06:00

50 lines
1.4 KiB
GDScript

class_name Block_Simple
extends RigidBody2D
# Last known sprite. In edge cases involving states.
# Block type refers to our specific block script.
# They should always extend eventually from block_simple.
@export var block_type:Script
# Set the animation (sprite sheet) to the specfied block types.
func SetSpriteSheet(animation):
$Sprite.animation = animation
# If this is false (default) then the block is horizontally facing.
@export var is_vertical:bool
# Tags the block has. These dictate interactions.
# These must be strings.
@export var tags:Array = [str]
# Rotate the block in a way that we can control.
# Default to 90 because that's a common use case.
func rotate_block(degrees:int = 90):
rotate(degrees)
# This runs BEFORE the instance is loaded.
# There's a lot you can't do here, as it doesn't exist yet.
func _init():
pass
#SetSpriteSheet(str(block_type))
#set_script(block_type)
# This runs AFTER the instance is loaded.
# This runs BEFORE the instance is added to the scene tree.
func _ready() -> void:
if is_vertical:
rotate_block(90)
set_script(block_type)
# This runs every frame. Expensive.
func _process(delta: float) -> void:
var _last_known_delta = delta
func on_player_near(body: Node2D) -> void:
print("Player is touching block with tags: " + str(tags))
func on_player_leave(body: Node2D) -> void:
print("Player is leaving block with tags: " + str(tags))