水晶尖刺

水晶尖刺

一个NeoForge 1.21.1模组,添加了高度可配置、由数据包驱动的晶体尖刺世界生成特性,包含晶洞风格的方块提供器和用于寻找地形底部的自定义放置修饰器。

水晶尖刺

一个 NeoForge 1.21.1 模组,添加了一个高度可配置、由数据包驱动的水晶尖刺世界生成特性,具有晶洞风格的方块提供器以及用于寻找地形底部的自定义放置修饰符。

紫水晶尖刺

特性:crystalspikes:crystal_spike

已配置特性 JSON(data/<namespace>/worldgen/configured_feature/<name>.json):

字段 类型 默认值 描述
core BlockStateProvider 必填 尖刺内部方块(可以是空气/水以形成空心尖刺)
outer_layer BlockStateProvider 必填 尖刺外壳方块——应用于暴露于尖刺外部空间的尖刺方块
surface_decorator BlockStateProvider (无) 附着在外壳顶部/底部面的方块(例如晶簇、晶芽、珊瑚)。facing/waterlogged 会自动设置
wall_decorator BlockStateProvider surface_decorator 附着在外壳水平面的方块(例如珊瑚扇)。缺失时回退到 surface_decorator
base BlockStateProvider 方解石 替换尖刺底部和根部周围暴露锚定方块的方块
base_radius IntProvider (1–32) 必填 尖刺底部半径
direction 方向列表 必填 主要生长方向;每个尖刺随机选择一个(up、down、north、south、east、west)
min_angle / max_angle float (0–180) 0 偏离主要方向的随机倾斜范围,以度为单位。0 = 沿 direction 笔直生长
slope_angle FloatProvider (0–85) 26.565 锥体半角,以度为单位;控制尖刺收窄的速度(26.565° = 1:2 收窄)。0 = 圆柱体
height IntProvider (1–256) 派生 尖刺沿轴线的长度;默认为自然锥体长度 radius / tan(slope_angle)
root_depth int (0–64) 4 根部从底部朝附着面延伸的距离,使斜坡/岩架上的尖刺不会悬空。0 禁用
decorator_chance float (0–1) 0.1667 每个外壳方块触发装饰的概率
decorator_face_chance float (0–1) 0.5 已触发的外壳方块每个开放面的概率
anchor_tag 方块标签 minecraft:base_stone_overworld 尖刺可以锚定的方块(也是 base 可替换的方块)

注意事项:

  • 所有 BlockStateProvider 字段接受任意原版提供器,例如 simple_state_provider,或用于同一尖刺内混合方块的 weighted_state_provider。
  • 装饰物只会放置在能够存活(canSurvive)的位置,因此例如海泡菜只会落在珊瑚方块上,地面扇永远不会侧向悬空。

示例

{
  "type": "crystalspikes:crystal_spike",
  "config": {
    "core": {
      "type": "minecraft:simple_state_provider",
      "state": { "Name": "minecraft:calcite" }
    },
    "outer_layer": {
      "type": "minecraft:weighted_state_provider",
      "entries": [
        { "weight": 4, "data": { "Name": "minecraft:amethyst_block" } },
        { "weight": 1, "data": { "Name": "minecraft:budding_amethyst" } }
      ]
    },
    "surface_decorator": {
      "type": "minecraft:weighted_state_provider",
      "entries": [
        { "weight": 3, "data": { "Name": "minecraft:amethyst_cluster" } },
        { "weight": 1, "data": { "Name": "minecraft:large_amethyst_bud" } }
      ]
    },
    "base": {
      "type": "minecraft:simple_state_provider",
      "state": { "Name": "minecraft:basalt" }
    },
    "base_radius": { "type": "minecraft:uniform", "min_inclusive": 2, "max_inclusive": 4 },
    "direction": ["up"],
    "min_angle": 0.0,
    "max_angle": 20.0,
    "slope_angle": { "type": "minecraft:uniform", "min_inclusive": 22.0, "max_exclusive": 30.0 },
    "root_depth": 4,
    "decorator_chance": 0.1667,
    "decorator_face_chance": 0.5
  }
}

示例

完整可用的数据包(已配置特性、放置特性、生物群系修饰符、锚定标签)位于 example/datapack/

气泡珊瑚尖刺 气泡和火珊瑚尖刺
GeOre 末地尖刺

放置修饰符:crystalspikes:under_island

寻找地形底部的锚定方块(anchor_tag 中下方为空气/水/熔岩的方块)——专为浮岛下方的悬挂尖刺而设计,不受原版 32 步 environment_scan 限制。

字段 类型 默认值 描述
anchor_tag 方块标签 minecraft:base_stone_overworld 算作锚定的方块
min_y / max_y int 维度边界 扫描的 Y 范围
selection "random" / "lowest" / "highest" "random" 使用列中的哪个候选者

示例

{
  "feature": "example:my_spike",
  "placement": [
    { "type": "minecraft:rarity_filter", "chance": 8 },
    { "type": "minecraft:count", "count": { "type": "minecraft:uniform", "min_inclusive": 4, "max_inclusive": 8 } },
    { "type": "minecraft:in_square" },
    { "type": "crystalspikes:under_island", "anchor_tag": "example:end_stones", "min_y": 0, "max_y": 128 },
    { "type": "minecraft:biome" }
  ]
}

对于地表放置,原版的 heightmap + environment_scan(向下)即可正常工作。参见示例数据包中的珊瑚尖刺。