diff --git a/src/main/java/rs117/hd/HdPlugin.java b/src/main/java/rs117/hd/HdPlugin.java index d2d0f67860..a52b3f6f23 100644 --- a/src/main/java/rs117/hd/HdPlugin.java +++ b/src/main/java/rs117/hd/HdPlugin.java @@ -1653,6 +1653,11 @@ private void updateCachedConfigs() { if (configSeasonalHemisphere == SeasonalHemisphere.NORTHERN) { switch (time.getMonth()) { + case MARCH: + case APRIL: + case MAY: + configSeasonalTheme = SeasonalTheme.SPRING; + break; case SEPTEMBER: case OCTOBER: case NOVEMBER: @@ -1679,6 +1684,11 @@ private void updateCachedConfigs() { case AUGUST: configSeasonalTheme = SeasonalTheme.WINTER; break; + case SEPTEMBER: + case OCTOBER: + case NOVEMBER: + configSeasonalTheme = SeasonalTheme.SPRING; + break; default: configSeasonalTheme = SeasonalTheme.SUMMER; break; diff --git a/src/main/java/rs117/hd/HdPluginConfig.java b/src/main/java/rs117/hd/HdPluginConfig.java index 2a2a000d2b..9a637f245a 100644 --- a/src/main/java/rs117/hd/HdPluginConfig.java +++ b/src/main/java/rs117/hd/HdPluginConfig.java @@ -596,7 +596,7 @@ default boolean parallaxOcclusionMapping() { @ConfigItem( keyName = KEY_SEASONAL_THEME, name = "Seasonal Theme", - description = "Festive themes for Gielinor.", + description = "Festive themes for Gielinor. Select Summer to Disable", position = 0, section = environmentSettings ) diff --git a/src/main/java/rs117/hd/config/SeasonalTheme.java b/src/main/java/rs117/hd/config/SeasonalTheme.java index 80b9d77b5e..b56b075a03 100644 --- a/src/main/java/rs117/hd/config/SeasonalTheme.java +++ b/src/main/java/rs117/hd/config/SeasonalTheme.java @@ -7,8 +7,9 @@ @RequiredArgsConstructor public enum SeasonalTheme { AUTOMATIC, + SPRING, SUMMER, AUTUMN, - WINTER, + WINTER ; } diff --git a/src/main/java/rs117/hd/scene/EnvironmentManager.java b/src/main/java/rs117/hd/scene/EnvironmentManager.java index ea19d30c7b..ee8c457ca9 100644 --- a/src/main/java/rs117/hd/scene/EnvironmentManager.java +++ b/src/main/java/rs117/hd/scene/EnvironmentManager.java @@ -181,6 +181,7 @@ public void startUp() { map.put(env.key, env); Environment.OVERWORLD = map.getOrDefault("OVERWORLD", Environment.DEFAULT); + Environment.SPRING = map.getOrDefault("SPRING", Environment.DEFAULT); Environment.AUTUMN = map.getOrDefault("AUTUMN", Environment.DEFAULT); Environment.WINTER = map.getOrDefault("WINTER", Environment.DEFAULT); @@ -479,6 +480,8 @@ private Environment getCurrentEnvironment() { private Environment getOverworldEnvironment() { switch (plugin.configSeasonalTheme) { + case SPRING: + return Environment.SPRING; case AUTUMN: return Environment.AUTUMN; case WINTER: diff --git a/src/main/java/rs117/hd/scene/environments/Environment.java b/src/main/java/rs117/hd/scene/environments/Environment.java index a96c5339a3..1efe51a9eb 100644 --- a/src/main/java/rs117/hd/scene/environments/Environment.java +++ b/src/main/java/rs117/hd/scene/environments/Environment.java @@ -28,7 +28,7 @@ public class Environment { .setFogColor(rgb("#ff00ff")) .normalize(); - public static Environment OVERWORLD, AUTUMN, WINTER; + public static Environment OVERWORLD, SPRING, AUTUMN, WINTER; public String key; @JsonAdapter(AreaManager.Adapter.class) diff --git a/src/main/resources/rs117/hd/scene/environments.json b/src/main/resources/rs117/hd/scene/environments.json index 3ddc0f9b6f..827adba4ef 100644 --- a/src/main/resources/rs117/hd/scene/environments.json +++ b/src/main/resources/rs117/hd/scene/environments.json @@ -2155,6 +2155,26 @@ "windSpeed": 15, "windStrength": 50 }, + { + "key": "SPRING", + "ambientColor": "#f4fdff", + "ambientStrength": 1.45, + "directionalColor": [ + 260, + 260, + 220 + ], + "directionalStrength": 3.15, + "sunAngles": [ + 48, + 265 + ], + "fogColor": "#9fcaff", + "fogDepth": 8, + "windAngle": 40, + "windSpeed": 10, + "windStrength": 30 + }, { "key": "AUTUMN", "ambientColor": [ diff --git a/src/main/resources/rs117/hd/scene/materials.json b/src/main/resources/rs117/hd/scene/materials.json index 671dfa3c6c..368ece8db6 100644 --- a/src/main/resources/rs117/hd/scene/materials.json +++ b/src/main/resources/rs117/hd/scene/materials.json @@ -3180,6 +3180,66 @@ "name": "LEAVES_ORANGE_TOP", "parent": "LEAVES_TOP" }, + { + "name": "LEAVES_MAGIC_SIDE", + "parent": "LEAVES_SIDE" + }, + { + "name": "LEAVES_MAGIC_TOP", + "parent": "LEAVES_TOP" + }, + { + "name": "SPRING_CHERRY_BLOSSOM_LEAVES_TOP", + "hasTransparency": true, + "textureScale": [ + 1.025, + 1.025, + 1.0 + ], + "materialsToReplace": [ + "LEAVES_ORANGE_TOP" + ], + "replacementCondition": "season == SeasonalTheme.SPRING" + }, + { + "name": "SPRING_CHERRY_BLOSSOM_LEAVES_SIDE", + "hasTransparency": true, + "textureScale": [ + 1.025, + 1.025, + 1.0 + ], + "materialsToReplace": [ + "LEAVES_ORANGE_SIDE" + ], + "replacementCondition": "season == SeasonalTheme.SPRING" + }, + { + "name": "SPRING_JACARDANDA_LEAVES_TOP", + "hasTransparency": true, + "textureScale": [ + 1.025, + 1.025, + 1.0 + ], + "materialsToReplace": [ + "LEAVES_MAGIC_TOP" + ], + "replacementCondition": "season == SeasonalTheme.SPRING" + }, + { + "name": "SPRING_JACARDANDA_LEAVES_SIDE", + "hasTransparency": true, + "textureScale": [ + 1.025, + 1.025, + 1.0 + ], + "materialsToReplace": [ + "LEAVES_MAGIC_SIDE" + ], + "replacementCondition": "season == SeasonalTheme.SPRING" + }, { "name": "AUTUMN_LEAVES_YELLOW_SIDE", "hasTransparency": true, diff --git a/src/main/resources/rs117/hd/scene/model_overrides.json b/src/main/resources/rs117/hd/scene/model_overrides.json index 93c3675afa..1d579f21b4 100644 --- a/src/main/resources/rs117/hd/scene/model_overrides.json +++ b/src/main/resources/rs117/hd/scene/model_overrides.json @@ -32397,6 +32397,19 @@ "description": "Magic Tree", "baseMaterial": "BARK_STONEPINE", "windDisplacementMode": "VERTEX_WITH_HEMISPHERE_BLEND", + "uvType": "BOX", + "uvOrientation": 150, + "uvScale": 0.35, + "materialOverrides": { + "LEAVES_SIDE": { + "windDisplacementMode": "VERTEX", + "textureMaterial": "LEAVES_MAGIC_SIDE" + }, + "LEAVES_TOP": { + "windDisplacementMode": "VERTEX", + "textureMaterial": "LEAVES_MAGIC_TOP" + } + }, "objectIds": [ "MAGIC_TREE_SEEDLING", "MAGIC_TREE_1", @@ -32413,10 +32426,7 @@ "MAGIC_TREE_FULLYGROWN_1", "MAGIC_TREE_FULLYGROWN_2", "MAGICTREE" - ], - "uvType": "BOX", - "uvOrientation": 150, - "uvScale": 0.35 + ] }, { "description": "Magic Tree Stump", @@ -35354,6 +35364,7 @@ "DUNGEONKIT_BARS03_SLOPE02", "DUNGEONKIT_BARS01_LEFT01", "DUNGEONKIT_BARS01_RIGHT01", + "DUNGEONKIT_BARS03_LEFT01", "DUNGEONKIT_BARS03_RIGHT01", "DUNGEONKIT_BARS03_BROKEN01" @@ -41157,8 +41168,7 @@ "DAGANNOTH_PUDDLE" ], "uvType": "BOX" - }, - { + }, { "description": "Waterbirth Water Leak", "baseMaterial": "GRAY_60", "objectIds": [ @@ -42083,7 +42093,8 @@ "description": "Misthalin Mystery Boat", "objectIds": [ "MISTMYST_BOAT_LUMBRIDGE", - "MISTMYST_BOAT_ISLAND", + "MISTMYST_BOAT_ISLAND" + , "SEASLUG_ROWBOAT" ], "baseMaterial": "WOOD_GRAIN_3", @@ -47713,7 +47724,9 @@ "uvType": "BOX" }, { - "colors": "a < 255", + "colors": + "a < 255" + , "baseMaterial": "GRAY_85", "flatNormals": true, "receiveShadows": false diff --git a/src/main/resources/rs117/hd/scene/textures/spring_cherry_blossom_leaves_side.png b/src/main/resources/rs117/hd/scene/textures/spring_cherry_blossom_leaves_side.png new file mode 100644 index 0000000000..de74594d95 Binary files /dev/null and b/src/main/resources/rs117/hd/scene/textures/spring_cherry_blossom_leaves_side.png differ diff --git a/src/main/resources/rs117/hd/scene/textures/spring_cherry_blossom_leaves_top.png b/src/main/resources/rs117/hd/scene/textures/spring_cherry_blossom_leaves_top.png new file mode 100644 index 0000000000..fc5062b69c Binary files /dev/null and b/src/main/resources/rs117/hd/scene/textures/spring_cherry_blossom_leaves_top.png differ diff --git a/src/main/resources/rs117/hd/scene/textures/spring_jacardanda_leaves_side.png b/src/main/resources/rs117/hd/scene/textures/spring_jacardanda_leaves_side.png new file mode 100644 index 0000000000..656203f6ba Binary files /dev/null and b/src/main/resources/rs117/hd/scene/textures/spring_jacardanda_leaves_side.png differ diff --git a/src/main/resources/rs117/hd/scene/textures/spring_jacardanda_leaves_top.png b/src/main/resources/rs117/hd/scene/textures/spring_jacardanda_leaves_top.png new file mode 100644 index 0000000000..a0914ed6c2 Binary files /dev/null and b/src/main/resources/rs117/hd/scene/textures/spring_jacardanda_leaves_top.png differ