瑟米娅

瑟米娅

一个适用于Terrafirmacraft的温度模组,一个复杂的温度系统,也可以扩展到非玩家实体。

概述:

一个用于 Terrafirmacraft 的温度模组,拥有复杂的温度系统,也可扩展应用于非玩家实体。

机制:

  • 真实且动态的日照加热,具有可用的射线投射阴影和遮挡
  • 真实的风寒和冷却效果,具有射线投射遮挡
  • 详细的来源暴露检测,具有角度和多点采样射线投射,允许部分暴露

室内:

  • 动态泛洪填充系统,默认允许任何结构最多 13824 个方块
  • 基于热力学的模型,内部体积需要能量和时间来升温或降温
  • 边缘方块的方块密封系统,允许功能性窗户和部分方块
  • 通过热源或日照加热,在白天达到峰值
  • 通过冷源和随风开窗进行冷却

保暖:

  • 寻找阳光
  • 躲避风力
  • 火等热源,也支持 TFC 热源
  • 加热的物品,如锭、锅等
  • 保温或衣物

避暑:

  • 寻找阴凉
  • 寻找风
  • 游泳
  • 接触冰等冷方块
  • 保温或衣物

数据驱动:

实体温度数据映射: data/thermia/data_maps/entity_type/entity_temperatures.json

剧透

实体温度是你将遇到的主要数据映射,也是为实体添加或移除温度系统的方法。它具有以下数据:

  • max_entity_temperature: 实体的最高温度或气候。
  • min_entity_temperature: 实体的最低温度或气候。
  • is_mob: 用于决定实体接收简单还是复杂的玩家模型。
  • is_tamed: 实体是否需要驯服才能启用温度系统。

玩家条目示例:

    "minecraft:player": {
      "is_mob": false,
      "is_tamed": false,
      "max_entity_temperature": 25.0,
      "min_entity_temperature": 5.0
    }

方块温度数据映射: data/thermia/data_maps/block/block_temperature.json

剧透

方块温度是另一个主要数据映射。它告诉 thermia 哪个方块具有什么温度,以及它是热且辐射性的还是冷且传导性的。它具有以下数据:

  • temperature: 方块的温度,或如果它具有方块状态则为默认温度。如果 hasTFCHeat 为 true,则必须为 0。
  • search_cap: 在每次附近方块搜索中 thermia 应查找并保存多少个。
  • has_tfc_heat: 方块是否具有 TFC 的热机制。如果为 true,则温度必须为 0。
  • is_radiative: 此方块是否应被视为辐射源。如果为 false,则被视为接触源,例如冰。
  • state_temps: 这更复杂,允许特定方块状态具有不同温度。

bloomery 条目示例:

    "tfc:bloomery": {
      "has_tfc_heat": false,
      "is_radiative": true,
      "search_cap": 16,
      "state_temps": [
        {
          "value": 1200.0,
          "when": [
            "lit=true"
          ]
        }
      ],
      "temperature": 0.0
    }

流体温度数据映射: data/thermia/data_maps/fluid/fluid_temperature.json

剧透

与方块温度类似,这处理流体温度。它还允许你为包含这些流体的方块(如储罐)定义辐射温度。注意此数据映射没有特殊的方块状态处理。它具有以下数据:

  • temperature: 流体的温度。
  • search_cap: 在每次附近方块搜索中 thermia 应查找并保存多少个。
  • is_radiative: 此方块是否应被视为辐射源。如果为 false,则被视为浸没源,例如水。

熔岩条目示例:

    "minecraft:lava": {
      "is_radiative": true,
      "search_cap": 32,
      "temperature": 1000.0
    }

方块密封数据映射 data/thermia/data_maps/block/block_porosity.json

剧透

方块密封数据映射用于定义方块对室内的泄漏性。由于室内系统仅使用方块密封和 isSolidRender 来确定边界,方块孔隙度也充当白名单,允许非固体方块作为墙壁或边缘。它具有以下数据:

  • state_block_seal: 与方块温度的 state_temps 值类似,这是一个复杂条目,允许具有多个方块状态值的方块具有不同的孔隙度或泄漏性值。与活板门一样,其垂直位置被视为“打开”,但作为窗户的目的则视为关闭。
  • default_block_seal: 如果没有任何 state_porosity 值适用时的默认孔隙度。

栅栏条目示例:

    "#c:fences": {
      "default_block_seal": 0.5,
      "state_block_seal": [
        {
          "value": 0.25,
          "when": [
            "east=true",
            "west=false"
          ]
        },
        {
          "value": 0.25,
          "when": [
            "east=false",
            "west=true"
          ]
        },
        {
          "value": 0.25,
          "when": [
            "south=true",
            "north=false"
          ]
        },
        {
          "value": 0.25,
          "when": [
            "south=false",
            "north=true"
          ]
        }
      ]
    }

物品保温数据映射: data/thermia/data_maps/item/item_insulation.json

剧透

物品保温是 Thermia 热系统的关键部分。它将你与环境隔离,减缓甚至阻止环境温度变化。衣物系统有 4 个属性。它具有以下数据:

  • conductionProtection: 传导具有双重作用。首先也是最重要的,它有助于抵御冷方块等接触源。它还有助于减弱环境温度的牵引。必须在 -1 到 1 之间。

  • radiationProtection: 辐射保护抵御熔岩、火或太阳等辐射源。这有助于在炎热天气或锻造炉旁工作时应对太阳。必须在 -1 到 1 之间。

  • convectionProtection: 这抵御风或流动空气,有助于保持实体温暖。必须在 -1 到 1 之间。

  • rainProtection: 雨水保护相当简单,它是对你在雨中能变得多湿的简单限制。必须在 0 到 1 之间。

黑熊皮大衣示例:

    "thermia:black_bear_lined_coat": {
      "conduction_protection": 0.85,
      "convection_protection": 0.4,
      "radiation_protection": 0.1,
      "rain_protection": 0.85
    }