diff --git a/.idea/dictionaries/default_user.xml b/.idea/dictionaries/default_user.xml index eec6c321a802..42695fdf7d16 100644 --- a/.idea/dictionaries/default_user.xml +++ b/.idea/dictionaries/default_user.xml @@ -272,6 +272,8 @@ turbomax twinclaws typhoeus + ubik + ubikreminder ultrasequencer unobtained unsummarized @@ -288,4 +290,4 @@ yolkar - + \ No newline at end of file diff --git a/annotation-processors/out/production/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider b/annotation-processors/out/production/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider new file mode 100644 index 000000000000..5f0d42dc4a95 --- /dev/null +++ b/annotation-processors/out/production/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider @@ -0,0 +1 @@ +at.hannibal2.skyhanni.skyhannimodule.ModuleProvider diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index c290ef7aefb6..37553f2eeb5e 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -105,6 +105,7 @@ + Reset search terms in GUIs after closing inventory (Profit Trackers, Area Navigation list, etc.). + Enabled by default to reduce confusion caused by the search feature. + The Estimated Item Value now displays material names used to unlock gemstone slots. - hannibal2 (https://github.com/hannibal002/SkyHanni/pull/3089) ++ Added Mithril Infusion to Estimated Item Value. - Empa (https://github.com/hannibal002/SkyHanni/pull/2990) #### Chat and Command Improvements @@ -185,6 +186,7 @@ + Added an option to send the optimal speed warning even when not wearing Rancher's Boots. - Obsidian (https://github.com/hannibal002/SkyHanni/pull/2859) + Added a Pest Traps tab widget to the Tab Widget Display. - Luna (https://github.com/hannibal002/SkyHanni/pull/2984) + Updated Pest chat and GUI to indicate Pests Widget is disabled when displaying pests. - hannibal2 (https://github.com/hannibal002/SkyHanni/pull/3022) ++ Changed Anita medal profit display to show profit per copper medal and sort by this value. - hannibal2 (https://github.com/hannibal002/SkyHanni/pull/3122) #### Event Improvements @@ -208,6 +210,7 @@ + Added a warning for empty messages left behind by Stash Compact. - Daveed (https://github.com/hannibal002/SkyHanni/pull/3009) + Added option to hide seconds in the Real Time GUI. - Obsidian (https://github.com/hannibal002/SkyHanni/pull/2979) + Improved graph navigation performance. - hannibal2 & Thunderblade (https://github.com/hannibal002/SkyHanni/pull/3083) ++ Added Roman numeral support to slayer names in trackers, Profit Tracker Items, and Scoreboard. - hannibal2 (https://github.com/hannibal002/SkyHanni/pull/3113) ### Fixes @@ -260,6 +263,7 @@ + Fixed a small typo in Bestiary Display. - hannibal2 (https://github.com/hannibal002/SkyHanni/pull/2748) + Fixed `Line to Slayer Miniboss` not checking for walls. - hannibal2 (https://github.com/hannibal002/SkyHanni/pull/2788) + Fixed Special Zealots not highlighted after a recent Hypixel update. - Luna (https://github.com/hannibal002/SkyHanni/pull/3099) ++ Fixed Kuudra Lines sometimes not displaying in Custom Scoreboard. - j10a1n15 (https://github.com/hannibal002/SkyHanni/pull/3118) #### Custom Scoreboard Fixes @@ -358,6 +362,7 @@ + Fixed Time Tower warnings showing up on new profiles (e.g. Bingo). - hannibal2 (https://github.com/hannibal002/SkyHanni/pull/3012) + You can open `/cf` once to make the message disappear without changing settings if a new profile was created before applying the fix for the first time. + Fixed stray flash overlaying other Chocolate Factory information. - Daveed (https://github.com/hannibal002/SkyHanni/pull/3054) ++ Fixed error when opening Choc Factory via NEU buttons. - Daveed (https://github.com/hannibal002/SkyHanni/pull/3108) #### Event Fixes @@ -392,6 +397,7 @@ + Fixed the color of material messages. + Fixed overly liberal player message detection in Enable Chat Formatting. - !nea (https://github.com/hannibal002/SkyHanni/pull/2871) + This should fix many formatting issues related to `[SomethingHere] Something Else: Something Even More`. ++ Fixed /shwords causing blank messages in chat. - nopo (https://github.com/hannibal002/SkyHanni/pull/3110) #### Misc Fixes @@ -424,6 +430,10 @@ + Fixed collection tracker to recognize the current collection. - nopo (https://github.com/hannibal002/SkyHanni/pull/3049) + Fixed skill level. - hannibal2 (https://github.com/hannibal002/SkyHanni/pull/3068) + Fixed Replace Roman Numerals replacing random letters. - Mikecraft1224 (https://github.com/hannibal002/SkyHanni/pull/3003) ++ Fixed most incorrect farming skill XP cases. - hannibal2 (https://github.com/hannibal002/SkyHanni/pull/3121) + + Calculation errors when reaching a skill cap below 60 are not fixed yet. ++ Fixed distortion of regular words due to incorrect Roman numeral replacement. - hannibal2 (https://github.com/hannibal002/SkyHanni/pull/3113) ++ Fixed rare error message in skill progress display. - hannibal2 (https://github.com/hannibal002/SkyHanni/pull/3105) ### Technical Details @@ -542,6 +552,14 @@ + Moved Next Jacobs Contest, Best Crop Milestone & Jyrre Timer to Renderable. - j10a1n15 (https://github.com/hannibal002/SkyHanni/pull/3004) + Added /shtestactionbar command: set your clipboard as a fake Action Bar. - hannibal2 (https://github.com/hannibal002/SkyHanni/pull/3085) + Added /shdebug support for SkyBlock island, Bingo, and Tab List data tests. - hannibal2 (https://github.com/hannibal002/SkyHanni/pull/3085) ++ Added error logging to trevor solver. - CalMWolfs (https://github.com/hannibal002/SkyHanni/pull/3107) ++ Added allowlist for Roman numeral replacement. - hannibal2 (https://github.com/hannibal002/SkyHanni/pull/3113) ++ Added debug command /shdebugvisualwords. - hannibal2 (https://github.com/hannibal002/SkyHanni/pull/3112) + + Added console logging of all words replaced by /shword. ++ Added contributor rabbit names. - hannibal2 (https://github.com/hannibal002/SkyHanni/pull/3109) + + Replaced rabbit names in the rabbit collection menu with SkyHanni contributor names. ++ Added debug data for crop reading errors. - hannibal2 (https://github.com/hannibal002/SkyHanni/pull/3114) ++ Improved Detekt and .editorconfig rules. - hannibal2 (https://github.com/hannibal002/SkyHanni/pull/3104) ### Removed Features diff --git a/root.gradle.kts b/root.gradle.kts index 3cef4a498e48..0b962be5ed7d 100644 --- a/root.gradle.kts +++ b/root.gradle.kts @@ -14,7 +14,7 @@ plugins { allprojects { group = "at.hannibal2.skyhanni" - version = "0.28.Beta.21" + version = "0.28.Beta.22" repositories { mavenCentral() mavenLocal() diff --git a/src/main/java/META-INF/MANIFEST.MF b/src/main/java/META-INF/MANIFEST.MF new file mode 100644 index 000000000000..877ca5bd8ba8 --- /dev/null +++ b/src/main/java/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Main-Class: SkyHanniInstallerFrame + diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/rift/RiftConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/rift/RiftConfig.java index 9c24e810fc4c..968463e14e14 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/features/rift/RiftConfig.java +++ b/src/main/java/at/hannibal2/skyhanni/config/features/rift/RiftConfig.java @@ -55,4 +55,10 @@ public class RiftConfig { @ConfigEditorBoolean @FeatureToggle public boolean horsezookaHider = false; + + @Expose + @ConfigOption(name = "Ubik's cube reminder", desc = "Reminder for Ubik's cube in the rift") + @ConfigEditorBoolean + @FeatureToggle + public boolean ubikReminder = false; } diff --git a/src/main/java/at/hannibal2/skyhanni/features/rift/everywhere/Ubikreminder.kt b/src/main/java/at/hannibal2/skyhanni/features/rift/everywhere/Ubikreminder.kt new file mode 100644 index 000000000000..a15d5d024237 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/features/rift/everywhere/Ubikreminder.kt @@ -0,0 +1,37 @@ +package at.hannibal2.skyhanni.features.rift.everywhere + +import at.hannibal2.skyhanni.events.LorenzChatEvent +import at.hannibal2.skyhanni.features.rift.RiftAPI +import at.hannibal2.skyhanni.skyhannimodule.SkyHanniModule +import at.hannibal2.skyhanni.utils.ChatUtils +import at.hannibal2.skyhanni.utils.DelayedRun +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent +import kotlin.time.Duration.Companion.hours + +@SkyHanniModule +object Ubikreminder { + + private val config get() = RiftAPI.config.ubikReminder + + private var isTimerRunning = false + private val messageRegex = Regex("ROUND [1-9] \\(FINAL\\):") + + + @SubscribeEvent + fun onChat(event: LorenzChatEvent) { + if (!RiftAPI.config.ubikReminder) return + val message = event.message + if (messageRegex.matches(message) && !isTimerRunning) { + startTimer() + } + } + private fun startTimer() { + isTimerRunning = true + + DelayedRun.runDelayed(2.hours) { // 2 hours as a Duration + ChatUtils.chat("§aUbik's cube is ready in the rift!") + isTimerRunning = false + + } + } +} diff --git a/src/main/resources/META-INF/MANIFEST.MF b/src/main/resources/META-INF/MANIFEST.MF new file mode 100644 index 000000000000..877ca5bd8ba8 --- /dev/null +++ b/src/main/resources/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Main-Class: SkyHanniInstallerFrame + diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/META-INF/MANIFEST.MF b/src/main/resources/production/SkyHanni.1.8.9.main/META-INF/MANIFEST.MF new file mode 100644 index 000000000000..877ca5bd8ba8 --- /dev/null +++ b/src/main/resources/production/SkyHanni.1.8.9.main/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Main-Class: SkyHanniInstallerFrame + diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/bars/1.png b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/bars/1.png new file mode 100644 index 000000000000..063b624c0861 Binary files /dev/null and b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/bars/1.png differ diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/bars/2.png b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/bars/2.png new file mode 100644 index 000000000000..ca09621ab055 Binary files /dev/null and b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/bars/2.png differ diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/bars/3.png b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/bars/3.png new file mode 100644 index 000000000000..7a8f10b1f538 Binary files /dev/null and b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/bars/3.png differ diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/bars/4.png b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/bars/4.png new file mode 100644 index 000000000000..cbc7c18456c8 Binary files /dev/null and b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/bars/4.png differ diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/bars/5.png b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/bars/5.png new file mode 100644 index 000000000000..17367ee37891 Binary files /dev/null and b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/bars/5.png differ diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/cold_overlay.png b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/cold_overlay.png new file mode 100644 index 000000000000..da61958e30a0 Binary files /dev/null and b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/cold_overlay.png differ diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/folder.png b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/folder.png new file mode 100644 index 000000000000..f4af73530b51 Binary files /dev/null and b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/folder.png differ diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/gui/regexes.xml b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/gui/regexes.xml new file mode 100644 index 000000000000..d9b20d1719b2 --- /dev/null +++ b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/gui/regexes.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/gui/slot.png b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/gui/slot.png new file mode 100644 index 000000000000..7e15b97d12de Binary files /dev/null and b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/gui/slot.png differ diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/logo.png b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/logo.png new file mode 100644 index 000000000000..8be408cf116e Binary files /dev/null and b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/logo.png differ diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/scoreboard.png b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/scoreboard.png new file mode 100644 index 000000000000..acd9d85863a2 Binary files /dev/null and b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/scoreboard.png differ diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/darken.fsh b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/darken.fsh new file mode 100644 index 000000000000..cfc118eefba6 --- /dev/null +++ b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/darken.fsh @@ -0,0 +1,13 @@ +#version 120 + +// Fragment Shader +uniform sampler2D texture; +uniform float darknessLevel; + +varying vec4 outColor; + +void main() { + vec4 color = texture2D(texture, gl_TexCoord[0].st) * outColor; + vec3 darkenedColor = color.rgb * darknessLevel; + gl_FragColor = vec4(darkenedColor, color.a); +} diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/darken.vsh b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/darken.vsh new file mode 100644 index 000000000000..210bee8725f7 --- /dev/null +++ b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/darken.vsh @@ -0,0 +1,9 @@ +#version 120 + +varying vec4 outColor; + +void main() { + gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; + gl_TexCoord[0] = gl_MultiTexCoord0; + outColor = gl_Color; +} diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/rounded_rect.fsh b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/rounded_rect.fsh new file mode 100644 index 000000000000..e728bf43d6a0 --- /dev/null +++ b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/rounded_rect.fsh @@ -0,0 +1,34 @@ +#version 120 + +uniform float scaleFactor; +uniform float radius; +uniform float smoothness; +uniform vec2 halfSize; +uniform vec2 centerPos; + +varying vec4 color; + +// From https://www.shadertoy.com/view/WtdSDs +float roundedRectSDF(vec2 center, vec2 halfSize, float radius) { + return length(max(abs(center) - halfSize + radius, 0.0)) - radius; +} + +void main() { + float xScale = gl_ModelViewMatrix[0][0]; + float yScale = gl_ModelViewMatrix[1][1]; + float xTranslation = gl_ModelViewMatrix[3][0]; + float yTranslation = gl_ModelViewMatrix[3][1]; + + vec2 newHalfSize = vec2(halfSize.x * xScale, halfSize.y * yScale); + + float newCenterPosY = centerPos.y; + if (yScale != 1.0) { + newCenterPosY = centerPos.y - (halfSize.y * (yScale - 1)); + } + + vec2 newCenterPos = vec2((centerPos.x * xScale) + (xTranslation * scaleFactor), newCenterPosY - (yTranslation * scaleFactor)); + + float distance = roundedRectSDF(gl_FragCoord.xy - newCenterPos, newHalfSize, radius); + float smoothed = 1.0 - smoothstep(0.0, smoothness, distance); + gl_FragColor = color * vec4(1.0, 1.0, 1.0, smoothed); +} diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/rounded_rect.vsh b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/rounded_rect.vsh new file mode 100644 index 000000000000..acfb526629fd --- /dev/null +++ b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/rounded_rect.vsh @@ -0,0 +1,8 @@ +#version 120 + +varying vec4 color; + +void main() { + gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; + color = gl_Color; +} diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/rounded_rect_outline.fsh b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/rounded_rect_outline.fsh new file mode 100644 index 000000000000..64c8a54d6bf6 --- /dev/null +++ b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/rounded_rect_outline.fsh @@ -0,0 +1,40 @@ +#version 120 + +// Rect specific uniforms +uniform float scaleFactor; +uniform float radius; +uniform vec2 halfSize; +uniform vec2 centerPos; + +// Outline specific uniforms +uniform float borderThickness; +uniform float borderBlur; + +varying vec4 color; + +// From https://www.shadertoy.com/view/WtdSDs +float roundedRectSDF(vec2 center, vec2 halfSize, float radius) { + return length(max(abs(center) - halfSize + radius, 0.0)) - radius; +} + +void main() { + float xScale = gl_ModelViewMatrix[0][0]; + float yScale = gl_ModelViewMatrix[1][1]; + float xTranslation = gl_ModelViewMatrix[3][0]; + float yTranslation = gl_ModelViewMatrix[3][1]; + + vec2 newHalfSize = vec2(halfSize.x * xScale, halfSize.y * yScale); + + float newCenterPosY = centerPos.y; + if (yScale != 1.0) { + newCenterPosY = centerPos.y - (halfSize.y * (yScale - 1)); + } + + vec2 newCenterPos = vec2((centerPos.x * xScale) + (xTranslation * scaleFactor), newCenterPosY - (yTranslation * scaleFactor)); + + float distance = roundedRectSDF(gl_FragCoord.xy - newCenterPos, newHalfSize, max(radius, borderThickness)); + + // In testing, keeping the upper bound at 1.0 and letting the lower be changable seemed the most sensible for nice results + float smoothed = 1.0 - smoothstep(borderBlur, 1.0, abs(distance / borderThickness)); + gl_FragColor = color * vec4(1.0, 1.0, 1.0, smoothed); +} diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/rounded_rect_outline.vsh b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/rounded_rect_outline.vsh new file mode 100644 index 000000000000..acfb526629fd --- /dev/null +++ b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/rounded_rect_outline.vsh @@ -0,0 +1,8 @@ +#version 120 + +varying vec4 color; + +void main() { + gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; + color = gl_Color; +} diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/rounded_texture.fsh b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/rounded_texture.fsh new file mode 100644 index 000000000000..4e5c0e1eacdf --- /dev/null +++ b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/rounded_texture.fsh @@ -0,0 +1,37 @@ +#version 120 + +uniform float scaleFactor; +uniform float radius; +uniform float smoothness; +uniform vec2 halfSize; +uniform vec2 centerPos; + +uniform sampler2D outTexture; + +varying vec2 outTextureCoords; +varying vec4 outColor; + +// From https://www.shadertoy.com/view/WtdSDs +float roundedRectSDF(vec2 center, vec2 halfSize, float radius) { + return length(max(abs(center) - halfSize + radius, 0.0)) - radius; +} + +void main() { + float xScale = gl_ModelViewMatrix[0][0]; + float yScale = gl_ModelViewMatrix[1][1]; + float xTranslation = gl_ModelViewMatrix[3][0]; + float yTranslation = gl_ModelViewMatrix[3][1]; + + vec2 newHalfSize = vec2(halfSize.x * xScale, halfSize.y * yScale); + + float newCenterPosY = centerPos.y; + if (yScale != 1.0) { + newCenterPosY = centerPos.y - (halfSize.y * (yScale - 1)); + } + + vec2 newCenterPos = vec2((centerPos.x * xScale) + (xTranslation * scaleFactor), newCenterPosY - (yTranslation * scaleFactor)); + + float distance = roundedRectSDF(gl_FragCoord.xy - newCenterPos, newHalfSize, radius); + float smoothed = 1.0 - smoothstep(0.0, smoothness, distance); + gl_FragColor = (texture2D(outTexture, outTextureCoords) * outColor) * vec4(1.0, 1.0, 1.0, smoothed); +} diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/rounded_texture.vsh b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/rounded_texture.vsh new file mode 100644 index 000000000000..227f964a1211 --- /dev/null +++ b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/rounded_texture.vsh @@ -0,0 +1,10 @@ +#version 120 + +varying vec2 outTextureCoords; +varying vec4 outColor; + +void main(){ + gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; + outColor = gl_Color; + outTextureCoords = gl_MultiTexCoord0.st; +} diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/standard_chroma.fsh b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/standard_chroma.fsh new file mode 100644 index 000000000000..0028fe6ceae8 --- /dev/null +++ b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/standard_chroma.fsh @@ -0,0 +1,37 @@ +// Chroma Fragment Shader +// (Same as textured_chroma.fsh but isn't restricted to textured elements) + +#version 120 + +uniform float chromaSize; +uniform float timeOffset; +uniform float saturation; +uniform bool forwardDirection; + +varying vec4 originalColor; + +float rgb2b(vec3 rgb) { + return max(max(rgb.r, rgb.g), rgb.b); +} + +vec3 hsb2rgb_smooth(vec3 c) { + vec3 rgb = clamp(abs(mod(c.x * 6.0 + vec3(0.0, 4.0, 2.0), 6.0) - 3.0) - 1.0, 0.0, 1.0); + rgb = rgb * rgb * (3.0 - 2.0 * rgb); // Cubic smoothing + return c.z * mix(vec3(1.0), rgb, c.y); +} + +void main() { + // Determine the direction chroma moves + float fragCoord; + if (forwardDirection) { + fragCoord = gl_FragCoord.x - gl_FragCoord.y; + } else { + fragCoord = gl_FragCoord.x + gl_FragCoord.y; + } + + // The hue takes in account the position, chroma settings, and time + float hue = mod(((fragCoord) / chromaSize) - timeOffset, 1.0); + + // Set the color to use the new hue & original saturation/value/alpha values + gl_FragColor = vec4(hsb2rgb_smooth(vec3(hue, saturation, rgb2b(originalColor.rgb))), originalColor.a); +} diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/standard_chroma.vsh b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/standard_chroma.vsh new file mode 100644 index 000000000000..abfee20ee579 --- /dev/null +++ b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/standard_chroma.vsh @@ -0,0 +1,13 @@ +// Chroma Vertex Shader +// (Same as textured_chroma.vsh but isn't restricted to only texture elements) + +#version 120 + +varying vec4 originalColor; + +void main() { + gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; + + // Pass original color to fragment + originalColor = gl_Color; +} diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/textured_chroma.fsh b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/textured_chroma.fsh new file mode 100644 index 000000000000..1ccdc4fe1776 --- /dev/null +++ b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/textured_chroma.fsh @@ -0,0 +1,43 @@ +// Textured Chroma Fragment Shader +// Modified from SkyblockAddons +// Credit: https://github.com/BiscuitDevelopment/SkyblockAddons/blob/main/src/main/resources/assets/skyblockaddons/shaders/program/chroma_screen_textured.fsh + +#version 120 + +uniform float chromaSize; +uniform float timeOffset; +uniform float saturation; +uniform bool forwardDirection; + +uniform sampler2D outTexture; + +varying vec2 outTextureCoords; +varying vec4 outColor; + +float rgb2b(vec3 rgb) { + return max(max(rgb.r, rgb.g), rgb.b); +} + +vec3 hsb2rgb_smooth(vec3 c) { + vec3 rgb = clamp(abs(mod(c.x * 6.0 + vec3(0.0, 4.0, 2.0), 6.0) - 3.0) - 1.0, 0.0, 1.0); + rgb = rgb * rgb * (3.0 - 2.0 * rgb); // Cubic smoothing + return c.z * mix(vec3(1.0), rgb, c.y); +} + +void main() { + vec4 originalColor = texture2D(outTexture, outTextureCoords) * outColor; + + // Determine the direction chroma moves + float fragCoord; + if (forwardDirection) { + fragCoord = gl_FragCoord.x - gl_FragCoord.y; + } else { + fragCoord = gl_FragCoord.x + gl_FragCoord.y; + } + + // The hue takes in account the position, chroma settings, and time + float hue = mod(((fragCoord) / chromaSize) - timeOffset, 1.0); + + // Set the color to use the new hue & original saturation/value/alpha values + gl_FragColor = vec4(hsb2rgb_smooth(vec3(hue, saturation, rgb2b(originalColor.rgb))), originalColor.a); +} diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/textured_chroma.vsh b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/textured_chroma.vsh new file mode 100644 index 000000000000..5dad3950f2bc --- /dev/null +++ b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/shaders/textured_chroma.vsh @@ -0,0 +1,15 @@ +// Textured Chroma Vertex Shader +// Credit: https://github.com/BiscuitDevelopment/SkyblockAddons/blob/main/src/main/resources/assets/skyblockaddons/shaders/program/chroma_screen_textured.vsh + +#version 120 + +varying vec2 outTextureCoords; +varying vec4 outColor; + +void main() { + gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; + + // Pass the color & texture coords to the fragment shader + outColor = gl_Color; + outTextureCoords = gl_MultiTexCoord0.st; +} diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/sounds.json b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/sounds.json new file mode 100644 index 000000000000..4a7c79770598 --- /dev/null +++ b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/sounds.json @@ -0,0 +1,11 @@ +{ + "centurytimer.active": { + "category": "neutral", + "sounds": [ + { + "name": "itstimetopunchwheat", + "stream": false + } + ] + } +} diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/sounds/itstimetopunchwheat.ogg b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/sounds/itstimetopunchwheat.ogg new file mode 100644 index 000000000000..b7bd981373da Binary files /dev/null and b/src/main/resources/production/SkyHanni.1.8.9.main/assets/skyhanni/sounds/itstimetopunchwheat.ogg differ diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/fabric.mod.json b/src/main/resources/production/SkyHanni.1.8.9.main/fabric.mod.json new file mode 100644 index 000000000000..d86c9cd51efb --- /dev/null +++ b/src/main/resources/production/SkyHanni.1.8.9.main/fabric.mod.json @@ -0,0 +1,12 @@ +{ + "schemaVersion": 1, + "version": "${version}", + "id": "skyhanni", + "name": "SkyHanni", + "description": "SkyHanni is a Minecraft Mod for Hypixel SkyBlock.", + "icon": "assets/skyhanni/logo.png", + "authors": [], + "depends": { + "minecraft": "1.8.9" + } +} diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/hotswap-agent.properties b/src/main/resources/production/SkyHanni.1.8.9.main/hotswap-agent.properties new file mode 100644 index 000000000000..230a7d99ac0a --- /dev/null +++ b/src/main/resources/production/SkyHanni.1.8.9.main/hotswap-agent.properties @@ -0,0 +1 @@ +pluginPackages=moe.nea.hotswapagentforge.plugin diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/mcmod.info b/src/main/resources/production/SkyHanni.1.8.9.main/mcmod.info new file mode 100644 index 000000000000..0e135af9dd77 --- /dev/null +++ b/src/main/resources/production/SkyHanni.1.8.9.main/mcmod.info @@ -0,0 +1,20 @@ +[ + { + "modid": "skyhanni", + "name": "SkyHanni", + "description": "Hypixel SkyBlock Mod", + "version": "${version}", + "mcversion": "1.8.9", + "url": "https://github.com/hannibal002/SkyHanni", + "updateUrl": "", + "authorList": [ + "hannibal2" + ], + "credits": "https://github.com/hannibal002/SkyHanni/graphs/contributors", + "logoFile": "assets/skyhanni/logo.png", + "screenshots": [], + "dependencies": [ + "NotEnoughUpdates" + ] + } +] diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/mixins.skyhanni.json b/src/main/resources/production/SkyHanni.1.8.9.main/mixins.skyhanni.json new file mode 100644 index 000000000000..b7763efb1401 --- /dev/null +++ b/src/main/resources/production/SkyHanni.1.8.9.main/mixins.skyhanni.json @@ -0,0 +1,9 @@ +{ + "package": "at.hannibal2.skyhanni.mixins.transformers", + "refmap": "mixins.skyhanni.refmap.json", + "plugin": "at.hannibal2.skyhanni.mixins.init.SkyhanniMixinPlugin", + "compatibilityLevel": "JAVA_8", + "injectors": { + "maxShiftBy": 2 + } +} diff --git a/src/main/resources/production/SkyHanni.1.8.9.main/skyhanni-keystore.jks b/src/main/resources/production/SkyHanni.1.8.9.main/skyhanni-keystore.jks new file mode 100644 index 000000000000..75039b79a010 Binary files /dev/null and b/src/main/resources/production/SkyHanni.1.8.9.main/skyhanni-keystore.jks differ