Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extends Control
- @onready var grid_layer: TileMapLayer = $"../../../GridLayer"
- @onready var truck_button: Button = $CanvasLayer/Panel/truckButton
- @onready var tile_map_layer: TileMapLayer = $"../../../TileMapLayer"
- @onready var truck_building_placer: Node2D = $"../../../truckBuilding/truckBuildingPlacer"
- @onready var tile_map_layer_2: TileMapLayer = $"../../../TileMapLayer2"
- @onready var canvas_layer: CanvasLayer = $CanvasLayer
- @onready var truck_building: Node2D = $"../../../truckBuilding"
- @onready var map: Node2D = $"../../.."
- @onready var tower_building_placer: Node2D = $"../../../resourceTower/towerBuildingPlacer"
- @onready var resource_tower: Node2D = $"../../../resourceTower"
- @onready var tank_building_placer: Node2D = $"../../../tankBuilding/tankBuildingPlacer"
- @onready var tank_building: Node2D = $"../../../tankBuilding"
- @onready var barracks_placer: Node2D = $"../../../barracks/barracksPlacer"
- @onready var barracks: Node2D = $"../../../barracks"
- const gridSize = Vector2(64, 64)
- const SPEED = 200
- var fadedColor = Color(1,1,1,.75)
- var placedColor = Color(1,1,1,1)
- func _physics_process(delta: float) -> void:
- if (Globals.truckPressed == true \
- or Globals.barracksPressed == true \
- or Globals.tankPressed == true \
- or Globals.towerPressed == true):
- nodeFollowsMouse()
- func showBarracks():
- if Globals.barracksPressed == true:
- barracks_placer.visible = true
- barracks_placer.modulate = fadedColor
- func hideBarracks():
- barracks_placer.visible = false
- func showTruck():
- # translucent appearance of the building
- if Globals.truckPressed == true:
- truck_building_placer.visible = true
- truck_building_placer.modulate = fadedColor
- func hideTruck():
- truck_building_placer.visible = false
- func showTower():
- if Globals.towerPressed == true:
- tower_building_placer.visible = true
- tower_building_placer.modulate = fadedColor
- func hideTower():
- truck_building_placer.visible = false
- func showTank():
- if Globals.tankPressed == true:
- tank_building_placer.visible = true
- tank_building_placer.modulate = fadedColor
- func hideTank():
- tank_building_placer.visible = false
- func nodeFollowsMouse():
- # truck building follows mouse cursor and snaps to grid
- if Globals.truckPressed == true:
- truck_building_placer.position = truck_building_placer.get_global_mouse_position().snapped(gridSize)
- if Globals.towerPressed == true:
- tower_building_placer.position = tower_building_placer.get_global_mouse_position().snapped(gridSize)
- if Globals.tankPressed == true:
- tank_building_placer.position = tank_building_placer.get_global_mouse_position().snapped(gridSize)
- if Globals.barracksPressed == true:
- barracks_placer.position = barracks_placer.get_global_mouse_position().snapped(gridSize)
- func placeBarracks():
- var originalBarracks = get_node("../../../barracks")
- var newBarracks = originalBarracks.duplicate()
- map.add_child(newBarracks)
- Globals.newBarracksUnits += 1
- Globals.newBuildingUnits = Globals.newTankUnits + Globals.newTruckUnits + Globals.newTowerUnits + Globals.newBarracksUnits
- Globals.newBuildingUnitsHP[str(map.get_child(8+Globals.newBuildingUnits))] = 100
- map.get_child(8 + Globals.newBarracksUnits).get_child(2).modulate = placedColor
- hideBarracks()
- hideGrid()
- print(Globals.newBuildingUnitsHP)
- Globals.barracksPressed = false
- func placeTruck():
- var originalTruck = get_node("../../../truckBuilding")
- var newTruck = originalTruck.duplicate()
- map.add_child(newTruck)
- Globals.newTruckUnits += 1
- Globals.newBuildingUnits = Globals.newTankUnits + Globals.newTruckUnits + Globals.newTowerUnits + Globals.newBarracksUnits
- Globals.newBuildingUnitsHP[str(map.get_child(8+Globals.newBuildingUnits))] = 150
- map.get_child(8 + Globals.newTruckUnits).get_child(2).modulate = placedColor
- hideTruck()
- hideGrid()
- print(Globals.newBuildingUnitsHP)
- Globals.truckPressed = false
- func placeTower():
- var originalTower = get_node("../../../resourceTower")
- var newTower = originalTower.duplicate()
- map.add_child(newTower)
- Globals.newTowerUnits += 1
- Globals.newBuildingUnits = Globals.newTankUnits + Globals.newTruckUnits + Globals.newTowerUnits + Globals.newBarracksUnits
- Globals.newBuildingUnitsHP[str(map.get_child(8+Globals.newBuildingUnits))] = 50
- map.get_child(8 + Globals.newTowerUnits).get_child(2).modulate = placedColor
- hideTower()
- hideGrid()
- print(Globals.newBuildingUnitsHP)
- Globals.towerPressed = false
- func placeTank():
- var originalTank = get_node("../../../tankBuilding")
- var newTank = originalTank.duplicate()
- map.add_child(newTank)
- Globals.newTankUnits += 1
- Globals.newBuildingUnits = Globals.newTankUnits + Globals.newTruckUnits + Globals.newTowerUnits + Globals.newBarracksUnits
- Globals.newBuildingUnitsHP[str(map.get_child(8+Globals.newBuildingUnits))] = 200
- map.get_child(8 + Globals.newTankUnits).get_child(2).modulate = placedColor
- hideTank()
- hideGrid()
- print(Globals.newBuildingUnitsHP)
- Globals.tankPressed = false
- func _unhandled_input(event: InputEvent) -> void:
- # if left click is pressed:
- # place building on grid location, then hide the ui and grid
- if event is InputEventMouseButton and Globals.truckPressed == true:
- if event.button_index == MOUSE_BUTTON_LEFT:
- placeTruck()
- # if right click is pressed:
- # kill the process and hide the ui
- elif event.button_index == MOUSE_BUTTON_RIGHT:
- hideTruck()
- hideGrid()
- Globals.truckPressed = false
- if event is InputEventMouseButton and Globals.towerPressed == true:
- if event.button_index == MOUSE_BUTTON_LEFT:
- placeTower()
- elif event.button_index == MOUSE_BUTTON_RIGHT:
- hideTower()
- hideGrid()
- Globals.towerPressed = false
- if event is InputEventMouseButton and Globals.tankPressed == true:
- if event.button_index == MOUSE_BUTTON_LEFT:
- placeTank()
- elif event.button_index == MOUSE_BUTTON_RIGHT:
- hideTank()
- hideGrid()
- Globals.tankPressed = false
- if event is InputEventMouseButton and Globals.barracksPressed == true:
- if event.button_index == MOUSE_BUTTON_LEFT:
- placeBarracks()
- elif event.button_index == MOUSE_BUTTON_RIGHT:
- hideBarracks()
- hideGrid()
- Globals.barracksPressed = false
- # displays a grid
- func showGrid():
- if (Globals.truckPressed == true \
- or Globals.barracksPressed == true \
- or Globals.tankPressed == true \
- or Globals.towerPressed == true):
- tile_map_layer.modulate = Color(1,1,1,.5)
- grid_layer.visible = true
- func hideGrid():
- tile_map_layer.modulate = Color(1,1,1,1)
- grid_layer.visible = false
- func _on_truck_button_pressed() -> void:
- Globals.truckPressed = true
- canvas_layer.visible = false
- showGrid()
- showTruck()
- func _on_tower_button_pressed() -> void:
- Globals.towerPressed = true
- canvas_layer.visible = false
- showGrid()
- showTower()
- func _on_tank_button_pressed() -> void:
- Globals.tankPressed = true
- canvas_layer.visible = false
- showGrid()
- showTank()
- func _on_barracks_button_pressed() -> void:
- Globals.barracksPressed = true
- canvas_layer.visible = false
- showGrid()
- showBarracks()
Advertisement
Add Comment
Please, Sign In to add comment