创建一个结构

时间:2016-06-17 18:18:47

标签: minecraft minecraft-forge

我使用Minecraft 1.7工具将Route::group(['middleware' => ['role:admin|owner']], function () { .. });文件转换为.schematic文件,以便将.java导入我的1.8 mod。我修复了一个未定位的块名称,但仍然存在一些错误。

也许我问的太多了,但是任何人都可以让我的代码工作,以便生成结构吗?

.java

1 个答案:

答案 0 :(得分:0)

我以前做过这个,我学到的经验教训:

  • 不要导出为.java文件。班级只能有这么长的时间。
  • 整个java文件将驻留在内存中,并且不会真正被清除,并且会非常迟缓。
  • 导出为友好格式,如nbt,json,yaml,你自己的,并阅读。
  • 我使用的是json格式

-

"blockids": {
       "1546678461":{
          "modid":"thaumcraft",
          "blockid":"blockCandle",
          "metadata":"14"
       }
    },
 "positions":[
       { 
          "blockpos":{ "x":10,"y":71,"z":-423},        
          "blockid":"1546678461",
          "isrange":false,
          "nbtdata":"something:something"
       },
       { 
          "blockid":"1546678461",
          "isrange":true,
          "from":{ "x":10,"y":71,"z":-423},        
          "to":{ "x":20,"y":71,"z":-413},        
          "nbtdata":""
       }
     ]
  }
  • 加上zip导出时效率很高
  • 不使用worldgen初始化时:
    • 当加载跨越多个块的json文件时,将它们分成活动块,它们将被粘贴"在
    • 然后有一个chunkloaded来主动加载你将在当前粘贴的块
    • 粘贴时卸载块。
    • 加载下一个块并粘贴taht位。冲洗并重复与结构一样大
  • 以夸张的方式装载您的建筑物,因此通过您的结构不会产生幽冥堡垒或村庄。
  • 检查您希望生成的结构。
  • 将您的结构保存到世界地图

-

protected StructureStart getStructureStart(int chunkX, int chunkZ)
    {
        MapGenEntropyTemple.Start start = new MapGenEntropyTemple.Start(this.worldObj, this.rand, chunkX, chunkZ);
        try {
            Class<?> mapgen = MapGenStructure.class;
            Method markdirty = MagicCookieReflectionHelper.getMethod(mapgen,"func_143026_a", int.class,int.class,StructureStart.class);
            if(markdirty != null) {
                markdirty.setAccessible(true);
                markdirty.invoke(this, start.getChunkPosX(), start.getChunkPosZ(), start);
            }
            else {
                MagicCookies.log.error("Structure generation locations cannot be saved.");
            }
        }
        catch(Exception ex) {
            MagicCookies.log.warn("well fiddlesticks",ex);
        }
        //this.func_143026_a(start.func_143019_e(), start.func_143018_f(), start);
        //Class c = MapGenStructureData.field_143029_e
        return start;

    }
  • 如果您不使用上述保存方法,则在保存用户日志和世界并清除内存后,结构gen将不会恢复。
  • 将MapGenStructure用于您的结构。看看幽冥堡垒是如何产生的。您不需要使用随机方法,但是您应该使用它用于各个部分的组件,因此您可以定义单独的边界框。