Name refactor
This commit is contained in:
parent
6f56fffb59
commit
e1cdf38dfb
21 changed files with 44 additions and 40 deletions
44
scripts/structure.gd
Normal file
44
scripts/structure.gd
Normal file
|
@ -0,0 +1,44 @@
|
|||
@tool
|
||||
extends Node2D
|
||||
|
||||
class_name Structure
|
||||
|
||||
@export var dimensions : Rect2i = Rect2i(0,0,1,1):
|
||||
set(value):
|
||||
dimensions = value
|
||||
if Engine.is_editor_hint():
|
||||
queue_redraw()
|
||||
get:
|
||||
return dimensions
|
||||
|
||||
func _draw() -> void:
|
||||
if Engine.is_editor_hint():
|
||||
for x in range(dimensions.size.x):
|
||||
for y in range(dimensions.size.y):
|
||||
draw_circle((dimensions.position+Vector2i(x,y)) * Vector2i(Globals.GRID_SIZE),2,Color.AQUA)
|
||||
|
||||
func get_relative(dv : Vector2) -> Structure:
|
||||
return get_parent().get_at(global_position+dv)
|
||||
|
||||
func can_be_placed(zone : PlacementZone) -> bool:
|
||||
for dp in get_dimension_points():
|
||||
var point = global_position + dp
|
||||
if zone.is_global_point_in_zone(point) == false:
|
||||
return false
|
||||
if zone.entity_holder.is_point_occupied(point):
|
||||
return false
|
||||
return true
|
||||
|
||||
func try_place(zone : PlacementZone) -> bool:
|
||||
if can_be_placed(zone) == false:
|
||||
return false
|
||||
|
||||
return zone.entity_holder.add_construction(self)
|
||||
|
||||
func get_dimension_points() -> Array[Vector2]:
|
||||
var result : Array[Vector2] = []
|
||||
result.resize(dimensions.size.x*dimensions.size.y)
|
||||
for x in range(dimensions.size.x):
|
||||
for y in range(dimensions.size.y):
|
||||
result[x + y * dimensions.size.x] = (Vector2(x,y)*Globals.GRID_SIZE + Vector2(dimensions.position))
|
||||
return result
|
Loading…
Add table
Add a link
Reference in a new issue