finish terrain generation
This commit is contained in:
		
							
								
								
									
										166
									
								
								scripts/ore_manager/block_gen.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										166
									
								
								scripts/ore_manager/block_gen.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,166 @@
 | 
			
		||||
import sys
 | 
			
		||||
import os
 | 
			
		||||
import shutil
 | 
			
		||||
 | 
			
		||||
def ReadListFromFile(filename, listInstance):
 | 
			
		||||
    f = open(filename, 'r', encoding='utf-8')
 | 
			
		||||
    while True:
 | 
			
		||||
        cache = f.readline()
 | 
			
		||||
        if cache == '':
 | 
			
		||||
            break;
 | 
			
		||||
        cache = cache.strip()
 | 
			
		||||
        if cache == '':
 | 
			
		||||
            listInstance.append('')
 | 
			
		||||
            continue
 | 
			
		||||
        if cache.startswith('//'):
 | 
			
		||||
            continue
 | 
			
		||||
        listInstance.append(cache)
 | 
			
		||||
    f.close()
 | 
			
		||||
 | 
			
		||||
def GetUnderlineName(strl):
 | 
			
		||||
  return strl.lower().replace(',', '').replace('& ', '').replace('é', 'e').replace('-', '_').replace("'", '').replace('"', '').replace(' ', '_')
 | 
			
		||||
    
 | 
			
		||||
# folder creation
 | 
			
		||||
if not os.path.isdir('data/teyvatcraft/loot_tables/blocks'):
 | 
			
		||||
    os.makedirs('data/teyvatcraft/loot_tables/blocks')
 | 
			
		||||
if not os.path.isdir('assets/teyvatcraft/models/block'):
 | 
			
		||||
    os.makedirs('assets/teyvatcraft/models/block')
 | 
			
		||||
if not os.path.isdir('assets/teyvatcraft/models/item'):
 | 
			
		||||
    os.makedirs('assets/teyvatcraft/models/item')
 | 
			
		||||
if not os.path.isdir('assets/teyvatcraft/blockstates'):
 | 
			
		||||
    os.makedirs('assets/teyvatcraft/blockstates')
 | 
			
		||||
if not os.path.isdir('assets/teyvatcraft/textures/block'):
 | 
			
		||||
    os.makedirs('assets/teyvatcraft/textures/block')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# read file
 | 
			
		||||
enList = []
 | 
			
		||||
zhList = []
 | 
			
		||||
 | 
			
		||||
ReadListFromFile('zh.txt', zhList)
 | 
			
		||||
ReadListFromFile('en.txt', enList)
 | 
			
		||||
 | 
			
		||||
if len(zhList) != len(enList):
 | 
			
		||||
    print('2 files item is not matched')
 | 
			
		||||
    sys.exit(0)
 | 
			
		||||
 | 
			
		||||
javaDeclareFile = open('declare.block.java', 'w', encoding='utf-8')
 | 
			
		||||
javaRegisterFile = open('register.block.java', 'w', encoding='utf-8')
 | 
			
		||||
langZhFile = open('zh_cn.block.json', 'w', encoding='utf-8')
 | 
			
		||||
langEnFile = open('en_us.block.json', 'w', encoding='utf-8')
 | 
			
		||||
for index in range(len(enList)):
 | 
			
		||||
    if enList[index] == '':
 | 
			
		||||
        # keep blank line in register & declare
 | 
			
		||||
        javaDeclareFile.write('\n')
 | 
			
		||||
        javaRegisterFile.write('\n')
 | 
			
		||||
        langZhFile.write('\n')
 | 
			
		||||
        langEnFile.write('\n')
 | 
			
		||||
        continue
 | 
			
		||||
 | 
			
		||||
    (droppedName, oreName) = enList[index].split('#')
 | 
			
		||||
    dropped_underlineName = GetUnderlineName(droppedName)
 | 
			
		||||
    ore_underlineName = GetUnderlineName(oreName)
 | 
			
		||||
    ore_upperName = ore_underlineName.upper()
 | 
			
		||||
 | 
			
		||||
    flootTables = open('data/teyvatcraft/loot_tables/blocks/' + ore_underlineName + '.json', 'w', encoding='utf-8')
 | 
			
		||||
    fblockstates = open('assets/teyvatcraft/blockstates/' + ore_underlineName + '.json', 'w', encoding='utf-8')
 | 
			
		||||
    fmodel = open('assets/teyvatcraft/models/block/{}.json'.format(ore_underlineName), 'w', encoding='utf-8')
 | 
			
		||||
    fmodelItem = open('assets/teyvatcraft/models/item/{}.json'.format(ore_underlineName), 'w', encoding='utf-8')
 | 
			
		||||
    
 | 
			
		||||
    flootTables.write('''{{
 | 
			
		||||
    "type": "minecraft:block",
 | 
			
		||||
    "pools": [
 | 
			
		||||
      {{
 | 
			
		||||
        "rolls": 1,
 | 
			
		||||
        "entries": [
 | 
			
		||||
          {{
 | 
			
		||||
            "type": "minecraft:alternatives",
 | 
			
		||||
            "children": [
 | 
			
		||||
              {{
 | 
			
		||||
                "type": "minecraft:item",
 | 
			
		||||
                "conditions": [
 | 
			
		||||
                  {{
 | 
			
		||||
                    "condition": "minecraft:match_tool",
 | 
			
		||||
                    "predicate": {{
 | 
			
		||||
                      "enchantments": [
 | 
			
		||||
                        {{
 | 
			
		||||
                          "enchantment": "minecraft:silk_touch",
 | 
			
		||||
                          "levels": {{
 | 
			
		||||
                            "min": 1
 | 
			
		||||
                          }}
 | 
			
		||||
                        }}
 | 
			
		||||
                      ]
 | 
			
		||||
                    }}
 | 
			
		||||
                  }}
 | 
			
		||||
                ],
 | 
			
		||||
                "name": "teyvatcraft:{}"
 | 
			
		||||
              }},
 | 
			
		||||
              {{
 | 
			
		||||
                "type": "minecraft:item",
 | 
			
		||||
                "functions": [
 | 
			
		||||
                  {{
 | 
			
		||||
                    "function": "minecraft:set_count",
 | 
			
		||||
                    "count": {{
 | 
			
		||||
                      "min": 1.0,
 | 
			
		||||
                      "max": 2.0,
 | 
			
		||||
                      "type": "minecraft:uniform"
 | 
			
		||||
                    }}
 | 
			
		||||
                  }},
 | 
			
		||||
                  {{
 | 
			
		||||
                    "function": "minecraft:apply_bonus",
 | 
			
		||||
                    "enchantment": "minecraft:fortune",
 | 
			
		||||
                    "formula": "minecraft:uniform_bonus_count",
 | 
			
		||||
                    "parameters": {{
 | 
			
		||||
                      "bonusMultiplier": 1
 | 
			
		||||
                    }}
 | 
			
		||||
                  }},
 | 
			
		||||
                  {{
 | 
			
		||||
                    "function": "minecraft:explosion_decay"
 | 
			
		||||
                  }}
 | 
			
		||||
                ],
 | 
			
		||||
                "name": "teyvatcraft:{}"
 | 
			
		||||
              }}
 | 
			
		||||
            ]
 | 
			
		||||
          }}
 | 
			
		||||
        ]
 | 
			
		||||
      }}
 | 
			
		||||
    ]
 | 
			
		||||
}}'''.format(ore_underlineName, dropped_underlineName))
 | 
			
		||||
 | 
			
		||||
    fblockstates.write('''{{
 | 
			
		||||
  "variants": {{
 | 
			
		||||
    "": {{
 | 
			
		||||
      "model": "teyvatcraft:block/{}"
 | 
			
		||||
    }}
 | 
			
		||||
  }}
 | 
			
		||||
}}'''.format(ore_underlineName))
 | 
			
		||||
 | 
			
		||||
    fmodel.write('''{{
 | 
			
		||||
    "parent": "minecraft:block/cube_all",
 | 
			
		||||
    "textures": {{
 | 
			
		||||
      "all": "teyvatcraft:block/{}"
 | 
			
		||||
    }}
 | 
			
		||||
}}'''.format(ore_underlineName))
 | 
			
		||||
 | 
			
		||||
    fmodelItem.write('''{{
 | 
			
		||||
  "parent": "teyvatcraft:block/{}"
 | 
			
		||||
}}'''.format(ore_underlineName))
 | 
			
		||||
    
 | 
			
		||||
    flootTables.close()
 | 
			
		||||
    fblockstates.close()
 | 
			
		||||
    fmodel.close()
 | 
			
		||||
    fmodelItem.close()
 | 
			
		||||
 | 
			
		||||
    javaDeclareFile.write('public static final Block {} = new OreBlock(getOreBlockSettings(1, 3.0f));\n'.format(ore_upperName))
 | 
			
		||||
    javaRegisterFile.write('Registry.register(Registry.BLOCK, new Identifier("teyvatcraft", "{}"), {});\n'.format(ore_underlineName, ore_upperName))
 | 
			
		||||
 | 
			
		||||
    langZhFile.write('"block.teyvatcraft.{}": "{}",\n'.format(ore_underlineName, zhList[index].split('#')[1]))
 | 
			
		||||
    langEnFile.write('"block.teyvatcraft.{}": "{}",\n'.format(ore_underlineName, enList[index].split('#')[1].replace('"', '')))
 | 
			
		||||
 | 
			
		||||
    shutil.copyfile('stone.png', 'assets/teyvatcraft/textures/block/{}.png'.format(ore_underlineName))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
javaDeclareFile.close()
 | 
			
		||||
javaRegisterFile.close()
 | 
			
		||||
langZhFile.close()
 | 
			
		||||
langEnFile.close()
 | 
			
		||||
							
								
								
									
										7
									
								
								scripts/ore_manager/en.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								scripts/ore_manager/en.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,7 @@
 | 
			
		||||
//Magical Crystal Chunk#Magical Crystal Chunk Ore
 | 
			
		||||
//Crystal Chunk#Crystal Chunk Ore
 | 
			
		||||
//White Iron Chunk#White Iron Chunk Ore
 | 
			
		||||
//Iron Chunk#Iron Chunk Ore
 | 
			
		||||
//Starsilver#Starsilver Ore
 | 
			
		||||
Cor Lapis#Cor Lapis Ore
 | 
			
		||||
Noctilucous Jade#Noctilucous Jade Ore
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								scripts/ore_manager/stone.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								scripts/ore_manager/stone.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 215 B  | 
							
								
								
									
										7
									
								
								scripts/ore_manager/zh.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								scripts/ore_manager/zh.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,7 @@
 | 
			
		||||
//魔晶块#魔晶块原矿
 | 
			
		||||
//水晶块#水晶块原矿
 | 
			
		||||
//白铁块#白铁块原矿
 | 
			
		||||
//铁块#铁块原矿
 | 
			
		||||
//星银矿石#星银矿石原矿
 | 
			
		||||
石珀#石珀原矿
 | 
			
		||||
夜泊石#夜泊石原矿
 | 
			
		||||
		Reference in New Issue
	
	Block a user