Пример #1
0
 def change_profession(self, name, profession):
     '''Changes the profession of a villager.'''
     self.village[
         self.project]['villagers'][name]['profession'] = profession
     JsonHandler.exporter(self.project, self.village)
     self.profession_dropdown.dismiss()
     self.load_villager(name)
Пример #2
0
 def change_supply(self, index, item):
     '''Change the items for the supply.'''
     try:
         self.village[self.project]['villagers'][
             self.villager]['tradings'][index]['supply'] = item
         JsonHandler.exporter(self.project, self.village)
     except ValueError:
         pass
Пример #3
0
 def change_supply_amount(self, index, amount):
     '''Change the amount of items for the supply.'''
     try:
         self.village[self.project]['villagers'][
             self.villager]['tradings'][index]['amount_supply'] = amount
         JsonHandler.exporter(self.project, self.village)
     except ValueError:
         pass
Пример #4
0
    def rm_villager(self, name):
        '''Adding a villager to the village.'''

        try:
            del self.village[self.project]['villagers'][name]
            JsonHandler.exporter(self.project, self.village)
            self.main(self.project, None)
        except KeyError:
            pass
Пример #5
0
 def rm_trading(self, index):
     '''Remove trade from villager's trade list.'''
     try:
         self.village[self.project]['villagers'][
             self.villager]['tradings'].remove(
                 self.village[self.project]['villagers'][
                     self.villager]['tradings'][index])
         JsonHandler.exporter(self.project, self.village)
         self.load_villager(self.villager)
     except ValueError as e:
         print(e)
Пример #6
0
 def add_trading(self):
     '''Adding trade to villager's trade list.'''
     empty_trading = dict()
     empty_trading['amount_demand'] = str()
     empty_trading['amount_supply'] = str()
     empty_trading['demand'] = str()
     empty_trading['supply'] = str()
     self.village[self.project]['villagers'][
         self.villager]['tradings'].append(empty_trading)
     JsonHandler.exporter(self.project, self.village)
     self.load_villager(self.villager)
Пример #7
0
    def add_villager(self, name):
        '''Adding a villager to the village.'''

        if name != '':
            self.village[self.project]['villagers'][name] = dict()
            self.village[self.project]['villagers'][name]['name'] = name
            self.village[
                self.project]['villagers'][name]['profession'] = 'none'
            self.village[self.project]['villagers'][name]['career'] = 'none'
            self.village[self.project]['villagers'][name]['tradings'] = list()

            JsonHandler.exporter(self.project, self.village)
            self.main(self.project, None)
Пример #8
0
    def build(self):
        '''Loading start screen.'''

        self.icon = 'src/minecraft32px.png'
        self.project = str()
        self.file = 'kv/village.kv'
        self.data = JsonHandler.importer('data')

        self.root = Builder.load_file(self.file)
        Window.maximize()

        ####################
        self.main('vale', None)
Пример #9
0
 def change_career(self, name, career):
     '''Changes the career of a villager.'''
     self.village[self.project]['villagers'][name]['career'] = career
     JsonHandler.exporter(self.project, self.village)
     self.career_dropdown.dismiss()
     self.load_villager(name)
Пример #10
0
    def main(self, project_name, villager):
        '''Loading main screen.'''

        if project_name == '':
            return

        self.title = project_name.lower()
        self.project = project_name.lower()

        try:
            self.village = JsonHandler.importer(self.project)
        except FileNotFoundError:
            JsonHandler.exporter(
                self.project,
                {self.project: {
                    'name': self.project,
                    'villagers': {}
                }})
            self.village = JsonHandler.importer(self.project)

        self.villagers = list(self.village[self.project]['villagers'].keys())

        if villager is None:
            try:
                villager = self.villagers[0]
            except IndexError:
                pass

        Builder.unload_file(self.file)
        self.root.clear_widgets()
        '''self.file = 'kv/main.kv'
        screen = Builder.load_file(self.file)
        villager_grid = VillagerGrid()
        villager_grid.bind(minimum_height=villager_grid.setter('height'))
        layout = ScrollView(pos_hint={'center_x': .5, 'center_y': .5}, do_scroll_x=False)
        layout.add_widget(villager_grid)
        screen.add_widget(layout)
        self.root.add_widget(screen)'''
        screen = MainWidget()

        topbox = BoxLayout(size_hint=(1, 1),
                           orientation='horizontal',
                           padding=20,
                           spacing=20)

        quickview = GridLayout(cols=1,
                               padding=[5, 5, 5, 5],
                               spacing=5,
                               size_hint=(1, None))
        if villager is not None:
            quickview.add_widget(
                TextInput(text=villager,
                          font_size=30,
                          readonly=True,
                          multiline=False,
                          size_hint=(70, 100),
                          size=(70, 100),
                          background_color=(0, 0.5, 1, 1),
                          foreground_color=(1, 1, 1, 1)))
            quickview.add_widget(
                TextInput(text=self.village[self.project]['villagers']
                          [villager]['profession'].capitalize(),
                          font_size=30,
                          readonly=True,
                          multiline=False,
                          size_hint=(70, 100),
                          size=(70, 100),
                          background_color=(0, 0.5, 1, 1),
                          foreground_color=(1, 1, 1, 1)))
            quickview.add_widget(
                TextInput(text=self.village[self.project]['villagers']
                          [villager]['career'].capitalize(),
                          font_size=30,
                          readonly=True,
                          multiline=False,
                          size_hint=(70, 100),
                          size=(70, 100),
                          background_color=(0, 0.5, 1, 1),
                          foreground_color=(1, 1, 1, 1)))
            edit_button = Button(text='Edit',
                                 font_size=30,
                                 size_hint=(70, 100),
                                 size=(70, 100),
                                 background_color=(0, 0.5, 1, 1),
                                 background_normal='src/white16x.png')
            edit_button.bind(on_release=lambda x: self.load_villager(villager))
            quickview.add_widget(edit_button)
        else:
            quickview.add_widget(
                TextInput(text='None',
                          font_size=30,
                          readonly=True,
                          multiline=False,
                          size_hint=(70, 100),
                          size=(70, 100),
                          background_color=(0, 0.5, 1, 1),
                          foreground_color=(1, 1, 1, 1)))
            quickview.add_widget(
                TextInput(text='None',
                          font_size=30,
                          readonly=True,
                          multiline=False,
                          size_hint=(70, 100),
                          size=(70, 100),
                          background_color=(0, 0.5, 1, 1),
                          foreground_color=(1, 1, 1, 1)))
            quickview.add_widget(
                TextInput(text='None',
                          font_size=30,
                          readonly=True,
                          multiline=False,
                          size_hint=(70, 100),
                          size=(70, 100),
                          background_color=(0, 0.5, 1, 1),
                          foreground_color=(1, 1, 1, 1)))
        topbox.add_widget(quickview)

        villager_grid = VillagerGrid()
        villager_grid.bind(minimum_height=villager_grid.setter('height'))
        villager_scroll = ScrollView(pos_hint={
            'center_x': .5,
            'center_y': .5
        },
                                     do_scroll_x=False)
        villager_scroll.add_widget(villager_grid)
        topbox.add_widget(villager_scroll)

        screen.add_widget(topbox)

        button_grid = ButtonGrid()
        screen.add_widget(button_grid)

        self.root.add_widget(screen)