自定义数据盒

自定义数据盒

一个非常强大的模组,让你能够制作自定义数据箱,包含自定义解锁条件、名称、描述和生成点,并且可以制作无限数量的数据箱。

冒险

自定义数据盒

一个非常强大的模组,让你能够制作自定义数据箱,包含自定义解锁条件、名称、描述和生成点,并且可以制作无限数量的数据箱。

如何设置一个新的 DataBox.json?

Example.json

{
  "DataboxID": "SeaglideDatabox",
  "AlreadyUnlockedDescription": "海蛾号数据盒。已解锁",
  "PrimaryDescription": "解锁海蛾号",
  "SecondaryDescription": "一个用于解锁海蛾号的数据盒",
  "ItemToUnlock": "海蛾号",
  "BiomesToSpawnIn": [
    {
      "biome": "twistyBridges_Cave_Ground",
      "数量": 1,
      "probability": 0.1
    },
    {
      "biome": "twistyBridges_Coral",
      "数量": 1,
      "probability": 0.1
    },
    {
      "biome": "sparseArctic_Ground",
      "数量": 1,
      "probability": 0.1
    }
  ],
  "CoordinatedSpawns": [
    {
      "Position": {
        "x": 5.0,
        "y": -5.0,
        "z": 5.0
      },
      "EulerAngles": {
        "x": 10.0,
        "y": -100.0,
        "z": 253.0
      },
      "Scale": {
        "x": 0.0,
        "y": 0.0,
        "z": 0.0
      }
    }
  ]
}

这些 Json 文件放入 DataBox 文件夹。

我在哪里可以找到生物群系列表?

CustomDataBoxes 文件夹内的 Biomes.json

如何在你的模组中使用 CustomDataBoxes API?

设置您的项目

你需要添加对 CustomDataboxes.dll 的引用。一旦完成,你所需的所有 CustomDataboxes 内容都将位于 using CustomDataboxes.API 命名空间中。只需在您的 using 语句中添加这一行。

CustomDataboxes 属性

在将 CustomDataboxes.API 添加到您的 using 语句之后,有几个属性需要设置以确保其正常工作。

之后,你可以调用 Patch() 方法,CustomDataboxes 会处理其他所有事情。

要设置的属性 类型 描述
DataboxID string 唯一标识符
PrimaryDescription string 主要描述
SecondaryDescription string 次要描述
TechTypeToUnlock TechType 要解锁的技术类型
BiomesToSpawnIn List<LootDistributionData.BiomeData> 生成生物群系列表

修补你的数据箱

  1. 实例化一个新的 Databox 实例
  2. 填充所有必需的属性(以及任何可选属性)
  3. 调用 Patch() 方法在实例上调用方法,这样就可以了,一切准备就绪。

示例:

namespace ExampleDatabox
{
    using CustomDataboxes.API;
    using System.Collections.Generic;
    using BepInEx;
    using UnityEngine;
    using System.Collections;
    using UWE;
    using Nautilus.Handlers;
    using Nautilus.Assets;

    [BepInPlugin(GUID, MODNAME, VERSION)]
    [BepInDependency("com.snmodding.nautilus", BepInDependency.DependencyFlags.HardDependency)]
    [BepInDependency("com.CustomDataboxes.Metious", BepInDependency.DependencyFlags.HardDependency)]
    public class ExampleDataboxMod : BaseUnityPlugin
    {
        private const string MODNAME = "CustomDataBoxtest",
                             Author = "库凯",
                             GUID = "com.CustomDataBoxtest.CKmod",
                             VERSION = "1.0.0.0";

        private readonly string alreadyUnlockedTooltip = "已解锁";
        private readonly string primaryTooltip = "主要工具提示";
        private readonly string secondaryTooltip = "次要提示";
        private readonly string ClassID = "StasisRifleDataboxID";
        private readonly TechType unlockTechType = TechType.StasisRifle;

        public void Awake()
        {
            DataBox myDatabox = new DataBox()
            {
                DataboxID = "StasisRifleDatabox",
                PrimaryDescription = "停滞步枪数据盒",
                SecondaryDescription = "停滞步枪数据盒",
                BiomesToSpawnIn = new List<LootDistributionData.BiomeData>
                {
                    new LootDistributionData.BiomeData()
                    {
                        biome = BiomeType.twistyBridges_Cave_Ground,
                        计数 = 1,
                        概率 = 0.1f
                    },
                    new LootDistributionData.BiomeData()
                    {
                        生物群落 = 生物群落类型.扭曲桥梁_珊瑚,
                        计数 = 1,
                        概率 = 0.5f
                    },
                    new LootDistributionData.BiomeData()
                    {
                        生物群落 = 生物群落类型.稀疏北极_地面,
                        计数 = 1,
                        概率 = 0.1f
                    }
                },
                TechTypeToUnlock = TechType.StasisRifle
            };
            myDatabox.Patch(); // 一旦修补完成,你就可以继续了。
        }
    }
}