ignacy123

Untitled

Aug 24th, 2023
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. extends Camera
  2.  
  3. var ray_length = 100.0
  4. var gridmap
  5.  
  6. var block_id = 0
  7. func _ready():
  8. gridmap = get_node("/root/Spatial/GridMap")
  9.  
  10.  
  11. func _physics_process(delta):
  12. if Input.is_action_just_pressed("choose_grass"):
  13. block_id = 0
  14. if Input.is_action_just_pressed("choose_wood"):
  15. block_id = 1
  16. if Input.is_action_just_pressed("choose_leaf"):
  17. block_id = 2
  18. if Input.is_action_just_pressed("delete"):
  19. var from = self.project_ray_origin(Vector2(
  20. self.get_viewport().size.x / 2,
  21. self.get_viewport().size.y / 2
  22. ))
  23. var direction = self.project_ray_normal(Vector2(
  24. self.get_viewport().size.x / 2,
  25. self.get_viewport().size.y / 2
  26. ))
  27.  
  28. # Cast a Ray
  29. var space_state = get_world().direct_space_state
  30. var result = space_state.intersect_ray(from, from + direction * ray_length)
  31.  
  32. if result.collider:
  33. var vec = result.collider.world_to_map(result.position)
  34. var camera_direction = -self.global_transform.basis.z
  35. print(camera_direction)
  36. gridmap.set_cell_item(vec.x + round(camera_direction.x),
  37. vec.y + round(camera_direction.y),
  38. vec.z + round(camera_direction.z), -1)
  39. if Input.is_action_just_pressed("create"):
  40. var from = self.project_ray_origin(Vector2(
  41. self.get_viewport().size.x / 2,
  42. self.get_viewport().size.y / 2
  43. ))
  44. var direction = self.project_ray_normal(Vector2(
  45. self.get_viewport().size.x / 2,
  46. self.get_viewport().size.y / 2
  47. ))
  48.  
  49. var space_state = get_world().direct_space_state
  50. var result = space_state.intersect_ray(from, from + direction * ray_length)
  51.  
  52. if result.collider:
  53. var vec = result.collider.world_to_map(result.position)
  54. print("Hit object: ", result.collider, vec)
  55. gridmap.set_cell_item(vec.x, vec.y, vec.z, block_id)
  56.  
Add Comment
Please, Sign In to add comment