diff --git a/__init__.py b/__init__.py index 72dba75..155dbd5 100644 --- a/__init__.py +++ b/__init__.py @@ -450,39 +450,6 @@ class createData(bpy.types.Operator): if input.enable_Logic_Json and not input.logicFile: self.report({'ERROR'}, f"No Logic.json file path set. Please set the file path to your Logic.json file.") - if not enable_Logic_Json: - scn = context.scene - if self.reverse_order: - logicFile = {} - num = 1 - for i in range(scn.logic_fields_index, -1, -1): - item = scn.logic_fields[i] - - item_list1 = item.item_list1 - rule_type = item.rule_type - item_list2 = item.item_list2 - logicFile[f"Rule-{num}"] = { - "Items-1": item_list1.split(','), - "Rule-Type": rule_type, - "Items-2": item_list2.split(',') - } - num += 1 - else: - logicFile = {} - num = 1 - for item in scn.logic_fields: - item_list1 = item.item_list1 - rule_type = item.rule_type - item_list2 = item.item_list2 - logicFile[f"Rule-{num}"] = { - "Items-1": item_list1.split(','), - "Rule-Type": rule_type, - "Items-2": item_list2.split(',') - } - num += 1 - - DNA_Generator.send_To_Record_JSON(collectionSize, nftsPerBatch, save_path, enableRarity, enableLogic, logicFile, enableMaterials, - materialsFile, Blend_My_NFTs_Output, batch_json_save_path) Intermediate.send_To_Record_JSON(input) self.report({'INFO'}, f"NFT Data created!") @@ -506,22 +473,6 @@ class exportNFTs(bpy.types.Operator): input = getBMNFTData() # Handling Custom Fields UIList input: - if input.enableCustomFields: - scn = context.scene - if self.reverse_order: - for i in range(scn.custom_metadata_fields_index, -1, -1): - item = scn.custom_metadata_fields[i] - if item.field_name in list(input.custom_Fields.keys()): - raise ValueError(f"A duplicate of '{item.field_name}' was found. Please ensure all Custom Metadata field Names are unique.") - else: - input.custom_Fields[item.field_name] = item.field_value - else: - for item in scn.custom_metadata_fields: - if item.field_name in list(input.custom_Fields.keys()): - raise ValueError(f"A duplicate of '{item.field_name}' was found. Please ensure all Custom Metadata field Names are unique.") - else: - input.custom_Fields[item.field_name] = item.field_value - Intermediate.render_and_save_NFTs(input) diff --git a/main/Intermediate.py b/main/Intermediate.py index 9852684..5606e60 100644 --- a/main/Intermediate.py +++ b/main/Intermediate.py @@ -1,10 +1,47 @@ import json import bpy -def send_To_Record_JSON(input): from main import DNA_Generator, Exporter def send_To_Record_JSON(input, reverse_order=False): + + if input.enableLogic: + if input.enable_Logic_Json and input.logicFile: + input.logicFile = json.load(open(input.logicFile)) + + if input.enable_Logic_Json and not input.logicFile: + print({'ERROR'}, f"No Logic.json file path set. Please set the file path to your Logic.json file.") + + if not input.enable_Logic_Json: + scn = bpy.context.scene + if reverse_order: + input.logicFile = {} + num = 1 + for i in range(scn.logic_fields_index, -1, -1): + item = scn.logic_fields[i] + + item_list1 = item.item_list1 + rule_type = item.rule_type + item_list2 = item.item_list2 + input.logicFile[f"Rule-{num}"] = { + "Items-1": item_list1.split(','), + "Rule-Type": rule_type, + "Items-2": item_list2.split(',') + } + num += 1 + else: + input.logicFile = {} + num = 1 + for item in scn.logic_fields: + item_list1 = item.item_list1 + rule_type = item.rule_type + item_list2 = item.item_list2 + input.logicFile[f"Rule-{num}"] = { + "Items-1": item_list1.split(','), + "Rule-Type": rule_type, + "Items-2": item_list2.split(',') + } + num += 1 DNA_Generator.send_To_Record_JSON( input.collectionSize, input.nftsPerBatch, @@ -20,3 +57,20 @@ def send_To_Record_JSON(input, reverse_order=False): def render_and_save_NFTs(input, reverse_order=False): + if input.enableCustomFields: + scn = bpy.context.scene + if reverse_order: + for i in range(scn.custom_metadata_fields_index, -1, -1): + item = scn.custom_metadata_fields[i] + if item.field_name in list(input.custom_Fields.keys()): + raise ValueError(f"A duplicate of '{item.field_name}' was found. Please ensure all Custom Metadata field Names are unique.") + else: + input.custom_Fields[item.field_name] = item.field_value + else: + for item in scn.custom_metadata_fields: + if item.field_name in list(input.custom_Fields.keys()): + raise ValueError(f"A duplicate of '{item.field_name}' was found. Please ensure all Custom Metadata field Names are unique.") + else: + input.custom_Fields[item.field_name] = item.field_value + + Exporter.render_and_save_NFTs(input) \ No newline at end of file