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