Minecraft 1.13锻造模型资源自动生成工具
mcresources的Python项目详细描述
Minecraft资源生成器
这是一个python模块,旨在实现forge modding所需的许多json文件的简单生成。
来自Alcatrazescape 1.13"无树穿孔"的一些示例:
frommcresourcesimportResourceManagerrm=ResourceManager('notreepunching')forstonein['stone','sandstone','andesite','granite','diorite']:# Block Statesrm.blockstate(('loose_rock',stone))# Block Modelsrm.block_model(('loose_rock',stone),'minecraft:block/%s'%stone,'notreepunching:block/loose_rock')# Item Modelsrm.item_model(('rock',stone))# Crafting Recipesresult=('cobblestone'ifstone=='stone'elsestone)rm.crafting_shaped('%s_from_rocks'%result,['##','##'],'notreepunching:rock/%s'%stone,'minecraft:%s'%result)# Item Modelsfortoolin['pickaxe','shovel','axe','hoe','knife']:rm.item_model('flint_%s'%tool,parent='item/handheld')# Shaped Craftingformetalin['iron','gold','diamond']:tool_metal='tag!forge:'+('gems'ifmetal=='diamond'else'ingots')+'/'+metalmetal_prefix=metalifmetal!='gold'else'golden'rm.crafting_shaped('%s_knife'%metal,['I','S'],{'I':tool_metal,'S':'tag!forge:rods/wooden'},'notreepunching:%s_knife'%metal_prefix)# More Crafting Recipesrm.crafting_shapeless('plant_string',['notreepunching:plant_fiber']*3,'notreepunching:plant_string')
用法
mcresources可以构建forge modding所需的许多公共文件,并提供实用程序来管理更大的项目。以下概述了各种方法以及如何以最有效的方式使用它们。
mcresources生成的所有文件都将插入一个注释(''uu comment'
)来标识它们。这还允许mcresources通过使用clean_generated_resources()
删除已生成的所有文件,允许用户查看手动创建的文件,和/或管理将旧文件更新为新配置
多个方法共有几个元素:
name_parts
:表示特定块或项的资源位置。它可以指定为一个字符串,即'block_ruby_or e'
,如果块使用目录作为分隔符,则可以指定为一个列表或元组。这意味着('ore_blocks','ruby')
对应于资源位置modid:ore_blocks/ruby
,生成的文件ruby.json
可以在modid/blockstates/ore_blocks/
条件
:单个条件可以指定为完全指定的字典(将逐字插入json中),也可以指定为字符串,将其扩展为{'type':string_condition}
项堆栈
:项堆栈可以指定为完全指定的字典(将逐字插入json)或字符串。作为字符串,它必须表示一个项资源位置,即minecraft:golden_boots
将创建json{'item':'minecraft:golden_boots'}
。此外,还可以在字符串前面加上标记!
指定它表示标记,即标记!forge:rods/wood将创建json
{'tag':'forge:rods/wood'}
阻塞状态
defblockstate(self,name_parts:strorlistortuple,model:str=None,variants:dict=None)
name_parts
指定块资源位置,如上所示model
指定模型。如果不存在,则默认为modid:block/name/parts
,这意味着blockstate('pink_grass')
将创建文件modid/blockstates/pink_grass.json
,该文件的模型为modid:block/pink_grass
variants
指定json文件中的变量。按照通常的minecraft blockstate文件,它应该是一本字典。如果不存在,则默认为空/单个变量块:'variants':{':model}
模块式
defblock_model(self,name_parts:strorlistortuple,textures:strordict=None,parent:str='cube_all')
name_parts
指定块资源位置,如上所示
纹理
指定此特定模型的纹理。如果是字符串,它将创建json:"textures":{"texture":textures}
。如果作为字典提供,它将插入"纹理":纹理父项
指定父模型文件
商品型号
defitem_model(self,name_parts:strorlistortuple,*textures:strordict,parent:str='item/generated')
名称部分
指定项目资源位置,如上所示纹理
指定纹理。如果纹理作为字符串提供,即"基本层"、"中间层"…
,则它将按顺序将它们指定给层,即{"layer0":"基本层"、"layer1":"中间层"……}<代码>。如果提供词典,它将以与块模型相同的方式插入词典
父项
指定父模型文件
不成形工艺配方
defcrafting_shapeless(self,name_parts:strorlistortuple,ingredients:strordictorlistortuple,result:strordict,group:str=None,conditions:strordictorlist=None)
name_parts
指定配方资源位置。纸币工艺ing配方将自动添加到modid/data/recipes
inedients
指定成分。它必须是项堆栈的列表/元组,或者是表示项堆栈的字符串或字典。有关有效的项目堆栈规范,请参见上文。结果
指定配方结果或输出。它必须是单个项目堆栈组
指定配方所属的组条件
指定要启用的配方的任何条件。它必须是有效条件标识符的列表/元组,或者是表示项堆栈的字符串或字典
成型工艺配方
defcrafting_shaped(self,name_parts:strorlistortuple,pattern:list,ingredients:strordict,result,group:str=None,conditions:strordictorlist=None)
name_parts
指定配方资源位置。注:工艺配方自动添加到modid/data/recipes
模式
指定模式。它必须是一个字符串列表,即鹤嘴锄模式的['xxx','s','s']
。键必须与"配料"字段中使用的键相同。inedients
指定成分。它可以是项堆栈的单字符键字典,也可以是单项堆栈(默认为找到的第一个键,因此,只有在只有一个唯一输入时才应使用)结果
指定配方结果或输出。它必须是单个项目堆栈组
与上面一样条件
如上所述
其他配方
defrecipe(self,name_parts:strorlistortuple,type_in:str,data_in:dict,group:str=None,conditions:strordictorlist=None)
name_parts
指定块资源位置,如上所示
纹理
指定此特定模型的纹理。如果是字符串,它将创建json:"textures":{"texture":textures}
。如果作为字典提供,它将插入"纹理":纹理父项
指定父模型文件defitem_model(self,name_parts:strorlistortuple,*textures:strordict,parent:str='item/generated')
名称部分
指定项目资源位置,如上所示纹理
指定纹理。如果纹理作为字符串提供,即"基本层"、"中间层"…
,则它将按顺序将它们指定给层,即{"layer0":"基本层"、"layer1":"中间层"……}<代码>。如果提供词典,它将以与块模型相同的方式插入词典
父项
指定父模型文件
不成形工艺配方
defcrafting_shapeless(self,name_parts:strorlistortuple,ingredients:strordictorlistortuple,result:strordict,group:str=None,conditions:strordictorlist=None)
name_parts
指定配方资源位置。纸币工艺ing配方将自动添加到modid/data/recipes
inedients
指定成分。它必须是项堆栈的列表/元组,或者是表示项堆栈的字符串或字典。有关有效的项目堆栈规范,请参见上文。结果
指定配方结果或输出。它必须是单个项目堆栈组
指定配方所属的组条件
指定要启用的配方的任何条件。它必须是有效条件标识符的列表/元组,或者是表示项堆栈的字符串或字典
成型工艺配方
defcrafting_shaped(self,name_parts:strorlistortuple,pattern:list,ingredients:strordict,result,group:str=None,conditions:strordictorlist=None)
name_parts
指定配方资源位置。注:工艺配方自动添加到modid/data/recipes
模式
指定模式。它必须是一个字符串列表,即鹤嘴锄模式的['xxx','s','s']
。键必须与"配料"字段中使用的键相同。inedients
指定成分。它可以是项堆栈的单字符键字典,也可以是单项堆栈(默认为找到的第一个键,因此,只有在只有一个唯一输入时才应使用)结果
指定配方结果或输出。它必须是单个项目堆栈组
与上面一样条件
如上所述
其他配方
defrecipe(self,name_parts:strorlistortuple,type_in:str,data_in:dict,group:str=None,conditions:strordictorlist=None)
name_parts
指定配方资源位置。纸币工艺ing配方将自动添加到modid/data/recipes
inedients
指定成分。它必须是项堆栈的列表/元组,或者是表示项堆栈的字符串或字典。有关有效的项目堆栈规范,请参见上文。结果
指定配方结果或输出。它必须是单个项目堆栈组
指定配方所属的组条件
指定要启用的配方的任何条件。它必须是有效条件标识符的列表/元组,或者是表示项堆栈的字符串或字典defcrafting_shaped(self,name_parts:strorlistortuple,pattern:list,ingredients:strordict,result,group:str=None,conditions:strordictorlist=None)
name_parts
指定配方资源位置。注:工艺配方自动添加到modid/data/recipes
模式
指定模式。它必须是一个字符串列表,即鹤嘴锄模式的['xxx','s','s']
。键必须与"配料"字段中使用的键相同。inedients
指定成分。它可以是项堆栈的单字符键字典,也可以是单项堆栈(默认为找到的第一个键,因此,只有在只有一个唯一输入时才应使用)结果
指定配方结果或输出。它必须是单个项目堆栈组
与上面一样条件
如上所述
其他配方
defrecipe(self,name_parts:strorlistortuple,type_in:str,data_in:dict,group:str=None,conditions:strordictorlist=None)
这用于创建通过自定义反序列化程序加载的修改配方。因此,名称部分
需要包含配方类型的子目录
名称部分
指定配方资源位置。在中键入u
指定配方类型data_in
指定要插入配方的json数据组
与上面一样条件
如上所述
标签
defitem_tag(self,name_parts:strorlistortuple,*values:strorlistortuple,replace:bool=False)defblock_tag(self,name_parts:strorlistortuple,*values:strorlist,replace:bool=False)
它们分别用于创建项目和块标记
name_parts
指定标记资源位置,如上所示值
指定值。它可以是一个值的单个字符串,也可以是多个值的字符串列表/元组replace
指定json中的replace字段,即标记是否应替换先前相同的条目