我刚开始学习 Java,同时对 Minecraft 进行 retrofit 。我看过有关使用 Minecraft Forge API 将方 block 添加到游戏中的教程,但我遇到了问题。不再有“.setBlockTextureName()”方法,所以我不知道该怎么办。我在我的游戏中添加了一个简单的 block ,但它没有纹理,我想为其添加纹理。我将如何为 Minecraft 1.8 执行此操作?
P.S.:如果这是重复的,我很抱歉,我只看到关于 Minecraft 生物的问题,而不是 1.8 的纹理(请记住,1.8 的 Forge API 与其他版本不同),所以我决定问问自己。
如果我需要澄清任何事情,请告诉我!
最佳答案
纹理在 1.8 中非常不同。以下是一些教程:
Updating Blocks ;
Updating Items .
对于以上两者:
GameRegistry.registerBlock。这些现在应该在 block /项目的构造函数中。private final name 字段并为其创建一个 getter。对于 block :
在 src/main/resources/assets/{MODID}/models/block 中,您将需要 2 个 JSON 文件。
第一个应称为 {BLOCKNAME}.json 并包含以下内容:
{
"parent": "block/cube_all",
"textures": {
"all": "{MODID}:blocks/{BLOCKNAME}"
}
}
第二个具有相同的名称,进入 src/main/resources/assets/{MODID}/models/item,并具有以下代码:
{
"parent": "{MODID}:block/{BLOCKNAME}",
"display": {
"thirdperson": {
"rotation": [ 10, -45, 170 ],
"translation": [ 0, 1.5, -2.75 ],
"scale": [ 0.375, 0.375, 0.375 ]
}
}
}
现在在 src/main/resources/assets/{MODID}/blockstates 中,您还需要 1 个 JSON 文件。具有相同的名称,它应该包含以下代码:
{
"variants": {
"normal": { "model": "{MODID}:{BLOCKNAME}" }
}
}
您应该将 {MODID} 和 {BLOCKNAME} 分别替换为您的模组 ID 和方 block 名称。
关于java - Minecraft Forge 1.8 - 加载 block 纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28121137/
鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende
我有一些Ruby代码,如下所示:Something.createdo|x|x.foo=barend我想编写一个测试,它使用double代替block参数x,这样我就可以调用:x_double.should_receive(:foo).with("whatever").这可能吗? 最佳答案 specify'something'dox=doublex.should_receive(:foo=).with("whatever")Something.should_receive(:create).and_yield(x)#callthere
我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/
我在理解Enumerator.new方法的工作原理时遇到了一些困难。假设文档中的示例:fib=Enumerator.newdo|y|a=b=1loopdoy[1,1,2,3,5,8,13,21,34,55]循环中断条件在哪里,它如何知道循环应该迭代多少次(因为它没有任何明确的中断条件并且看起来像无限循环)? 最佳答案 Enumerator使用Fibers在内部。您的示例等效于:require'fiber'fiber=Fiber.newdoa=b=1loopdoFiber.yieldaa,b=b,a+bendend10.times.m
我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("
我一直致力于让我们的Rails2.3.8应用程序在JRuby下正确运行。一切正常,直到我启用config.threadsafe!以实现JRuby提供的并发性。这导致lib/中的模块和类不再自动加载。使用config.threadsafe!启用:$rubyscript/runner-eproduction'pSim::Sim200Provisioner'/Users/amchale/.rvm/gems/jruby-1.5.1@web-services/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:105:in`co
我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www
我没有理解以下行为(另请参阅inthisSOthread):defdef_testputs'def_test.in'yieldifblock_given?puts'def_test.out'enddef_testdoputs'def_testok'endblock_test=procdo|&block|puts'block_test.in'block.callifblockputs'block_test.out'endblock_test.calldoputs'block_test'endproc_test=procdoputs'proc_test.in'yieldifblock_gi
我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我
什么是ruby的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht