Skip to content

Conversation

@Polarite
Copy link

@Polarite Polarite commented Dec 9, 2025

Currently doesnt have a list for languages AND resource packs.
Theres an issue with updating the clouds when you change settings, I dont think its an issue on options menu side.
The drag bars arent functioning properly, a rewrite is a must do.
Its missing some options that would be nice to have, open for suggestions on that.
Chat settings should have a proper textbox implementation for setting width... Drag bars arent working properly.

…fullbright.

Theres currently many issues but I taped it together and it kinda works(?)

 it currently has these problems:
* Doesnt include all options
* Cloud options when changed override "moving clouds" setting.
* Sliders sometimes dont set to exact numbers D:
* Slider system isnt exactly same as minecrafts, which I am not sure how to make work... It doesnt feel as smooth as minecrafts sliders...
* The Chat width and height text boxes cant be changed, the boxes needs a special input block similar to... you guessed it!
* The tooltips dont follow the cursor, I couldnt find out a way to implement it that isnt a taped together ugly tech.
* Sliders are missing the grayed out textures, currently only making them slightly transparent, at least til I can bother to fix the "knob" texture being an actual knob :')
* Settings tabs should probably be reorganized in a better manner, current organization feels a little all over the place.
* Translation strings needs to be added, I gave up at some point :')
* I dont have headphones with me... Does the master volume slider work??
*  Graying out of buttons doesnt work after rebasing.
* Hi, please dont be mean :)

Update SliderElement.kt

fixed the updated version of minosoft (graying out buttons is broken)
fixes to make it actually compile, damn it.
Copy link
Owner

@Bixilon Bixilon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just the initial code review, have not looked deeper inside nor tested it.


background.render(offset, consumer, options)
textElement.render(offset + Vec2f(HorizontalAlignments.CENTER.getOffset(size.x, textSize.x), VerticalAlignments.CENTER.getOffset(size.y, textSize.y)), consumer, options)
// Apply reduced opacity when disabled
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no need for that comment

background.render(offset, consumer, options)
textElement.render(offset + Vec2f(HorizontalAlignments.CENTER.getOffset(size.x, textSize.x), VerticalAlignments.CENTER.getOffset(size.y, textSize.y)), consumer, options)
// Apply reduced opacity when disabled
val renderOptions = if (disabled) GUIVertexOptions(alpha = 0.4f) else options
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

render options are inherited. You need to use options.copy

if (child == textElement) {
if (dynamicSized) {
size = textElement.size + Vec2f(TEXT_PADDING * 2, TEXT_PADDING * 2)
size = textElement.size + Vec2i(TEXT_PADDING * 2, TEXT_PADDING * 2)
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why integers?


private companion object {
val CLICK_SOUND = minecraft("ui.button.click")
val CLICK_SOUND = "minecraft:ui.button.click".toResourceLocation()
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

val CLICK_SOUND = minecraft("ui.button.click")

init {
textElement = TextElement(guiRenderer, getDisplayText(), background = null, parent = this)
updateText()
// Set initial size based on text element size plus padding (similar to ButtonElement)
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

// with padding


init {
this += TextElement(guiRenderer, "menu.options.clouds.title".i18n(), background = null, properties = TextRenderProperties(HorizontalAlignments.CENTER, scale = 2.0f))
this += SpacerElement(guiRenderer, Vec2f(0f, 10f))
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

0.0f

}

private fun formatEnabled(key: String, enabled: Boolean): String {
return "${translate(key)}: ${if (enabled) "ON" else "OFF"}"
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

duplicated function, why not abstract a settings menu?

updateDisabledStates()
}

private fun updateDisabledStates() {
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The profile provides delegates. You can easily observe it. Justs create a profile synced button (or so), that observes the profile and updates the button when that "event" is triggered. No need for polling.

guiRenderer.gui.push(ChatSettingsMenu)
}
this += ButtonElement(guiRenderer, "menu.options.language".i18n()) {
JavaFXUtil.runLater { Eros.setVisibility(true) }
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there is something missing.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

{4C76D21E-FF52-4938-A28C-3670B672E976}

private fun draw() {
shader.cloudsColor = color.calculate()
val fullbright = context.session.profiles.rendering.light.fullbright
shader.cloudsColor = if (fullbright) Vec3f(1.0f, 1.0f, 1.0f) else color.calculate()
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not 100% happy, but fine (could use the rgb color). Maybe a white constant?

Slider bars still are wonky, I will rewrite that.
Controls are still not working, I am unsure how can I make something that looks good with current UI and menus.
Do we... even support resource packs lmao?
@Polarite
Copy link
Author

Polarite commented Dec 9, 2025

Slider bars still are wonky, I will rewrite that.
Controls are still not working, I am unsure how can I make something that looks good with current UI and menus.
Do we... even support resource packs...
Please check if I have fixed them like you want, I kinda got confused at some points. Language settings is dirty but its as best as I could manage to make it...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants