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)
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
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
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
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)
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)
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)
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)
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)
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)