예제 #1
0
def import_json(parent):
    filename = QFileDialog.getOpenFileName(
        parent, "Import Item File", filter="JSON (*.json);;All Files (*)")

    if filename[0] == "":
        return None

    def parse():
        try:
            item_data = json.load(open(filename[0], "r"))
        except:
            logging.exception("Error parsing item: %s", filename[0])
            return False
        if "name" not in item_data:
            return False
        if "count" not in item_data:
            item_data["count"] = 1
        if "parameters" not in item_data:
            item_data["parameters"] = {}
        return item_data

    item = parse()
    if not item:
        logging.warning("Invalid item file: %s", filename[0])
        return False
    else:
        return saves.new_item_data(item["name"], item["count"],
                                   item["parameters"])
예제 #2
0
def import_json(parent):
    filename = QFileDialog.getOpenFileName(parent,
                                           "Import Item File",
                                           filter="JSON (*.json);;All Files (*)")

    if filename[0] == "":
        return None

    def parse():
        try:
            item_data = json.load(open(filename[0], "r"))
        except:
            logging.exception("Error parsing item: %s", filename[0])
            return False
        if "name" not in item_data:
            return False
        if "count" not in item_data:
            item_data["count"] = 1
        if "parameters" not in item_data:
            item_data["parameters"] = {}
        return item_data

    item = parse()
    if not item:
        logging.warning("Invalid item file: %s", filename[0])
        return False
    else:
        return saves.new_item_data(item["name"],
                                   item["count"],
                                   item["parameters"])
예제 #3
0
    def update_item(self):
        """Update main item view with current item browser data."""
        name = self.ui.item_type.text()
        item = self.assets.items().get_item(name)
        uuid = self.player.get_uuid()

        generated_item = {
            "generatedgun":
            lambda: self.assets.items().generate_gun(item),
            "generatedsword":
            lambda: self.assets.items().generate_sword(item),
            "generatedshield":
            lambda: self.assets.items().generate_shield(item),
            "sapling":
            lambda: self.assets.items().generate_sapling(item),
            "filledcapturepod":
            lambda: self.assets.items().generate_filledcapturepod(item, uuid)
        }

        if item is not None:
            category = re.search("\..+$", item[1])
            gen_match_cat = (category is not None
                             and category.group()[1:] in generated_item.keys())
            gen_match_name = name in generated_item.keys()

            if gen_match_cat:
                name = category.group()[1:]
                self.ui.item_type.setText(name)
                generated = generated_item[name]()
                self.item = saves.new_item_data(name, 1, generated)
            elif gen_match_name:
                generated = generated_item[name]()
                self.item = saves.new_item_data(name, 1, generated)
            else:
                self.item = saves.new_item_data(name, 1, item[0])

            self.ui.count.setValue(1)
            self.update()
            return True
        else:
            self.item = saves.new_item_data("", 1)
            self.ui.desc.setText(
                "<html><body><strong>Empty Slot</strong></body></html>")
            self.update()
            return False
예제 #4
0
    def update_item(self):
        """Update main item view with current item browser data."""
        name = self.ui.item_type.text()
        item = self.assets.items().get_item(name)
        uuid = self.player.get_uuid()

        generated_item = {
            "generatedgun": lambda: self.assets.items().generate_gun(item),
            "generatedsword": lambda: self.assets.items().generate_sword(item),
            "generatedshield": lambda: self.assets.items().generate_shield(item),
            "sapling": lambda: self.assets.items().generate_sapling(item),
            "filledcapturepod": lambda: self.assets.items().generate_filledcapturepod(item, uuid)
        }

        if item is not None:
            category = re.search("\..+$", item[1])
            gen_match_cat = (category is not None and
                             category.group()[1:] in generated_item.keys())
            gen_match_name = name in generated_item.keys()

            if gen_match_cat:
                name = category.group()[1:]
                self.ui.item_type.setText(name)
                generated = generated_item[name]()
                self.item = saves.new_item_data(name, 1, generated)
            elif gen_match_name:
                generated = generated_item[name]()
                self.item = saves.new_item_data(name, 1, generated)
            else:
                self.item = saves.new_item_data(name, 1, item[0])

            self.ui.count.setValue(1)
            self.update()
            return True
        else:
            self.item = saves.new_item_data("", 1)
            self.ui.desc.setText("<html><body><strong>Empty Slot</strong></body></html>")
            self.update()
            return False
예제 #5
0
    def update_item(self):
        """Update main item view with current item browser data."""
        name = self.ui.item_type.text()

        # TODO: i guess eventually we're gonna need like.. some sort of generic
        # generate item function
        try:
            item = self.assets.items().get_item(name)
            if item[1].endswith("generatedgun"):
                options = self.assets.items().generate_gun(item)
                name = options["itemName"]
            elif item[1].endswith("generatedsword"):
                options = self.assets.items().generate_sword(item)
                name = options["itemName"]
            elif item[1].endswith("generatedshield"):
                options = self.assets.items().generate_shield(item)
                name = options["itemName"]
            elif item[1].endswith("sapling"):
                options = self.assets.items().generate_sapling(item)
            elif name == "filledcapturepod":
                options = self.assets.items().generate_filledcapturepod(item,
                                                                        self.player.get_uuid())
            else:
                options = item[0]
        except TypeError:
            self.item = empty_slot().item
            self.ui.desc.setText("<html><body><strong>Empty Slot</strong></body></html>")
            self.ui.icon.setPixmap(QPixmap())
            self.clear_item_options()
            return

        self.ui.item_type.setText(name)

        self.item = saves.new_item_data(name, 1, options)

        self.ui.count.setValue(1)
        self.update_item_info(name, options)
        self.populate_options()
예제 #6
0
def new_blueprint(name, data):
    return saves.new_item_data(name, 1, data)
예제 #7
0
 def get_item(self):
     """Return an ItemWidget of the currently open item."""
     name = self.ui.item_type.text()
     count = self.ui.count.value()
     data = self.item["parameters"]
     return saves.new_item_data(name, count, data)
예제 #8
0
def new_blueprint(name, data):
    return saves.new_item_data(name, 1, data)
예제 #9
0
파일: techs.py 프로젝트: Tsunder/starcheat
def make_tech_list(tech_names):
    techs = []
    for i in tech_names:
        techs.append(saves.new_item_data(i))
    return techs
예제 #10
0
 def get_item(self):
     """Return an ItemWidget of the currently open item."""
     name = self.ui.item_type.text()
     count = self.ui.count.value()
     data = self.item["parameters"]
     return saves.new_item_data(name, count, data)
예제 #11
0
파일: techs.py 프로젝트: thakyZ/starcheat
def make_tech_list(tech_names):
    techs = []
    for i in tech_names:
        techs.append(saves.new_item_data(i))
    return techs