Skip to content

Commit

Permalink
save
Browse files Browse the repository at this point in the history
  • Loading branch information
indutny committed May 29, 2020
1 parent 84e383a commit a16d5b6
Show file tree
Hide file tree
Showing 9 changed files with 98 additions and 47 deletions.
61 changes: 31 additions & 30 deletions scenes/HUD/StationBuilding.tscn
Expand Up @@ -16,78 +16,79 @@ margin_bottom = 20.0
alignment = 1

[node name="TypeLabel" type="Label" parent="Top"]
margin_left = 332.0
margin_left = 336.0
margin_top = 3.0
margin_right = 366.0
margin_right = 370.0
margin_bottom = 17.0
text = "Type:"

[node name="Type" type="OptionButton" parent="Top"]
margin_left = 370.0
margin_right = 434.0
margin_left = 374.0
margin_right = 438.0
margin_bottom = 20.0
rect_min_size = Vector2( 64, 0 )

[node name="Sep1" type="VSeparator" parent="Top"]
margin_left = 438.0
margin_right = 442.0
margin_left = 442.0
margin_right = 446.0
margin_bottom = 20.0

[node name="CostLabel" type="Label" parent="Top"]
margin_left = 446.0
margin_left = 450.0
margin_top = 3.0
margin_right = 478.0
margin_right = 482.0
margin_bottom = 17.0
text = "Cost:"

[node name="Cost" type="Label" parent="Top"]
margin_left = 482.0
margin_left = 486.0
margin_top = 3.0
margin_right = 490.0
margin_right = 494.0
margin_bottom = 17.0
text = "0"

[node name="Sep2" type="VSeparator" parent="Top"]
margin_left = 494.0
margin_right = 498.0
margin_left = 498.0
margin_right = 502.0
margin_bottom = 20.0

[node name="Action" type="Button" parent="Top"]
margin_left = 502.0
margin_right = 555.0
margin_left = 506.0
margin_right = 551.0
margin_bottom = 20.0
text = "Action"
text = "Build"

[node name="Bottom" type="HBoxContainer" parent="."]
[node name="Middle" type="HBoxContainer" parent="."]
margin_top = 24.0
margin_right = 888.0
margin_bottom = 38.0
alignment = 1

[node name="ConsumesLabel" type="Label" parent="Bottom"]
margin_left = 367.0
margin_right = 438.0
[node name="ConsumesLabel" type="Label" parent="Middle"]
margin_left = 406.0
margin_right = 477.0
margin_bottom = 14.0
text = "Consumes:"

[node name="Consumes" type="HBoxContainer" parent="Bottom"]
margin_left = 442.0
margin_right = 442.0
[node name="Consumes" type="HBoxContainer" parent="Middle"]
margin_left = 481.0
margin_right = 481.0
margin_bottom = 14.0

[node name="Separator" type="VSeparator" parent="Bottom"]
margin_left = 446.0
margin_right = 450.0
margin_bottom = 14.0
[node name="Bottom" type="HBoxContainer" parent="."]
margin_top = 42.0
margin_right = 888.0
margin_bottom = 56.0
alignment = 1

[node name="ProducesLabel" type="Label" parent="Bottom"]
margin_left = 454.0
margin_right = 517.0
margin_left = 410.0
margin_right = 473.0
margin_bottom = 14.0
text = "Produces:"

[node name="Produces" type="HBoxContainer" parent="Bottom"]
margin_left = 521.0
margin_right = 521.0
margin_left = 477.0
margin_right = 477.0
margin_bottom = 14.0
[connection signal="item_selected" from="Top/Type" to="." method="_on_Type_item_selected"]
9 changes: 5 additions & 4 deletions scenes/HUD/StationBuildingsTab.tscn
@@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=2]

[ext_resource path="res://scenes/HUD/StationBuilding.tscn" type="PackedScene" id=1]
[ext_resource path="res://scripts/HUD/StationBuildingsTab.gd" type="Script" id=1]

[node name="StationBuildingsTab" type="ScrollContainer"]
anchor_right = 1.0
Expand All @@ -9,12 +9,13 @@ margin_left = 4.0
margin_top = 32.0
margin_right = -4.0
margin_bottom = -4.0
script = ExtResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}

[node name="List" type="VBoxContainer" parent="."]
margin_right = 1016.0
margin_bottom = 564.0
size_flags_horizontal = 3
size_flags_vertical = 3

[node name="MenuBuilding" parent="List" instance=ExtResource( 1 )]
margin_right = 1016.0
1 change: 1 addition & 0 deletions scenes/HUD/StationMenu.tscn
Expand Up @@ -63,6 +63,7 @@ visible = false
visible = false

[node name="Buildings" parent="TabContainer" instance=ExtResource( 2 )]
visible = false
[connection signal="pressed" from="TabContainer/Station/Undock" to="." method="_on_Undock_pressed"]
[connection signal="transaction" from="TabContainer/Sell" to="." method="_on_any_transaction"]
[connection signal="transaction" from="TabContainer/Buy" to="." method="_on_any_transaction"]
5 changes: 4 additions & 1 deletion scenes/Main.tscn
Expand Up @@ -31,7 +31,10 @@ script = ExtResource( 5 )
buy_price = 7.0
sell_price = 6.0

[node name="ElectrolysisPlan" parent="Universe/Stations/Alpha" instance=ExtResource( 7 )]
[node name="Vacant" parent="Universe/Stations/Alpha" instance=ExtResource( 7 )]

[node name="ElectrolysisPlan2" parent="Universe/Stations/Alpha" instance=ExtResource( 7 )]
building_type = 1

[node name="Beta" parent="Universe/Stations" instance=ExtResource( 3 )]
transform = Transform( 0.699855, -0.474396, -0.533996, 0.377148, 0.880312, -0.287768, 0.606599, 0, 0.795008, 436.348, -134.14, -130.269 )
Expand Down
5 changes: 5 additions & 0 deletions scripts/Constants.gd
Expand Up @@ -36,21 +36,25 @@ export(Dictionary) var RESOURCE_WEIGHT = {
}

enum BuildingType {
Vacant,
ElectrolysisPlant,
FuelRefinery
}

export(Dictionary) var BUILDING_TYPE = {
BuildingType.Vacant: "Vacant",
BuildingType.ElectrolysisPlant: "Electrolysis Plant",
BuildingType.FuelRefinery: "Fuel Refinery"
}

export(Dictionary) var BUILDING_COST = {
BuildingType.Vacant: 0,
BuildingType.ElectrolysisPlant: 700,
BuildingType.FuelRefinery: 1000
}

export(Dictionary) var BUILDING_CONSUMES = {
BuildingType.Vacant: {},
BuildingType.ElectrolysisPlant: {
ResourceType.Ice: 1
},
Expand All @@ -61,6 +65,7 @@ export(Dictionary) var BUILDING_CONSUMES = {
}

export(Dictionary) var BUILDING_PRODUCES = {
BuildingType.Vacant: {},
BuildingType.ElectrolysisPlant: {
ResourceType.Hydrogen: 2,
ResourceType.Oxygen: 1
Expand Down
46 changes: 35 additions & 11 deletions scripts/HUD/StationBuilding.gd
Expand Up @@ -2,27 +2,51 @@ extends VBoxContainer

const ProductionItem = preload("res://scenes/HUD/StationProductionItem.tscn")

func _ready():
var building: StationBuilding

func set_building(building_: StationBuilding):
building = building_

$Top/Type.clear()
for building_type in Constants.BuildingType.values():
$Top/Type.add_item(Constants.BUILDING_TYPE[building_type], building_type)
if building.building_type != Constants.BuildingType.Vacant and \
building_type == Constants.BuildingType.Vacant:
continue
$Top/Type.add_item(Constants.BUILDING_TYPE[building_type], \
building_type)
_on_Type_item_selected($Top/Type.selected)

$Top/Type.select(building.building_type)
if building.building_type != Constants.BuildingType.Vacant:
$Top/Action.visible = false
$Top/Action.text = str("Replace")

func _on_Type_item_selected(idx):
var id = $Top/Type.get_item_id(idx)
$Top/Action.visible = \
id != building.building_type and \
id != Constants.BuildingType.Vacant

# Clear consumption/production
for child in $Middle/Consumes.get_children():
$Middle/Consumes.remove_child(child)
for child in $Bottom/Produces.get_children():
$Bottom/Produces.remove_child(child)

func _on_Type_item_selected(id):
if id == Constants.BuildingType.Vacant:
$Top/Cost.text = str("N/A")
return

$Top/Cost.text = str(Constants.BUILDING_COST[id])

var produces = Constants.BUILDING_PRODUCES[id]
var consumes = Constants.BUILDING_CONSUMES[id]
for child in to_production_nodes(consumes):
$Middle/Consumes.add_child(child)

for child in $Bottom/Produces.get_children():
$Bottom/Produces.remove_child(child)
for child in $Bottom/Consumes.get_children():
$Bottom/Consumes.remove_child(child)

var produces = Constants.BUILDING_PRODUCES[id]
for child in to_production_nodes(produces):
$Bottom/Produces.add_child(child)
for child in to_production_nodes(consumes):
$Bottom/Consumes.add_child(child)

func to_production_nodes(list):
var out = []
Expand Down
15 changes: 15 additions & 0 deletions scripts/HUD/StationBuildingsTab.gd
@@ -0,0 +1,15 @@
extends ScrollContainer

const HUDStationBuilding = preload("res://scenes/HUD/StationBuilding.tscn")

var current_player: Player
var station: Station

func set_player(player: Player):
current_player = player
station = player.current_station

for building in station.buildings:
var item = HUDStationBuilding.instance()
item.set_building(building)
$List.add_child(item)
1 change: 1 addition & 0 deletions scripts/HUD/StationMenu.gd
Expand Up @@ -9,6 +9,7 @@ func set_player(player: Player):

$TabContainer/Sell.set_player(player)
$TabContainer/Buy.set_player(player)
$TabContainer/Buildings.set_player(player)


func _on_Undock_pressed():
Expand Down
2 changes: 1 addition & 1 deletion scripts/Station/StationBuilding.gd
Expand Up @@ -2,4 +2,4 @@ extends Node
class_name StationBuilding

export(Constants.BuildingType) var building_type = \
Constants.BuildingType.ElectrolysisPlant
Constants.BuildingType.Vacant

0 comments on commit a16d5b6

Please sign in to comment.