本帖最后由 冒险家吉太 于 2019-11-22 22:55 编辑

<——来自于搬运悬赏令——>


地形mod是一个强大的自定义地形生成器,功能齐全,使用简便,凡是有兴趣制做整合包的玩家都可以尝试使用本mod。只需稍加学习,就可以快速上手自定义整个世界。
本篇介绍分为基础介绍和配置分析,对制做整合包没有兴趣的推荐只看基础介绍。





※本mod依附于该作者所有mod的核心BNBGamingLib
https://www.curseforge.com/minecraft/mc-mods/bnbgaminglib


※基础介绍※

本mod旨在帮助整合包开发者在他们的整合包中使用脚本创建自定义的世界或更改默认世界中的部分结构,提供自定义地形生成器、建筑结构、世界预设等等,受许多整合包作者喜爱。


预设的生成器(包括但不限于):


预设的建筑结构:


范例世界:
预设的创建世界界面

基础空岛

南北气候带世界

河流更宽的世界

盘根错节的地狱

只有沙漠的世界

只有火山的世界

只有一棵树的虚空世界



应用实例:
本mod被应用于许多知名twitch整合包,诸如SkyFactory4(天空工厂4)、Glacial Awakening(冰川苏醒)、Omnifactory(全能工厂)等。
以下是上述整合包创建世界界面的截图:
天空工厂4的空岛

冰川苏醒的地底冰窟

全能工厂的无尽城和虚空世界




※配置分析(前方有恶犬)※

因为本mod语法较多且都能在预设配置文件中找到,这里就不再赘述,配置文件还在汉化,以后更新吧。
然后我们以twitch整合包Glacial Awakening对本mod的配置为例来进行分析,本人水平尚浅,只是抛砖引玉,如有错漏希望大家不吝指正。
空岛生成器的配置并不难,此处也并未涉及,但是之后可能会追加。


世界生成器部分
配置文件位于config\topography\Standard.txt
  1. setSingleBiome("minecraft:mutated_ice_flats")
  2. //设置整个世界以mutated_ice_flats(冰刺平原)生物群系生成。

  3. //Adds a basic overworld terrain generator. Handles base block/fluid generator and biome block replacement. It uses multithreading for its noise generators, so it's slightly faster than vanilla.
  4. //添加基本的世界地形生成器。用来处理基础方块/流体生成器和生物群落方块的替换。它会使用多线程处理其噪声生成器,因此这比原版的生成速度要快一些。
  5. overworld = new OverworldGenerator()
  6. //定义世界地形生成器overworld
  7. addGenerator(overworld)
  8. //调用世界地形生成器overworld

  9. //Adds the vanilla caves.
  10. //用原版洞穴生成器添加洞穴。
  11. caves = new VanillaCaveGenerator()
  12. addGenerator(caves)

  13. //Adds the vanilla ravines.
  14. //用原版沟壑生成器添加沟壑。
  15. ravines = new VanillaRavineGenerator()
  16. addGenerator(ravines)

  17. //Adds water lakes. Blacklisted in deserts and desert hills as per vanilla.
  18. //用湖生成器添加淡水湖。根据原版将沙漠和沙漠山丘群系列入湖生成器的黑名单。
  19. waterLake = new VanillaLakeGenerator(<minecraft:water>)
  20. //定义湖生成器waterLake使用原版湖生成器,填充物为原版水。
  21. waterLake.blacklistBiome(["minecraft:desert", "minecraft:desert_hills"])
  22. //定义湖生成器waterLake不会在某种生物群系生成。
  23. addGenerator(waterLake)

  24. //分层生成器,和原版超平坦自定义有些类似。
  25. layers = new LayerGenerator()
  26. layers.addLayer(0~0,<minecraft:bedrock>)
  27. //定义0层填充物为原版基岩。
  28. layers.addLayer(1~4,<minecraft:ice>)
  29. layers.addLayer(5~14, <minecraft:packed_ice>)
  30. layers.addLayer(15~35, <quark:biome_cobblestone:1>)
  31. layers.addLayer(36~45, <minecraft:snow>)
  32. layers.addLayer(46~48, <minecraft:obsidian>)
  33. layers.addLayer(49~51, <minecraft:ice>)
  34. addGenerator(layers)

  35. //Generates animals.
  36. //用原版动物生成器添加动物。
  37. animals = new VanillaAnimalGenerator()
  38. addGenerator(animals)

  39. //Generates snow and freezes ice in cold areas.
  40. //用冰雪生成器在寒冷地区生成冰雪。
  41. ice = new IceAndSnowGenerator()
  42. addGenerator(ice)

  43. //Adds vanilla decorations. This includes trees, ores, etc.
  44. //用原版装饰物生成器添加装饰物。这包括植物和矿物等。
  45. //decoration = new VanillaDecorationGenerator()
  46. //addGenerator(decoration)
  47. //原本的装饰物生成器脚本,注释化以禁止用原版规则生成植物和矿物。

  48. setSpawnStructure("empty",15)
  49. //设置出生点建筑结构为“empty”(即前文图中的地底冰窟,之后会对建筑结构部分进行简述),结构生成高度在Y轴15格高。
复制代码


建筑结构部分
配置文件位于config\topography\structures\empty.nbt
用NBT编辑工具(这里用的是webNBT)打开后可以看到数据分为几个部分:

blocks标签中存有该结构中每个方块的位置和数值;
entities标签中存有该结构中每个实体的位置;
palette标签中存有该结构中方块的id和属性;
size标签中存有该结构x轴、y轴和z轴的长度;


具体可以参考这篇贴子:https://www.mcbbs.net/thread-585433-1-1.html
大佬对structure NBT格式进行了详细的分析。


总体配置部分
配置文件位于config\topography\Topography.txt
  1. //Sets if the mod should print documentation.
  2. //设置本mod是否生成日志。
  3. printDocumentation(false)

  4. //Sets the Topography WorldType as default
  5. //设置创建世界时默认为本mod的世界类型。
  6. setAsDefaultWorldType()

  7. //Registers a preset. First argument is name, second is the image name, third is a description, fourth is WorldType, fifth is generator options Json.
  8. //注册一个预设。第一项是世界名称,第二项是创建世界界面所用的背景图片位置,第三项是创建世界界面所用的文字描述,第四项是世界生成在哪个维度,第五项是世界生成器配置文件的位置。
  9. standard = registerPreset("Standard", "images/Standard", "...")
  10. //定义世界生成预设standard,世界名称为Standard,创建世界界面所用的背景图片位置在配置文件目录下的"images/Standard",创建世界界面所用的文字描述为"..."。
  11. standard.registerDimension(0, "Standard")
  12. //调用世界生成预设standard,使世界生成在维度0(即主世界),世界生成器配置文件的位置在配置文件目录下的"Standard"。
复制代码
所有的世界预设都可以按上述模板添加在Topography.txt中,最后就可以在创建世界界面的Topography世界类型看到多个世界预设,如前文范例所示。


命令
参见更新日志底部Topography 1.12-1.5.1


最后是没人看的日志



以下是吉太搬运的其他mod(虽然现在还很少但是之后会越来越多),喜欢的话请不要吝啬人气哦~
[1.12.2][Surge——潮涌]感受渣机如潮涌一般迅速!
[1.12.2][InWorldCrafting——世界交互]感受世界的力量,整合包大佬们的新玩具!
不知道这个mod会不会有人看,不过过两天还会再搬一个,敬请期待。