Guest User

Untitled

a guest
Oct 28th, 2025
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.99 KB | None | 0 0
  1. extends Control
  2. @onready var grid_layer: TileMapLayer = $"../../../GridLayer"
  3. @onready var truck_button: Button = $CanvasLayer/Panel/truckButton
  4. @onready var tile_map_layer: TileMapLayer = $"../../../TileMapLayer"
  5. @onready var truck_building_placer: Node2D = $"../../../truckBuilding/truckBuildingPlacer"
  6. @onready var tile_map_layer_2: TileMapLayer = $"../../../TileMapLayer2"
  7. @onready var canvas_layer: CanvasLayer = $CanvasLayer
  8. @onready var truck_building: Node2D = $"../../../truckBuilding"
  9. @onready var map: Node2D = $"../../.."
  10. @onready var tower_building_placer: Node2D = $"../../../resourceTower/towerBuildingPlacer"
  11. @onready var resource_tower: Node2D = $"../../../resourceTower"
  12. @onready var tank_building_placer: Node2D = $"../../../tankBuilding/tankBuildingPlacer"
  13. @onready var tank_building: Node2D = $"../../../tankBuilding"
  14. @onready var barracks_placer: Node2D = $"../../../barracks/barracksPlacer"
  15. @onready var barracks: Node2D = $"../../../barracks"
  16.  
  17.  
  18. const gridSize = Vector2(64, 64)
  19. const SPEED = 200
  20.  
  21. var fadedColor = Color(1,1,1,.75)
  22. var placedColor = Color(1,1,1,1)
  23.  
  24. func _physics_process(delta: float) -> void:
  25. if (Globals.truckPressed == true \
  26. or Globals.barracksPressed == true \
  27. or Globals.tankPressed == true \
  28. or Globals.towerPressed == true):
  29. nodeFollowsMouse()
  30.  
  31. func showBarracks():
  32. if Globals.barracksPressed == true:
  33. barracks_placer.visible = true
  34. barracks_placer.modulate = fadedColor
  35.  
  36. func hideBarracks():
  37. barracks_placer.visible = false
  38.  
  39. func showTruck():
  40. # translucent appearance of the building
  41. if Globals.truckPressed == true:
  42. truck_building_placer.visible = true
  43. truck_building_placer.modulate = fadedColor
  44.  
  45. func hideTruck():
  46. truck_building_placer.visible = false
  47.  
  48. func showTower():
  49. if Globals.towerPressed == true:
  50. tower_building_placer.visible = true
  51. tower_building_placer.modulate = fadedColor
  52.  
  53. func hideTower():
  54. truck_building_placer.visible = false
  55.  
  56. func showTank():
  57. if Globals.tankPressed == true:
  58. tank_building_placer.visible = true
  59. tank_building_placer.modulate = fadedColor
  60.  
  61. func hideTank():
  62. tank_building_placer.visible = false
  63.  
  64. func nodeFollowsMouse():
  65. # truck building follows mouse cursor and snaps to grid
  66. if Globals.truckPressed == true:
  67. truck_building_placer.position = truck_building_placer.get_global_mouse_position().snapped(gridSize)
  68. if Globals.towerPressed == true:
  69. tower_building_placer.position = tower_building_placer.get_global_mouse_position().snapped(gridSize)
  70. if Globals.tankPressed == true:
  71. tank_building_placer.position = tank_building_placer.get_global_mouse_position().snapped(gridSize)
  72. if Globals.barracksPressed == true:
  73. barracks_placer.position = barracks_placer.get_global_mouse_position().snapped(gridSize)
  74.  
  75. func placeBarracks():
  76. var originalBarracks = get_node("../../../barracks")
  77. var newBarracks = originalBarracks.duplicate()
  78. map.add_child(newBarracks)
  79. Globals.newBarracksUnits += 1
  80. Globals.newBuildingUnits = Globals.newTankUnits + Globals.newTruckUnits + Globals.newTowerUnits + Globals.newBarracksUnits
  81. Globals.newBuildingUnitsHP[str(map.get_child(8+Globals.newBuildingUnits))] = 100
  82. map.get_child(8 + Globals.newBarracksUnits).get_child(2).modulate = placedColor
  83. hideBarracks()
  84. hideGrid()
  85. print(Globals.newBuildingUnitsHP)
  86. Globals.barracksPressed = false
  87.  
  88. func placeTruck():
  89. var originalTruck = get_node("../../../truckBuilding")
  90. var newTruck = originalTruck.duplicate()
  91. map.add_child(newTruck)
  92. Globals.newTruckUnits += 1
  93. Globals.newBuildingUnits = Globals.newTankUnits + Globals.newTruckUnits + Globals.newTowerUnits + Globals.newBarracksUnits
  94. Globals.newBuildingUnitsHP[str(map.get_child(8+Globals.newBuildingUnits))] = 150
  95. map.get_child(8 + Globals.newTruckUnits).get_child(2).modulate = placedColor
  96. hideTruck()
  97. hideGrid()
  98. print(Globals.newBuildingUnitsHP)
  99. Globals.truckPressed = false
  100.  
  101. func placeTower():
  102. var originalTower = get_node("../../../resourceTower")
  103. var newTower = originalTower.duplicate()
  104. map.add_child(newTower)
  105. Globals.newTowerUnits += 1
  106. Globals.newBuildingUnits = Globals.newTankUnits + Globals.newTruckUnits + Globals.newTowerUnits + Globals.newBarracksUnits
  107. Globals.newBuildingUnitsHP[str(map.get_child(8+Globals.newBuildingUnits))] = 50
  108. map.get_child(8 + Globals.newTowerUnits).get_child(2).modulate = placedColor
  109. hideTower()
  110. hideGrid()
  111. print(Globals.newBuildingUnitsHP)
  112. Globals.towerPressed = false
  113.  
  114. func placeTank():
  115. var originalTank = get_node("../../../tankBuilding")
  116. var newTank = originalTank.duplicate()
  117. map.add_child(newTank)
  118. Globals.newTankUnits += 1
  119. Globals.newBuildingUnits = Globals.newTankUnits + Globals.newTruckUnits + Globals.newTowerUnits + Globals.newBarracksUnits
  120. Globals.newBuildingUnitsHP[str(map.get_child(8+Globals.newBuildingUnits))] = 200
  121. map.get_child(8 + Globals.newTankUnits).get_child(2).modulate = placedColor
  122. hideTank()
  123. hideGrid()
  124. print(Globals.newBuildingUnitsHP)
  125. Globals.tankPressed = false
  126.  
  127. func _unhandled_input(event: InputEvent) -> void:
  128. # if left click is pressed:
  129. # place building on grid location, then hide the ui and grid
  130. if event is InputEventMouseButton and Globals.truckPressed == true:
  131. if event.button_index == MOUSE_BUTTON_LEFT:
  132. placeTruck()
  133. # if right click is pressed:
  134. # kill the process and hide the ui
  135. elif event.button_index == MOUSE_BUTTON_RIGHT:
  136. hideTruck()
  137. hideGrid()
  138. Globals.truckPressed = false
  139.  
  140. if event is InputEventMouseButton and Globals.towerPressed == true:
  141. if event.button_index == MOUSE_BUTTON_LEFT:
  142. placeTower()
  143. elif event.button_index == MOUSE_BUTTON_RIGHT:
  144. hideTower()
  145. hideGrid()
  146. Globals.towerPressed = false
  147.  
  148. if event is InputEventMouseButton and Globals.tankPressed == true:
  149. if event.button_index == MOUSE_BUTTON_LEFT:
  150. placeTank()
  151. elif event.button_index == MOUSE_BUTTON_RIGHT:
  152. hideTank()
  153. hideGrid()
  154. Globals.tankPressed = false
  155.  
  156. if event is InputEventMouseButton and Globals.barracksPressed == true:
  157. if event.button_index == MOUSE_BUTTON_LEFT:
  158. placeBarracks()
  159. elif event.button_index == MOUSE_BUTTON_RIGHT:
  160. hideBarracks()
  161. hideGrid()
  162. Globals.barracksPressed = false
  163. # displays a grid
  164. func showGrid():
  165. if (Globals.truckPressed == true \
  166. or Globals.barracksPressed == true \
  167. or Globals.tankPressed == true \
  168. or Globals.towerPressed == true):
  169. tile_map_layer.modulate = Color(1,1,1,.5)
  170. grid_layer.visible = true
  171.  
  172. func hideGrid():
  173. tile_map_layer.modulate = Color(1,1,1,1)
  174. grid_layer.visible = false
  175.  
  176. func _on_truck_button_pressed() -> void:
  177. Globals.truckPressed = true
  178. canvas_layer.visible = false
  179. showGrid()
  180. showTruck()
  181.  
  182. func _on_tower_button_pressed() -> void:
  183. Globals.towerPressed = true
  184. canvas_layer.visible = false
  185. showGrid()
  186. showTower()
  187.  
  188. func _on_tank_button_pressed() -> void:
  189. Globals.tankPressed = true
  190. canvas_layer.visible = false
  191. showGrid()
  192. showTank()
  193.  
  194. func _on_barracks_button_pressed() -> void:
  195. Globals.barracksPressed = true
  196. canvas_layer.visible = false
  197. showGrid()
  198. showBarracks()
  199.  
Advertisement
Add Comment
Please, Sign In to add comment