-
Notifications
You must be signed in to change notification settings - Fork 0
/
main_base.py
138 lines (114 loc) · 4.87 KB
/
main_base.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.relativelayout import RelativeLayout
from kivy.uix.scatterlayout import ScatterLayout
from kivy.uix.gridlayout import GridLayout
from kivy.uix.image import Image
from kivy.uix.behaviors import ButtonBehavior
from kivy.uix.label import Label
from kivy.uix.scrollview import ScrollView
from kivy.uix.tabbedpanel import TabbedPanel, TabbedPanelItem
import config
import building
def base_energy():
scroll = ScrollView(do_scroll_x=False, scroll_x=.5, scroll_y=1)
main_rel_layout = RelativeLayout(height=500, width=600, size_hint=(1, 1))
generators_lay = GridLayout(rows=2, padding=20)
generators_desc = BoxLayout(size_hint_y=1)
generators_stack = GridLayout(rows=1, size_hint=(1, 0.5))
# generators stack content
dev_item1 = BoxLayout(padding=5)
dev_item2 = BoxLayout(padding=5)
dev_item3 = BoxLayout(padding=5)
dev_item4 = BoxLayout(padding=5)
dev_item1.add_widget(GenImage())
dev_item2.add_widget(GenImage())
dev_item3.add_widget(GenImage())
dev_item4.add_widget(GenImage())
generators_stack.add_widget(dev_item1)
generators_stack.add_widget(dev_item2)
generators_stack.add_widget(dev_item3)
generators_stack.add_widget(dev_item4)
# generators stack content
# generators description content
generators_desc.add_widget(Label(text='Описание генераторов'))
# generators description content
generators_lay.add_widget(generators_stack)
generators_lay.add_widget(generators_desc)
main_rel_layout.add_widget(generators_lay)
scroll.add_widget(main_rel_layout)
return scroll
def base_food():
pass
def main_base_menu(build_place):
scatter = ScatterLayout()
menu = building.MenuLayout()
inside_menu = building.InsideMenuLayout()
main_box = BoxLayout(orientation='horizontal')
left_box = BoxLayout(orientation='vertical', size_hint_x=.35)
right_box = BoxLayout(size_hint_x=.65)
icon_bottom_box = BoxLayout(size_hint=(.9, .8))
icon_layout = BoxLayout(size_hint_y=.4) # pos_hint=({'top': 1})
# Вывод производства ресурсов
stat_res = res_generation('main_base')
# Добавление вкладок Здания
tb = TabbedPanel(do_default_tab=False, tab_width=130)
base_e = TabbedPanelItem(text='Энергия')
base_e.content = base_energy()
base_f = TabbedPanelItem(text='Пища')
base_f.content = base_food()
tb.add_widget(base_e)
tb.add_widget(base_f)
icon_bottom_box.add_widget(stat_res)
icon_layout.add_widget(Image(source='data/images/buildings/main-base.png'))
left_box.add_widget(icon_layout)
left_box.add_widget(icon_bottom_box)
right_box.add_widget(tb)
main_box.add_widget(left_box)
main_box.add_widget(right_box)
inside_menu.add_widget(main_box)
close_b = building.CloseMenuButton(build_place, scatter)
menu.add_widget(inside_menu)
menu.add_widget(close_b)
scatter.add_widget(menu)
return scatter
def res_generation(id_build):
statistic_grid = GridLayout(cols=1, size_hint_y=None, pos_hint=({'top': .9}), spacing=10, padding=5)
res_gen = BoxLayout(orientation='horizontal', height=40, size_hint_y=None)
res_gen.add_widget(Label(text='Производит ресурсов', size_hint_x=.8))
statistic_grid.add_widget(res_gen)
for r in config.resources:
res = config.resources[r]
build_name = config.resourses_generation[id_build]
if build_name[r] > 0:
stat_box = BoxLayout(orientation='horizontal', height=40, size_hint_y=None)
stat_box.add_widget(Image(source=res[2], size_hint_x=.2))
stat_box.add_widget(Label(text=f'{build_name[r]}', size_hint_x=.8))
statistic_grid.add_widget(stat_box)
return statistic_grid
class GenImage(BoxLayout, ButtonBehavior):
def __init__(self, **kwargs):
super().__init__(**kwargs)
if self.disabled:
self.opacity = .2
def gen_set(self):
scatter = ScatterLayout()
menu = building.MenuLayout()
inside_menu = building.InsideMenuLayout()
main_box = BoxLayout(orientation='horizontal')
left_box = BoxLayout(orientation='vertical', size_hint_x=.35)
right_box = BoxLayout(size_hint_x=.65)
icon_bottom_box = BoxLayout(size_hint=(.9, .8))
icon_layout = BoxLayout(size_hint_y=.4) # pos_hint=({'top': 1})
left_box.add_widget(icon_layout)
left_box.add_widget(icon_bottom_box)
main_box.add_widget(left_box)
main_box.add_widget(right_box)
inside_menu.add_widget(main_box)
close_b = building.CloseMenuButton(self, scatter)
menu.add_widget(inside_menu)
menu.add_widget(close_b)
scatter.add_widget(menu)
return scatter
class DevScrollView(ScrollView):
def __init__(self, **kwargs):
super(DevScrollView, self).__init__(**kwargs)