|
|
@ -31,13 +31,16 @@ func _process(_delta: float) -> void: |
|
|
|
|
|
|
|
|
|
|
|
func is_valid_placement_target(block_pos: Vector3i) -> bool: |
|
|
|
# This could probably use some work |
|
|
|
var collision_shape_radius: float = player.collision_shape_standing.shape.radius |
|
|
|
# This needs some work as it's still not quite reliable |
|
|
|
# Sometimes can't place in the position directly in front of the player |
|
|
|
var collision_shape_radius: float = player.collision_shape_standing.shape.radius - 0.2 # Fuzzy magic number (bad dev, bad) |
|
|
|
|
|
|
|
var maximums: Vector3 = Vector3(collision_shape_radius, player.current_height, collision_shape_radius) |
|
|
|
var maximums: Vector3 = Vector3(collision_shape_radius, 0, collision_shape_radius) |
|
|
|
var position_min: Vector3i = Vector3i(player.global_position - maximums) |
|
|
|
var position_max: Vector3i = Vector3i(player.global_position + maximums) |
|
|
|
|
|
|
|
position_max.y = player.current_height |
|
|
|
|
|
|
|
if ( |
|
|
|
block_pos.x >= position_min.x and block_pos.x <= position_max.x and |
|
|
|
block_pos.y >= position_min.y and block_pos.y <= position_max.y and |
|
|
|