Skip to content

Commit

Permalink
Merge branch 'master' into activitySystem
Browse files Browse the repository at this point in the history
  • Loading branch information
Avanatiker committed Jun 5, 2023
2 parents b91b1f8 + 2903c08 commit c9bba67
Show file tree
Hide file tree
Showing 15 changed files with 193 additions and 77 deletions.
28 changes: 15 additions & 13 deletions .github/workflows/nightly_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,19 @@ jobs:

steps:
- name: Check out repository
uses: actions/checkout@v2
uses: actions/checkout@v3.5.2

- name: Set up JDK
uses: actions/setup-java@v1
uses: actions/setup-java@v3.11.0
with:
java-version: 1.8
distribution: 'temurin'
java-version: 8

- name: Elevate wrapper permissions
run: chmod +x ./gradlew

- name: Loading gradle cache
uses: actions/cache@v2
uses: actions/cache@v3.3.1
with:
path: |
~/.gradle/caches
Expand All @@ -45,20 +46,20 @@ jobs:
run: mv build/libs/lambda-*.jar lambda-${{ github.run_number }}.jar

- name: Generate forge mod checksum
uses: ToxicAven/generate-checksum-file@v1
uses: ToxicAven/generate-checksum-file@v2
with:
filePath: lambda-${{ github.run_number }}.jar
saveFile: lambda-${{ github.run_number }}-SHA256.txt
algorithm: SHA256

- name: Archive forge mod
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3.1.2
with:
name: lambda-${{ github.run_number }}
path: lambda-${{ github.run_number }}.jar

- name: Archive forge mod checksum
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3.1.2
with:
name: lambda-${{ github.run_number }}-SHA256.txt
path: lambda-${{ github.run_number }}-SHA256.txt
Expand All @@ -70,29 +71,30 @@ jobs:
run: mv build/libs/lambda-*-api.jar lambda-${{ github.run_number }}-api.jar

- name: Generate API mod checksum
uses: ToxicAven/generate-checksum-file@v1
uses: ToxicAven/generate-checksum-file@v2
with:
filePath: lambda-${{ github.run_number }}-api.jar
saveFile: lambda-${{ github.run_number }}-api-SHA256.txt
algorithm: SHA256

- name: Archive plugin API
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3.1.2
with:
name: lambda-${{ github.run_number }}-api
path: lambda-${{ github.run_number }}-api.jar

- name: Upload API checksum
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3.1.2
with:
name: lambda-${{ github.run_number }}-api-SHA256.txt
path: lambda-${{ github.run_number }}-api-SHA256.txt

- name: Get branch name
uses: nelonoel/branch-name@v1.0.1
id: branch-name
uses: tj-actions/branch-names@v7

- name: Send Discord build message
if: github.ref == 'refs/heads/master'
if: steps.branch-name.outputs.is_default == 'true'
run: |
COMMITMESSAGE=`git log --pretty=format:'- \`%h\` %s' -5 --reverse` &&
(curl "$WEBHOOK" -sS -H "Content-Type:application/json" -X POST -d "{\"content\":null,\"embeds\":[{\"title\":\"Build $BUILD\",\"description\":\"**Branch:** $BRANCH_NAME\\n**Changes:**\\n$COMMITMESSAGE\",\"url\":\"https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID\",\"color\":1487872,\"fields\":[{\"name\":\"Artifacts:\",\"value\":\"- [lambda-$BUILD.zip](https://nightly.link/$GITHUB_REPOSITORY/workflows/nightly_build.yml/$BRANCH_NAME/lambda-$BUILD.zip)\"}],\"footer\":{\"text\":\"$GITHUB_REPOSITORY\"},\"thumbnail\":{\"url\":\"https://raw.githubusercontent.com/lambda-client/lambda/master/src/main/resources/assets/minecraft/lambda/lambda_map.png\"}}],\"username\":\"Github Actions\",\"avatar_url\":\"https://www.2b2t.com.au/assets/github.jpeg\"}")
(curl "$WEBHOOK" -sS -H "Content-Type:application/json" -X POST -d "{\"content\":null,\"embeds\":[{\"title\":\"Build $BUILD\",\"description\":\"**Branch:** $BRANCH_NAME\\n**Changes:**\\n$COMMITMESSAGE\",\"url\":\"https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID\",\"color\":1487872,\"fields\":[{\"name\":\"Artifacts:\",\"value\":\"- [lambda-$BUILD.zip](https://nightly.link/$GITHUB_REPOSITORY/workflows/nightly_build.yml/$BRANCH_NAME/lambda-$BUILD.zip)\"}],\"footer\":{\"text\":\"$GITHUB_REPOSITORY\"},\"thumbnail\":{\"url\":\"https://raw.githubusercontent.com/lambda-client/lambda/master/src/main/resources/assets/minecraft/lambda/lambda_map.png\"}}],\"username\":\"Github Actions\",\"avatar_url\":\"https://www.2b2t.com.au/assets/github.jpeg\"}")
8 changes: 6 additions & 2 deletions src/main/kotlin/com/lambda/client/LambdaMod.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.lambda.client

import com.lambda.client.event.ForgeEventProcessor
import com.lambda.client.event.LambdaEventBus
import com.lambda.client.event.events.RealWorldTickEvent
import com.lambda.client.gui.clickgui.LambdaClickGui
import com.lambda.client.util.ConfigUtils
import com.lambda.client.util.KamiCheck
Expand Down Expand Up @@ -70,8 +72,6 @@ class LambdaMod {
ConfigUtils.moveAllLegacyConfigs()
ConfigUtils.loadAll()

BackgroundScope.start()

WebUtils.updateCheck()
LambdaClickGui.populateRemotePlugins()

Expand All @@ -83,5 +83,9 @@ class LambdaMod {
@Mod.EventHandler
fun postInit(event: FMLPostInitializationEvent) {
ready = true
BackgroundScope.launchLooping("RealWorldTick", 50L) {
LambdaEventBus.post(RealWorldTickEvent())
}
BackgroundScope.start()
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.lambda.client.event.events

import com.lambda.client.event.Event

class RealWorldTickEvent : Event
11 changes: 5 additions & 6 deletions src/main/kotlin/com/lambda/client/gui/AbstractLambdaGui.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.lambda.client.gui

import com.lambda.client.event.events.RealWorldTickEvent
import com.lambda.client.event.events.RenderOverlayEvent
import com.lambda.client.event.listener.listener
import com.lambda.client.gui.rgui.WindowComponent
import com.lambda.client.gui.rgui.windows.ColorPicker
import com.lambda.client.gui.rgui.windows.SettingWindow
Expand All @@ -14,13 +16,11 @@ import com.lambda.client.util.graphics.*
import com.lambda.client.util.graphics.font.FontRenderAdapter
import com.lambda.client.util.math.Vec2d
import com.lambda.client.util.math.Vec2f
import com.lambda.client.util.threads.safeListener
import com.lambda.mixin.accessor.gui.AccessorGuiScreen
import net.minecraft.client.gui.GuiScreen
import net.minecraft.client.gui.ScaledResolution
import net.minecraft.client.renderer.GlStateManager
import net.minecraft.util.ResourceLocation
import net.minecraftforge.fml.common.gameevent.TickEvent
import org.lwjgl.input.Keyboard
import org.lwjgl.input.Mouse
import org.lwjgl.opengl.GL11.*
Expand Down Expand Up @@ -86,9 +86,7 @@ abstract class AbstractLambdaGui<S : SettingWindow<*>, E : Any> : GuiScreen() {
mc = Wrapper.minecraft
windowList.add(ColorPicker)

safeListener<TickEvent.ClientTickEvent> { event ->
if (event.phase != TickEvent.Phase.START) return@safeListener

listener<RealWorldTickEvent> {
blurShader.shader?.let { shaderGroup ->
val multiplier = ClickGUI.blur * fadeMultiplier
shaderGroup.listShaders.forEach { shader ->
Expand All @@ -101,7 +99,7 @@ abstract class AbstractLambdaGui<S : SettingWindow<*>, E : Any> : GuiScreen() {
}
}

safeListener<RenderOverlayEvent>(-69420) {
listener<RenderOverlayEvent>(-69420) {
if (!displayed.value && fadeMultiplier > 0.0f) {
drawScreen(0, 0, mc.renderPartialTicks)
}
Expand Down Expand Up @@ -269,6 +267,7 @@ abstract class AbstractLambdaGui<S : SettingWindow<*>, E : Any> : GuiScreen() {

// Rendering
final override fun drawScreen(mouseX: Int, mouseY: Int, partialTicks: Float) {
handleInput()
val scale = ClickGUI.getScaleFactorFloat()
val scaledResolution = ScaledResolution(mc)
val multiplier = fadeMultiplier
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,7 @@ object LambdaClickGui : AbstractLambdaGui<ModuleSettingWindow, AbstractModule>()
val allButtons = ModuleManager.modules
.groupBy { it.category.displayName }
.mapValues { (_, modules) -> modules.map { ModuleButton(it) } }
allButtons.forEach { it.value.forEach { it.onGuiInit() }}

windows.filter { window ->
window != pluginWindow
Expand Down
72 changes: 65 additions & 7 deletions src/main/kotlin/com/lambda/client/gui/hudgui/AbstractHudElement.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import com.lambda.client.commons.interfaces.Alias
import com.lambda.client.commons.interfaces.DisplayEnum
import com.lambda.client.commons.interfaces.Nameable
import com.lambda.client.event.LambdaEventBus
import com.lambda.client.gui.GuiManager
import com.lambda.client.gui.rgui.windows.BasicWindow
import com.lambda.client.module.modules.client.GuiColors
import com.lambda.client.module.modules.client.Hud
Expand All @@ -18,6 +19,7 @@ import com.lambda.client.util.math.Vec2d
import com.lambda.client.util.math.Vec2f
import com.lambda.client.util.text.MessageSendHelper
import com.lambda.client.util.threads.safeListener
import net.minecraft.client.gui.GuiChat
import net.minecraftforge.fml.common.gameevent.TickEvent
import org.lwjgl.opengl.GL11.glScalef

Expand All @@ -34,7 +36,13 @@ abstract class AbstractHudElement(
val bind by setting("Bind", Bind())
val scale by setting("Scale", 1.0f, 0.1f..4.0f, 0.05f)
val default = setting("Default", false)
private val overridePrimaryColor by setting("Override Primary Color", false)
private val overridePrimaryColorValue by setting("Override Primary Color Value", Hud.primaryColor, visibility = { overridePrimaryColor })
private val overrideSecondaryColor by setting("Override Secondary Color", false)
private val overrideSecondaryColorValue by setting("Override Secondary Color Value", Hud.secondaryColor, visibility = { overrideSecondaryColor })

val primaryColor get() = if (overridePrimaryColor) overridePrimaryColorValue else Hud.primaryColor
val secondaryColor get() = if (overrideSecondaryColor) overrideSecondaryColorValue else Hud.secondaryColor
override val resizable = false

final override val minWidth: Float get() = FontRenderAdapter.getFontHeight() * scale * 2.0f
Expand All @@ -47,12 +55,66 @@ abstract class AbstractHudElement(
open val hudHeight: Float get() = 10f

val settingList get() = GuiConfig.getSettings(this)
private var chatSnapping = false
private val snappedElements = mutableListOf<AbstractHudElement>()
private val chatSnapY = 15f

init {
safeListener<TickEvent.ClientTickEvent> {
if (it.phase != TickEvent.Phase.END || !visible) return@safeListener
safeListener<TickEvent.ClientTickEvent> { event ->
if (event.phase != TickEvent.Phase.END || !visible) return@safeListener
width = maxWidth
height = maxHeight

if (!Hud.chatSnap) return@safeListener

val currentScreen = mc.currentScreen
if (currentScreen is GuiChat && !chatSnapping) {
val screenH = currentScreen.height
if (posY >= screenH - height - 3 && posX <= 3 && yShift == 0.0f) {
val prevPosYSnap = posY
yShift = -chatSnapY
snappedElements.clear()
GuiManager.getHudElementOrNull(componentName)?.let { snappedElements.add(it) }
chatSnapCheck(componentName, prevPosYSnap)
chatSnapping = true
}
} else if (currentScreen !is GuiChat && chatSnapping) {
yShift = 0.0f
snappedElements.forEach {
it.yShift = 0.0f
}
snappedElements.clear()
chatSnapping = false
}
}
}

private fun chatSnapCheck(thisElement: String, prevSnapY: Float) {
for (element in GuiManager.hudElements) {
if (!snappedElements.contains(element)
&& element.componentName != thisElement
&& element.visible
&& element.posY + element.height >= prevSnapY - 3
&& element.posX <= 3) {
snappedElements.add(element)
chatSnapCheck(element.componentName, element.posY)
element.yShift = -chatSnapY
}
}
}

override fun onReposition() {
super.onReposition()
if (Hud.collisionSnapping) {
for (element in GuiManager.hudElements) {
if (element.componentName != componentName && element.visible && element.posY + element.height >= posY && element.posY <= posY + height && element.posX + element.width >= posX && element.posX <= posX + width) {
if (posY + height / 2 <= element.posY + element.height / 2) {
posY = element.posY - height
} else {
posY = element.posY + element.height
}
}
}
}
}

Expand All @@ -71,6 +133,7 @@ abstract class AbstractHudElement(
}

final override fun onRender(vertexHelper: VertexHelper, absolutePos: Vec2f) {
super.onRender(vertexHelper, absolutePos)
renderFrame(vertexHelper)
glScalef(scale, scale, scale)
renderHud(vertexHelper)
Expand Down Expand Up @@ -112,9 +175,4 @@ abstract class AbstractHudElement(
MISC("Misc")
}

protected companion object {
val primaryColor get() = Hud.primaryColor
val secondaryColor get() = Hud.secondaryColor
}

}
4 changes: 3 additions & 1 deletion src/main/kotlin/com/lambda/client/gui/hudgui/LambdaHudGui.kt
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ object LambdaHudGui : AbstractLambdaGui<HudSettingWindow, AbstractHudElement>()

init {
safeListener<RenderOverlayEvent>(0) {
if (Hud.isDisabled) return@safeListener
if (Hud.isDisabled || mc.currentScreen is LambdaHudGui) return@safeListener

val vertexHelper = VertexHelper(GlStateUtils.useVbo())
GlStateUtils.rescaleLambda()
Expand All @@ -117,6 +117,8 @@ object LambdaHudGui : AbstractLambdaGui<HudSettingWindow, AbstractHudElement>()
}

private fun renderHudElement(vertexHelper: VertexHelper, window: AbstractHudElement) {
window.updatePrevPos()
window.updatePrevSize()
glPushMatrix()
glTranslatef(window.renderPosX, window.renderPosY, 0.0f)

Expand Down
17 changes: 9 additions & 8 deletions src/main/kotlin/com/lambda/client/gui/rgui/Component.kt
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ open class Component(
var relativePosY by relativePosYSetting
var dockingH by dockingHSetting
var dockingV by dockingVSetting
var yShift = 0.0f

var posX: Float
get() {
Expand All @@ -57,7 +58,7 @@ open class Component(

var posY: Float
get() {
return relativeToAbsY(relativePosY)
return relativeToAbsY(relativePosY) + yShift
}
set(value) {
if (!LambdaMod.ready) return
Expand Down Expand Up @@ -110,22 +111,22 @@ open class Component(
updatePrevSize()
}

open fun onTick() {
updatePrevPos()
updatePrevSize()
}
open fun onTick() {}

private fun updatePrevPos() {
fun updatePrevPos() {
prevPosX = posX
prevPosY = posY
}

private fun updatePrevSize() {
fun updatePrevSize() {
prevWidth = width
prevHeight = height
}

open fun onRender(vertexHelper: VertexHelper, absolutePos: Vec2f) {}
open fun onRender(vertexHelper: VertexHelper, absolutePos: Vec2f) {
updatePrevPos()
updatePrevSize()
}

open fun onPostRender(vertexHelper: VertexHelper, absolutePos: Vec2f) {}

Expand Down
16 changes: 6 additions & 10 deletions src/main/kotlin/com/lambda/client/gui/rgui/component/EnumSlider.kt
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,6 @@ class EnumSlider(val setting: EnumSetting<*>) : Slider(setting.name, 0.0, settin
override val isBold
get() = setting.isModified && ClickGUI.showModifiedInBold

override fun onTick() {
super.onTick()
if (mouseState != MouseState.DRAG) {
val settingValue = setting.value.ordinal
if (roundInput(value) != settingValue) {
value = (settingValue + settingValue / (enumValues.size - 1.0)) / enumValues.size.toDouble()
}
}
}

override fun onRelease(mousePos: Vec2f, buttonId: Int) {
super.onRelease(mousePos, buttonId)
if (prevState != MouseState.DRAG) setting.nextValue()
Expand All @@ -44,6 +34,12 @@ class EnumSlider(val setting: EnumSetting<*>) : Slider(setting.name, 0.0, settin
private fun roundInput(valueIn: Double) = floor(valueIn * enumValues.size).toInt().coerceIn(0, enumValues.size - 1)

override fun onRender(vertexHelper: VertexHelper, absolutePos: Vec2f) {
if (mouseState != MouseState.DRAG) {
val settingValue = setting.value.ordinal
if (roundInput(value) != settingValue) {
value = (settingValue + settingValue / (enumValues.size - 1.0)) / enumValues.size.toDouble()
}
}
val valueText = setting.value.readableName()
protectedWidth = FontRenderAdapter.getStringWidth(valueText, 0.75f).toDouble()

Expand Down
Loading

0 comments on commit c9bba67

Please sign in to comment.