Skip to content

自定义日历显示

本章节介绍如何自定义 Ecliptic Seasons 中的日历显示与节气提示文本。

该功能主要用于实现特殊地区的季节表现,例如:

  • 雨季 / 旱季
  • 永秋
  • 长冬
  • 自定义地区季节名称

注意:

本功能仅影响日历界面和节气提示的显示内容。

它不会改变实际的季节推进、天气、温度、作物生长、降雪判定或其他游戏机制。


基本概念

自定义日历显示由两部分组成:

  • 季节阶段(Season Phase)
  • 季节映射(Season Cycle)

通常需要同时使用。

季节阶段(Season Phase)

季节阶段用于定义一个可显示的阶段。

例如:

  • 湿季
  • 旱季
  • 永秋
  • 长冬

它决定了:

  • 显示名称
  • 图标
  • 颜色
  • 字体图标
  • 所属季节

季节映射(Season Cycle)

季节映射用于指定:

某个群系在当前节气下应该显示哪个季节阶段。

例如热带季风地区:

  • 部分时间显示旱季
  • 部分时间显示雨季
  • 部分时间显示湿季

玩家看到的日历和节气提示会发生变化,但实际气候系统不会受到影响。


创建季节阶段

季节阶段文件放置于:

data/<命名空间>/eclipticseasons/season_phase

示例:

{
  "color": "green",
  "icon": {
    "texture": "eclipticseasons:season_phase/wet_middle"
  },
  "font": {
    "id": "eclipticseasons:monsoon_icons",
    "label": "h"
  },
  "season": "summer",
  "name": "eclipticseasons:wet"
}

该文件定义了一个名为 wet 的季节阶段。


本地化文本

name 字段需要对应的语言文件支持。

例如:

{
  "info.eclipticseasons.environment.season_phase.wet": "湿季",
  "info.eclipticseasons.environment.season_phase.pattern.wet": "%s(全年)",
  "info.eclipticseasons.environment.season_phase.alternation.wet": "水汽沉沉,湿热难耐。"
}

其中:

键名 作用
season_phase.wet 阶段名称
pattern.wet 日历显示格式
alternation.wet 节气提示文本

图标设置

最简单的方式是直接提供独立图标:

{
  "icon": {
    "texture": "eclipticseasons:season_phase/wet_middle"
  }
}

推荐使用独立的 30×30 图标。


如果需要使用图集,可以指定:

{
  "icon": {
    "i": 1,
    "j": 3,
    "texture": "eclipticseasons:font/seasons_icons",
    "width": 180,
    "height": 120,
    "size": 30
  }
}

这种方式适用于多个阶段共用一张图集。


创建季节映射

季节映射文件放置于:

data/<命名空间>/eclipticseasons/season_cycle

默认情况下该功能不会启用,需要在配置中手动开启。

季节映射用于指定:

某些群系在特定节气时应该显示哪个季节阶段。

示例:

{
  "biomes": "#eclipticseasons:monsoonal",
  "phases": {
    "solar_terms": {
      "beginning_of_spring": "eclipticseasons:dry_middle",
      "rain_water": "eclipticseasons:dry_middle",
      "insects_awakening": "eclipticseasons:dry_end",
      "spring_equinox": "eclipticseasons:dry_end",
      "fresh_green": "eclipticseasons:dry_end",
      "grain_rain": "eclipticseasons:dry_end",

      "beginning_of_summer": "eclipticseasons:rain_start",
      "lesser_fullness": "eclipticseasons:rain_middle",
      "grain_in_ear": "eclipticseasons:rain_middle",
      "summer_solstice": "eclipticseasons:rain_end",
      "lesser_heat": "eclipticseasons:rain_end",
      "greater_heat": "eclipticseasons:rain_end",

      "beginning_of_autumn": "eclipticseasons:rain_end",
      "end_of_heat": "eclipticseasons:wet_start",
      "white_dew": "eclipticseasons:wet_start",
      "autumnal_equinox": "eclipticseasons:wet_middle",
      "cold_dew": "eclipticseasons:wet_middle",
      "first_frost": "eclipticseasons:wet_end",

      "beginning_of_winter": "eclipticseasons:dry_start",
      "light_snow": "eclipticseasons:dry_start",
      "heavy_snow": "eclipticseasons:dry_start",
      "winter_solstice": "eclipticseasons:dry_start",
      "lesser_cold": "eclipticseasons:dry_middle",
      "greater_cold": "eclipticseasons:dry_middle"
    }
  }
}

上述示例会让 #eclipticseasons:monsoonal 标签中的群系显示自定义的雨季与旱季循环。


biomes 字段

biomes 使用 HolderSet 格式。

支持单个群系:

"biomes": "minecraft:savanna"

也支持群系标签:

"biomes": "#eclipticseasons:monsoonal"

当多个群系共享同一种显示逻辑时,推荐使用标签。


phases 字段

phases 使用 SolarTermMap 结构。

支持以下三种映射方式:

  • solar_terms
  • seasons
  • default

按节气映射

适用于需要精确控制每一个节气显示效果的情况。

{
  "phases": {
    "solar_terms": {
      "beginning_of_spring": "eclipticseasons:dry_middle",
      "rain_water": "eclipticseasons:dry_middle"
    }
  }
}

按季节映射

适用于整个季节统一显示的情况。

{
  "phases": {
    "seasons": {
      "spring": "eclipticseasons:wet",
      "summer": "eclipticseasons:wet",
      "autumn": "eclipticseasons:dry",
      "winter": "eclipticseasons:dry"
    }
  }
}

默认映射

当没有找到更具体规则时使用。

{
  "phases": {
    "default": "eclipticseasons:wet"
  }
}

常见用途

雨季与旱季

适用于热带或季风地区。

玩家看到的将不再是春夏秋冬,而是湿季、雨季和旱季。


永秋地区

适用于特殊维度或幻想风格群系。

无论当前节气为何,日历始终显示秋季阶段。


自定义地区季节名称

不同地区可以拥有不同的显示名称。

例如:

  • 温带地区显示二十四节气
  • 热带地区显示雨季与旱季

从而实现不同地区的文化或气候表现。


注意事项

本功能仅用于修改显示内容。

不会影响:

  • 实际节气推进
  • 天气概率
  • 温度计算
  • 降雪逻辑
  • 作物生长
  • 温室系统
  • 湿度系统

如果需要修改实际游戏行为,请使用对应的数据包配置或气候系统配置。

季节阶段与季节映射仅负责玩家看到的日历和节气提示内容。