首页 > 其他分享 >我的世界1.20.1模组开发---3.数据生成

我的世界1.20.1模组开发---3.数据生成

时间:2023-10-23 18:14:17浏览次数:30  
标签:贴图 模组 对应 --- json 物品 材质 1.20 我们

介绍

  我们在模组里每添加一个物品或方块后,在游戏里显示的都只是马赛克,因为我们还没有为我们的物品或方块设置对应的模型贴图。我的世界游戏里,每一个物品和方块我们所看到的样子都是一张张贴图,就是画的像素画,贴在了一个模型表面。我们想设置对应的贴图,需要写一个对应的json文件来描述这个物品,如下图所示。但是,由于是一个json文件,编译器中对json文件并没有代码提示和相应的错误提示,我们手写很容易写错,出现各种各样的bug。当然也有更高效的方式,我们可以用forge为我们提供的json文件生成器生成对应的json文件。下面就开始正式介绍。

  ModelProvider类

  我们的自定义类要继承ItemModelProvider类,这是forge为我们提供的自动生成json数据的类。从他的名字我们不难看出,这个类是用来生成Item对应的模型的json的文件的类,所以我们自定义的生成数据的类要继承这个类。但是ItemModelProvider类也是继承于ModelProvider类,大部分的方法都在这个最基础的父类里面,所以我们进入ModelProvider类里看看我们能用得上哪些方法。

  在我们的自定义类里面,我们要重写父类的registerModels方法,这个方法就是我们最主要的方法,需要添加的物品需要生成对应的json文件要写在这个方法里。

  我们给一个物品添加贴图时,首先要知道这个物品是什么,然后是贴图资源的位置,有了这两个参数我们就能成功的为一个物品添加贴图。这里我们要用到ModelProvider类里的withExistingParent方法,因为游戏里有给物品的通用材质,所以我们可以继承这个材质,把这个通用材质作为我们的父材质继承过来用。

    public T withExistingParent(String name, ResourceLocation parent) {
        return getBuilder(name).parent(getExistingFile(parent));
    }

  这个方法需要传入物品的名称和对应的父材质资源,返回一个泛型对象也就是我们的自定义类的对象,得到的对象会设置好对应的父材质,我们再调用这个对象身上的texture方法来设置我们的物品贴图即可。

  代码

  这么说着可能确实比较抽象,我理解的也不是太透彻,对于初学者来说,我们不需要太过于要求自己明白原理,起步阶段会用就行x.x。下面的代码写多了以后慢慢也能理解的。

 

标签:贴图,模组,对应,---,json,物品,材质,1.20,我们
From: https://www.cnblogs.com/xiaomingbook/p/17783116.html

相关文章

  • Mysql新增分区-Python版
    importdatetimeimportsysimportpandasaspdimportpymysqlimportsqlalchemy.engine.urlasengineUrlfromsqlalchemyimportcreate_engineDB_INFO={"host":"IP","port":3306,"username":"ro......
  • K-medoids聚类算法
    发展:们每次选簇的平均值作为新的中心,迭代直到簇中对象分布不再变化。因此一个具有很大极端值的对象会扭曲数据分布,造成算法对极端值敏感在聚类分析中,异常值通常会引起问题,因为它们可能会被分配到一个独立的聚类,从而干扰正常的聚类结果。这可能导致聚类算法产生不合理或不稳定的......
  • go-ethereum-master/core/vm/stack.go 源码阅读
    //Copyright2014Thego-ethereumAuthors//Thisfileispartofthego-ethereumlibrary.////Thego-ethereumlibraryisfreesoftware:youcanredistributeitand/ormodify//itunderthetermsoftheGNULesserGeneralPublicLicenseaspublishedby......
  • SpringBoot-自动配置原理
    导入start就会导入autoconfigure包autoconfigure包下面的META-INF/spring/org.springframe.boot.autoconfigure.AutoConfigation.imports文件存放了所有的xxxAutoConfigation自动配置类@EnableAutoConfigation注解,会把上面文件中的所有的自动配置类都导入进来,按需要加载。xxxA......
  • Qt - Label标签显示特殊字符
    1.创建一个带Ui界面的测试工程,把特殊字符拷贝到label标签里,点击保存。 2.打开qt安装目录,找到designer.exe文件双击打开 3.把刚刚创建的ui界面拖进来 4.点击窗口-》ViewC++Code...5.会弹出一个窗口里面有ui文件的源码,还有一串特殊数字,这串特殊数字就是那个特......
  • 2023csp-j复赛试题及其讲解 待完善
    P9748[CSP-J2023]小苹果【民间数据】题目链接:https://www.luogu.com.cn/problem/P9748?contestId=140858题目讲解:1#include<iostream>2usingnamespacestd;34intmain(){5intn;6cin>>n;7intk=n,d=0,ans=0;8while(k>0){9......
  • OGG-03542 Failed to connect to the database
    GGSCI(dwdb01)4>dbloginuseridGOLDENGATE@cnlionrdb,password*******2023-10-2317:11:26INFOOGG-03542Failedtoconnecttothedatabase.Verifythattheconnectionstringandfollowingenvironmentvariablesarecorrect:LD_LIBRARY_PATH=/ho......
  • 算法-共识算法
    一、Paxos    基础的Paxos算法包括如下三种:BasicPaxos、MultiPaxos、FastPaxos     Paxos将系统中的角色分为提议者(Proposer),决策者(Acceptor),和最终决策学习者(Learner):    【Proposer】:提出提案(Proposal)。Proposal信息包括提案编号(ProposalID)......
  • 【学习笔记】FHQ-Treap
    前置知识:二叉搜索树与二叉堆。1.简介Treap,即Tree+Heap,它的每个结点上存储着一个索引\(key\)和一个值\(val\),其中索引满足二叉堆的性质,值满足二叉搜索树的性质,且索引是随机的。Treap就是通过上述的性质,使树达到平衡。至于为什么索引是随机的,其实很简单:我们插入的每个数的......
  • CSP-S 2023 种树-题解
    CSP-S2023种树-题解闲话Mark.Down看错题面了,我一直以为树是倒着长的。题目描述给定一棵树,每天可以选择一个与已种树的地块相连的地块种树,每棵树每天会长\(max(1,c_i\timesx+b_i)\)米(\(x\)代表从任务开始第一天的天数),问最少多少天可以使\(\foralli\inn,Height_i\gea_i\)......