3 Commits

Author SHA1 Message Date
5c9b641091 Merge pull request 'Add ExtendedSimplePositionWidget and MultiTabWrapperWidget' (#35) from dev into master
All checks were successful
Test and Deploy / build (21, ubuntu-latest) (push) Successful in 11m14s
Test and Deploy / deploy (21, ubuntu-latest) (push) Successful in 2m11s
Reviewed-on: #35
2025-09-30 21:38:03 +00:00
43856aefbc Update java version on CI
All checks were successful
Test and Deploy / build (21, ubuntu-latest) (push) Successful in 11m22s
Test and Deploy / deploy (21, ubuntu-latest) (push) Has been skipped
Test and Deploy / build (21, ubuntu-latest) (pull_request) Successful in 11m16s
Test and Deploy / deploy (21, ubuntu-latest) (pull_request) Has been skipped
2025-09-30 22:54:07 +02:00
a4733d073e feat: add ExtendedSimplePositionWidget and MultiTabWrapperWidget
Some checks failed
Test and Deploy / build (17, ubuntu-latest) (push) Failing after 5m21s
Test and Deploy / deploy (17, ubuntu-latest) (push) Has been skipped
2025-09-30 22:01:56 +02:00
9 changed files with 92 additions and 11 deletions

View File

@@ -20,7 +20,7 @@ jobs:
build:
strategy:
matrix:
java: [ '17' ]
java: [ '21' ]
os: [ ubuntu-latest ]
runs-on: ${{ matrix.os }}
steps:
@@ -32,7 +32,7 @@ jobs:
uses: actions/setup-java@v3
with:
java-version: ${{ matrix.java }}
distribution: 'oracle'
distribution: 'temurin'
- uses: actions/cache@v3
with:
path: |
@@ -51,7 +51,7 @@ jobs:
deploy:
strategy:
matrix:
java: [ '17' ]
java: [ '21' ]
os: [ ubuntu-latest ]
runs-on: ${{ matrix.os }}
if: ${{ gitea.ref == 'refs/heads/master' && gitea.event_name == 'push' }}
@@ -65,7 +65,7 @@ jobs:
uses: actions/setup-java@v3
with:
java-version: ${{ matrix.java }}
distribution: 'oracle'
distribution: 'temurin'
- name: make gradle wrapper executable
if: ${{ runner.os != 'Windows' }}
run: |

4
Core/build.gradle Normal file
View File

@@ -0,0 +1,4 @@
loom {
accessWidenerPath = file("src/main/resources/core.accesswidener")
}

View File

@@ -0,0 +1,34 @@
package fr.altarik.toolbox.core.client.gui;
import net.minecraft.client.gui.widget.Positioner;
import net.minecraft.client.gui.widget.SimplePositioningWidget;
import net.minecraft.client.gui.widget.Widget;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;
public abstract class ExtendedSimplePositionWidget extends SimplePositioningWidget {
private final List<Element> elements = new ArrayList<>();
public ExtendedSimplePositionWidget(int x, int y, int width, int height) {
super(x, y, width, height);
}
@Override
public <T extends Widget> T add(T widget, Positioner positioner) {
this.elements.add(new Element(widget, positioner));
return widget;
}
public <T extends Widget> void remove(T widget) {
this.elements.remove(new Element(widget, this.copyPositioner()));
}
@Override
public void forEachElement(Consumer<Widget> consumer) {
this.elements.forEach((element) -> consumer.accept(element.widget));
}
}

View File

@@ -0,0 +1,39 @@
package fr.altarik.toolbox.core.client.gui;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.widget.Widget;
import net.minecraft.client.gui.widget.WrapperWidget;
import java.util.function.Consumer;
public abstract class MultiTabWrapperWidget<A extends Enum<A>, B extends Widget> extends WrapperWidget {
protected final Screen parent;
protected A currentTab;
public MultiTabWrapperWidget(Screen parent) {
this(parent, 0, 0, 0, 0);
}
public MultiTabWrapperWidget(Screen parent, int x, int y, int width, int height) {
super(x, y, width, height);
this.parent = parent;
}
protected void setCurrentTab(A currentTab) {
this.currentTab = currentTab;
update();
}
protected abstract B getCurrentTab();
public abstract void update();
public abstract void remove();
@Override
public void forEachElement(Consumer<Widget> consumer) {
// ignore
}
}

View File

@@ -0,0 +1,4 @@
accessWidener v2 named
accessible class net/minecraft/client/gui/widget/SimplePositioningWidget$Element
accessible method net/minecraft/client/gui/widget/SimplePositioningWidget$Element <init> (Lnet/minecraft/client/gui/widget/Widget;Lnet/minecraft/client/gui/widget/Positioner;)V

View File

@@ -1,5 +1,5 @@
dependencies {
implementation 'org.postgresql:postgresql:42.6.0'
implementation 'org.postgresql:postgresql:42.7.5'
testImplementation 'com.google.code.gson:gson:2.10'
implementation project(':Core')
// implementation "org.hibernate.orm:hibernate-core:${project.hibernate_version}"

View File

@@ -2,7 +2,7 @@ import fr.altarik.CreateTag
import fr.altarik.ReportDiscord
plugins {
id 'fabric-loom' version '1.9-SNAPSHOT' apply false
id 'fabric-loom' version "${loom_version}" apply false
}
Properties local = new Properties()

View File

@@ -4,13 +4,13 @@ fabric.loom.multiProjectOptimisation=true
junit_version=5.9.0
minecraft_version=1.20.4
yarn_mappings=1.20.4+build.3
loader_version=0.16.9
fabric_version=0.97.2+1.20.4
loader_version=0.17.2
fabric_version=0.97.3+1.20.4
hibernate_version=6.6.3.Final
loom_version=1.11-SNAPSHOT
maven_group=fr.altarik.toolbox
maven_version=5.1.1
maven_version=5.2.0-SNAPSHOT
git_owner=quentinlegot
git_repo=Toolbox

View File

@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists