框架概览与模组注册

框架功能总览

本文档旨在全面介绍 "简易框架"(Simple Frameworks)的核心功能模块及其相关 API,帮助开发者快速掌握框架特性并高效实现项目目标。

模组注册与新增内容的注册

功能概述

模组注册是框架的基础功能,允许开发者动态加载、管理自定义内容。通过注册机制,您可以扩展框架功能,为游戏增加新的模块、行为和配置。

核心功能

API 文档

1. 通过 boot.json 注册模组


        // 在boot.json中添加模组配置
        // 例如 "longerCombat" 模组,直接在boot.json中添加如下配置:

        "SFPlugin": {
            // 添加你的widget到对应模块中:
            "addWidget": {
                // 添加到iModOptions中
                "iModOptions": [
                    {
                        "widget": "longerCombatConfig"
                    }
                ],
                // 添加到iModFooter中
                "iModFooter": [
                    {
                        "widget": "longerCombat"
                    }
                ]
            },

            // 设置你的模组默认配置
            "defaultConfigs": {
                "mult": 2.5,
                "midEjac": true,
                "ejacRate": 80,
                "moreRate": 25,
                "moreTimes": 3,
                "time": 1
            },

            // 设置你的模组默认变量
            "defaultVariables": {
                "totalsOnOneMoreTimes": 0,
            }
        }
    

特性说明:

备注:通过 boot.json 注册模组是最简单的方式,适合于简单的模组配置和变量注册。


2. 通过JS注册模组


    /**
    * 注册一个新模组。
    * @param {string} modId - 模组的唯一标识符。
    * @param {object} defaultConfig - 默认配置对象。将在游戏开始时自动初始化,或者在加载存档时自动更新旧有配置。
    * @param {object} defaultVariables - 默认变量对象。将在游戏开始时自动初始化,或者在加载存档时自动更新旧有变量。
    */
    iMod.regist(modId, defaultConfig = {}, defaultVariables = {});

特性说明:


具体示例:


    // 注册一个新模组。
    let myConfig = {
        enabled: true,
        autoMessage: false,
        fastMode: false
    }
    let myVariables = {
        myVar1: 0,
        myVar2: "Hello World",
        myVar3: {
            num: 1,
            str: "Hello World",
            arr: [1, 2, 3]
        }
    }

    iMod.regist("myFirstMod", myConfig, myVariables);

    // 当然也可以直接这样写
    iMod.regist(
        "myModName",
        {
            enabled: true,
            autoMessage: false,
            fastMode: false
        },
        {
            myVar1: 0,
            myVar2: "Hello World",
            myVar3: {
                num: 1,
                str: "Hello World",
                arr: [1, 2, 3]
            }
        }
    )
    

备注:由于游戏原版多次修改Sugarcube源码和变量初始化相关,现在推荐活用模组注册功能一键初始化/更新存档Mod需要的所有变量哟!

3. 动态添加内容

/**
    * 添加内容到指定区域。
    * @param {string} zone - 目标区域名称。
    * @param {...(string|object)} widgets - 内容或小组件。
    */
    simpleFrameworks.addto(zone, ...widgets);
    

3. 模组初始化函数

/**
    * 注册模组初始化函数。
    * @param {...function|object} function - 包含初始化方法的object或者函数本身。object 应该包含 name 和 func 两个属性。
    */
    simpleFrameworks.onInit(...function);
    

使用场景