Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extends StaticBody2D
- var shape
- var awake
- var done = false
- var temp_texture: Texture2D
- @export var reverse = false # Reverse = sleep before panic, wake afterwards
- @onready var collision_shape = $CollisionShape2D
- @onready var texture_rect = $BlockTexture
- @onready var texture = $BlockTexture.texture
- @onready var wake_rect = $AwakeTexture
- @onready var texture_wake = $AwakeTexture.texture #$WakeTexture.texture #ResourceLoader.load("res://assets/sprites/pillar john/johnblock/spr_minipillarwoke_0.png")
- @onready var sleep_rect = $SleepTexture
- @onready var texture_sleep = $SleepTexture.texture #$SleepTexture.texture #ResourceLoader.load("res://assets/sprites/pillar john/johnblock/spr_minipillarsleep_0.png")
- @onready var body_box = $BodyBox
- @onready var body_box_shape = $BodyBox/BodyBoxColShape
- #@onready var image = $TransitionStorage.texture
- func wake():
- wake_rect.visible = true
- sleep_rect.visible = false
- modulate.a = 1
- #texture.set_pause(false)
- #texture_rect.texture.set_pause(true)
- #for frame in texture.frames:
- #print(frame)
- #temp_texture = texture_wake.get_frame_texture(frame)
- #texture.set_frame_texture(frame, texture_wake.get_frame_texture(frame))
- #texture.set_current_frame(0)
- #texture.set_pause(false)
- #texture_rect.texture = AnimatedTexture.new()
- #modulate = Color(1, 1, 1, 1)
- #temp_texture = texture_wake.get_frame_texture(0)
- #texture_rect.set_texture(texture_wake) #set_frame_texture(0, texture_wake) #set_texture(texture_wake)
- #texture.set_current_frame(0)
- #texture.pause = false
- #texture_rect._draw($CollisionShape2D, $CollisionShape2D.shape, Color(1, 1, 1, 1), false)
- awake = true
- set_collision_layer_value(1, true)
- set_collision_layer_value(2, true)
- set_collision_layer_value(3, true)
- set_collision_layer_value(4, true)
- #print("hi hi")
- func sleep():
- wake_rect.visible = false
- sleep_rect.visible = true
- #texture_rect.texture.set_pause(true)
- modulate.a = 0.5
- #for frame in texture.frames:
- #temp_texture = texture_sleep.get_frame_texture(0)
- #texture.set_frame_texture(frame, texture_sleep.get_frame_texture(0))
- #texture.set_current_frame(0)
- #texture.set_pause(false)
- #texture_rect.texture = AnimatedTexture.new()
- #temp_texture = texture_sleep.get_frame_texture(0)
- #texture.pause = true
- #texture_rect.set_texture(texture_sleep) #set_frame_texture(0, texture_sleep) #set_texture(texture_sleep)
- #texture.set_current_frame(0)
- #texture_rect._draw($CollisionShape2D, $CollisionShape2D.shape, Color(1, 1, 1, 1), false)
- awake = false
- set_collision_layer_value(1, false)
- set_collision_layer_value(2, false)
- set_collision_layer_value(3, false)
- set_collision_layer_value(4, false)
- #print("bye bye")
- func flip():
- if GameManager.panic:
- if reverse:
- wake()
- else:
- sleep()
- else:
- if reverse:
- sleep()
- else:
- wake()
- # Called when the node enters the scene tree for the first time.
- func _ready():
- texture_rect.visible = false
- texture_rect.size.x = collision_shape.shape.size.x
- texture_rect.size.y = collision_shape.shape.size.y
- wake_rect.size.x = collision_shape.shape.size.x
- wake_rect.size.y = collision_shape.shape.size.y
- sleep_rect.size.x = collision_shape.shape.size.x
- sleep_rect.size.y = collision_shape.shape.size.y
- #await get_tree().create_timer(0.01).timeout
- flip()
- if not GameManager.panic and not done:
- await GameManager.panic_time
- print("GET OUT NOW!")
- flip()
- await get_tree().create_timer(0.01).timeout
- done = true
- #func _process(delta):
- #pass
- #if awake:
- #for frame in texture.frames:
- #temp_texture = texture_wake.get_frame_texture(frame)
- #texture.set_frame_texture(frame, texture_wake.get_frame_texture(frame))
- #texture.set_current_frame(0)
- #texture.set_pause(false)
- #else:
- #for frame in texture.frames:
- #temp_texture = texture_sleep.get_frame_texture(0)
- #texture.set_frame_texture(frame, texture_sleep.get_frame_texture(frame))
- #texture.set_current_frame(0)
- #texture.set_pause(true)
- #awake = null
- #body_box.position = collision_shape.position
- #shape = RectangleShape2D.new()
- #killzone_shape.shape.extents = Vector2(collision_shape.shape.size.x + 2, collision_shape.shape.size.x + 2)
- #shape.size.x = collision_shape.shape.size.x + 2
- #shape.size.y = collision_shape.shape.size.y + 2
- #body_box_shape.shape = shape
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement