Advertisement
DragonAero64

Escape Block Script

Jul 14th, 2024 (edited)
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
GDScript 4.32 KB | Gaming | 0 0
  1. extends StaticBody2D
  2.  
  3. var shape
  4. var awake
  5. var done = false
  6. var temp_texture: Texture2D
  7.  
  8. @export var reverse = false # Reverse = sleep before panic, wake afterwards
  9.  
  10. @onready var collision_shape = $CollisionShape2D
  11.  
  12. @onready var texture_rect = $BlockTexture
  13. @onready var texture = $BlockTexture.texture
  14.  
  15. @onready var wake_rect = $AwakeTexture
  16. @onready var texture_wake = $AwakeTexture.texture #$WakeTexture.texture #ResourceLoader.load("res://assets/sprites/pillar john/johnblock/spr_minipillarwoke_0.png")
  17.  
  18. @onready var sleep_rect = $SleepTexture
  19. @onready var texture_sleep = $SleepTexture.texture #$SleepTexture.texture #ResourceLoader.load("res://assets/sprites/pillar john/johnblock/spr_minipillarsleep_0.png")
  20.  
  21. @onready var body_box = $BodyBox
  22. @onready var body_box_shape = $BodyBox/BodyBoxColShape
  23. #@onready var image = $TransitionStorage.texture
  24.  
  25. func wake():
  26.     wake_rect.visible = true
  27.     sleep_rect.visible = false
  28.     modulate.a = 1
  29.     #texture.set_pause(false)
  30.    
  31.     #texture_rect.texture.set_pause(true)
  32.     #for frame in texture.frames:
  33.         #print(frame)
  34.         #temp_texture = texture_wake.get_frame_texture(frame)
  35.         #texture.set_frame_texture(frame, texture_wake.get_frame_texture(frame))
  36.     #texture.set_current_frame(0)
  37.     #texture.set_pause(false)
  38.    
  39.     #texture_rect.texture = AnimatedTexture.new()
  40.     #modulate = Color(1, 1, 1, 1)
  41.     #temp_texture = texture_wake.get_frame_texture(0)
  42.     #texture_rect.set_texture(texture_wake) #set_frame_texture(0, texture_wake) #set_texture(texture_wake)
  43.     #texture.set_current_frame(0)
  44.     #texture.pause = false
  45.     #texture_rect._draw($CollisionShape2D, $CollisionShape2D.shape, Color(1, 1, 1, 1), false)
  46.    
  47.     awake = true
  48.     set_collision_layer_value(1, true)
  49.     set_collision_layer_value(2, true)
  50.     set_collision_layer_value(3, true)
  51.     set_collision_layer_value(4, true)
  52.     #print("hi hi")
  53.    
  54. func sleep():
  55.     wake_rect.visible = false
  56.     sleep_rect.visible = true
  57.     #texture_rect.texture.set_pause(true)
  58.     modulate.a = 0.5
  59.    
  60.     #for frame in texture.frames:
  61.         #temp_texture = texture_sleep.get_frame_texture(0)
  62.         #texture.set_frame_texture(frame, texture_sleep.get_frame_texture(0))
  63.     #texture.set_current_frame(0)
  64.     #texture.set_pause(false)
  65.    
  66.     #texture_rect.texture = AnimatedTexture.new()
  67.     #temp_texture = texture_sleep.get_frame_texture(0)
  68.     #texture.pause = true
  69.    
  70.     #texture_rect.set_texture(texture_sleep) #set_frame_texture(0, texture_sleep) #set_texture(texture_sleep)
  71.     #texture.set_current_frame(0)
  72.     #texture_rect._draw($CollisionShape2D, $CollisionShape2D.shape, Color(1, 1, 1, 1), false)
  73.    
  74.     awake = false
  75.     set_collision_layer_value(1, false)
  76.     set_collision_layer_value(2, false)
  77.     set_collision_layer_value(3, false)
  78.     set_collision_layer_value(4, false)
  79.     #print("bye bye")
  80.    
  81. func flip():
  82.     if GameManager.panic:
  83.         if reverse:
  84.             wake()
  85.         else:
  86.             sleep()
  87.     else:
  88.         if reverse:
  89.             sleep()
  90.         else:
  91.             wake()
  92.  
  93. # Called when the node enters the scene tree for the first time.
  94. func _ready():
  95.     texture_rect.visible = false
  96.     texture_rect.size.x = collision_shape.shape.size.x
  97.     texture_rect.size.y = collision_shape.shape.size.y
  98.    
  99.     wake_rect.size.x = collision_shape.shape.size.x
  100.     wake_rect.size.y = collision_shape.shape.size.y
  101.    
  102.     sleep_rect.size.x = collision_shape.shape.size.x
  103.     sleep_rect.size.y = collision_shape.shape.size.y
  104.     #await get_tree().create_timer(0.01).timeout
  105.     flip()
  106.     if not GameManager.panic and not done:
  107.         await GameManager.panic_time
  108.         print("GET OUT NOW!")
  109.         flip()
  110.         await get_tree().create_timer(0.01).timeout
  111.         done = true
  112.  
  113. #func _process(delta):
  114.     #pass
  115.     #if awake:
  116.         #for frame in texture.frames:
  117.             #temp_texture = texture_wake.get_frame_texture(frame)
  118.             #texture.set_frame_texture(frame, texture_wake.get_frame_texture(frame))
  119.             #texture.set_current_frame(0)
  120.         #texture.set_pause(false)
  121.     #else:
  122.         #for frame in texture.frames:
  123.             #temp_texture = texture_sleep.get_frame_texture(0)
  124.             #texture.set_frame_texture(frame, texture_sleep.get_frame_texture(frame))
  125.             #texture.set_current_frame(0)
  126.         #texture.set_pause(true)
  127.  
  128.  
  129.     #awake = null
  130.     #body_box.position = collision_shape.position
  131.     #shape = RectangleShape2D.new()
  132.     #killzone_shape.shape.extents = Vector2(collision_shape.shape.size.x + 2, collision_shape.shape.size.x + 2)
  133.     #shape.size.x = collision_shape.shape.size.x + 2
  134.     #shape.size.y = collision_shape.shape.size.y + 2
  135.     #body_box_shape.shape = shape
  136.  
  137.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement